Visual Studio Code modülleri geliştirmek ve hata ayıklamak için Azure IoT Edge

Uygulama hedefi:  Evet simgesi IoT Edge 1,1  evet IoT Edge 1,2

İş mantığınızı daha fazla bilgi için modüllere Azure IoT Edge. Bu makalede modül geliştirme ve hata Visual Studio Code ana araç olarak Visual Studio Code nasıl kullanabileceğiniz size gösterir.

Visual Studio Code'de C#, Node.js veya Java ile yazılmış modüllerde hata ayıklamak için iki yol vardır: Bir modül kapsayıcısı içinde işlem iliştirebilir veya modül kodunu hata ayıklama modunda başlatabilirsiniz. Python veya C ile yazılmış modüllerde hata ayıklamak için yalnızca Linux amd64 kapsayıcılarında bir işleme iliştirin.

Visual Studio Code'nin hata ayıklama özelliklerini Visual Studio Code hakkında bilgi sahibi değilsiniz.

Bu makale, birden çok mimari için birden çok dilde modül geliştirme ve hata ayıklama yönergeleri sağlar. Şu anda Visual Studio Code C#, C, Python, Node.js ve Java ile yazılmış modüller için destek sağlar. Desteklenen cihaz mimarileri X64 ve ARM32'dir. Desteklenen işletim sistemleri, diller ve mimariler hakkında daha fazla bilgi için bkz. Dil ve mimari desteği.

Not

Linux ARM64 cihazları için geliştirme ve hata ayıklama desteği genel önizlemededir. Daha fazla bilgi için bkz. Visual Studio Code (önizleme) içinde ARM64IoT Edge modüllerini geliştirme ve hata ayıklama.

Önkoşullar

Geliştirme makineniz olarak Windows, macOS veya Linux çalıştıran bir bilgisayar veya sanal makine kullanabilirsiniz. Bu Windows linux modülleri Windows geliştirebilirsiniz. Modüller Windows için, sürüm 1809/build 17763 veya daha yeni bir Windows çalıştıran bir bilgisayar kullanın. Linux modülleri geliştirmek için Docker DesktopWindows uygun bir bilgisayar kullanın.

Önce Visual Studio Code yükleyin ve ardından aşağıdaki uzantıları ekleyin:

Ayrıca modülünü geliştirmek için dile özgü ek araçlar da yüklemeniz gerekir:

Modül görüntülerinizi derlemek ve dağıtmak için Docker'ın modül görüntüsünü ve modül görüntüsünü tutmak için bir kapsayıcı kayıt defteri oluşturması gerekir:

Modülünü C'de geliştirmedikçe, yerel geliştirme ortamınızı hata ayıklamak, çalıştırmak ve test etmek için python tabanlı Azure IoT EdgeHub Geliştirme Aracı'nı da IoT Edge gerekir. Henüz bunu yapmadıysanız Python (2.7/3.6/3.7/3.8) ve Pip'i yükleyin ve ardından terminalde bu komutu çalıştırarak iotedgehubdev yükleyin.

pip install --upgrade iotedgehubdev

Not

Önceden yüklenmiş python 2.7 dahil olmak üzere birden çok Python'uz varsa (örneğin Ubuntu veya macOS üzerinde), doğru veya pip pip3 iotedgehubdev'i yüklemek için

Modülünü bir cihazda test etmek için en az bir IoT hub'ı ve en az bir IoT hub'ı IoT Edge gerekir. Bilgisayarınızı bir IoT Edge cihaz olarak kullanmak için Linux için hızlı başlangıçtaki adımları izleyin veyaWindows. Geliştirme makineniz üzerinde IoT Edge daemon kullanıyorsanız, sonraki adıma geçebilirsiniz.

Yeni çözüm şablonu oluşturma

Aşağıdaki adımlarda IoT Edge, Visual Studio Code ve Azure IoT Tools kullanarak tercih ettiğiniz geliştirme dilinde (C# dilinde yazılmış Azure İşlevleri dahil) bir Visual Studio Code modülü Azure IoT Tools. Başlangıç olarak bir çözüm ve ardından bu çözümde ilk modülü oluşturabilirsiniz. Her çözüm birden çok modül içerebilir.

  1. Komut Paletini > Görüntüle'yi seçin.

  2. Komut paletine şu komutu girin ve çalıştırın: Azure IoT Edge: New IoT Edge Solution.

    Yeni IoT Edge Çözümü Çalıştırma

  3. Yeni çözümü oluşturmak istediğiniz klasöre göz atarak Klasör seç'i seçin.

  4. Çözümünüz için bir ad girin.

  5. Çözümde ilk modül olmak için tercih ettiğiniz geliştirme dili için bir modül şablonu seçin.

  6. Modülüniz için bir ad girin. Kapsayıcı kayıt defterinizin içinde benzersiz bir ad seçin.

  7. Modülün görüntü deposunun adını girin. Visual Studio Code modül adını localhost:5000/<modül adınızla otomatik olarak çoğaltır. > Bunu kendi kayıt defteri bilgileriyle değiştirin. Test için yerel bir Docker kayıt defteri kullanıyorsanız localhost sorun değil. Oturum açma Azure Container Registry kayıt defterinizin ayarlarından oturum açma sunucusunu kullanın. Oturum açma sunucusu <registry name> .azurecr.io. Dizenin localhost:5000 bölümünü yalnızca son <registry name> sonucun .azurecr.io/ gibi azurecr.io/. <your module name>

    Docker görüntü deposunu sağlama

Visual Studio Code bilgileri alır, bir IoT Edge çözümü oluşturur ve yeni bir pencerede yükler.

Çözüm içinde dört öğe vardır:

  • .vscode klasörü hata ayıklama yapılandırmalarını içerir.

  • Modüller klasöründe her modül için alt klasörler bulunur. Her modülün klasöründe modüllerin nasıl yerleşik ve dağıtılmış olduğunu kontrol eden module.json dosyası bulunur. Modül dağıtımı kapsayıcı kayıt defterini localhost'tan uzak bir kayıt defterine değiştirmek için bu dosyanın değiştirilmesi gerekir. Bu noktada yalnızca bir modüle sahipsiniz. Ancak komut paletine Azure IoT Edge: Modül ekle komutuyla IoT Edge ebilirsiniz.

  • Bir .env dosyası ortam değişkenlerinizi listeler. Kayıt Azure Container Registry kayıt defteriniz ise, kayıt Azure Container Registry kullanıcı adı ve parolanız olur.

    Üretim senaryolarında, .env dosyası yerine kapsayıcı kayıt defterinize erişim sağlamak için hizmet sorumlularının kullanılması önerilir. Daha fazla bilgi için bkz. Kapsayıcı kayıt defterinize erişimi yönetme.

    Not

    Ortam dosyası yalnızca modül için bir görüntü deposu sağlarsanız oluşturulur. Yerel olarak test etmek ve hata ayıklamak için localhost varsayılanlarını kabul ettiyebilirsiniz, ortam değişkenlerini bildirebilirsiniz.

  • Deployment.template.json dosyası, test için kullanabileceğiniz verilerin simülasyonunu yapan örnek SimulatedTemperatureSensor modülüyle birlikte yeni modülünizi listeler. Dağıtım bildirimlerinin nasıl iş ettiği hakkında daha fazla bilgi için bkz. Modülleri dağıtmak ve yolları kurmak için dağıtım bildirimlerini kullanmayı öğrenin.

Sanal sıcaklık modülünün nasıl çalıştığını görmek için SimulatedTemperatureSensor.csproj kaynak kodunu görüntüebilirsiniz.

Çalışma IoT Edge sürümünü ayarlama

Uygulama IoT Edge, dağıtım varlıklarınızı oluşturduğunda varsayılan olarak IoT Edge çalışma zamanının en son kararlı sürümünü kullanır. Şu anda en son kararlı sürüm 1.2 sürümüdür. 1.1 uzun vadeli destek sürümünü veya önceki 1.0 sürümünü çalıştıran cihazlar için modüller geliştiriyorsanız, IoT Edge çalışma zamanı sürümünü Visual Studio Code güncelleştirin.

  1. Komut Paletini > Görüntüle'yi seçin.

  2. Komut paletinde şu komutu girin ve çalıştırın: Azure IoT Edge çalışma zamanı sürümünü IoT Edge ayarlayın.

  3. Uygulama cihazlarınızı listeden IoT Edge çalışma zamanı sürümünü seçin.

Yeni çalışma zamanı sürümünü seçmenizin ardından dağıtım bildiriminiz, çalışma zamanı modülü görüntülerine yapılan değişikliği yansıtacak şekilde dinamik olarak güncelleştirilir.

Ek modüller ekleme

Çözümünüze ek modüller eklemek için komut paletinde Azure IoT Edge: Modül ekle IoT Edge komutunu çalıştırın. Modül gezgini görünümünde modules klasörüne veya dosyasına sağ tık Visual Studio Code modül deployment.template.json ekle'yi IoT Edge.

Modülümünü geliştirme

Çözümle birlikte gelen varsayılan modül kodu aşağıdaki konumda bulunur:

  • Azure İşlevi (C#): modül > < modül > adınız > .cs < olarak > geçen modüller
  • C#: Modül > < program.cs > > modüller
  • Python: modüller > < adı ve > > main.py
  • Node.js: modül > adı ve < > app.js>
  • Java: > < > src > > main > java > com > edgemodulemodules > App.java
  • C: modules > < main.c > > modül adı

Modül ve deployment.template.json dosyası, çözümü derlemek, kapsayıcı kayıt defterinize itmek ve herhangi bir koda dokunmadan teste başlamak için bir cihaza dağıtmak üzere ayarlanır. Modül, yalnızca bir kaynaktan (bu durumda verilerin simülasyonunu yapan SimulatedTemperatureSensor modülü) giriş alacak ve verileri veri kaynağına IoT Hub.

Şablonu kendi kodunuzla özelleştirmeye hazırsanız, güvenlik, cihaz yönetimi ve güvenilirlik gibi IoT çözümlerinin temel ihtiyaçlarını ele alan modüller oluşturmak için Azure IoT Hub SDK'larını kullanın.

Kapsayıcı olmadan modülde hata ayıklama (C#, Node.js, Java)

C#, Node.js veya Java ile geliştiriyorsanız, modülünün iletileri başlatabilir, çalıştırabilir ve yönlendire çalışması için varsayılan modül kodunda ModuleClient nesnesinin kullanımı gerekir. Ayrıca modül ileti aldığında eyleme geçebilirsiniz.

Simülatör IoT Edge ayarlama

IoT Edge modüllerinin çalışması ve hata IoT Edge için bir ortam gerekir. Tam güvenlik daemon'IoT Edge çalışma zamanı yerine geliştirme makineniz üzerinde bir IoT Edge simülatörü kullanabilirsiniz. Birden çok modül içeren çözümlerde hata ayıklamak için bir cihazın benzetimini veya tek bir modül uygulamasının benzetimini oluşturabilirsiniz.

  1. Seçenek: Bir IoT Edge benzetimi:

  2. Sol tarafındaki Gezgin sekmesinde, Azure IoT Hub genişletin. Cihaz kimliğinize sağ IoT Edge tıklayın ve ardından cihaz bağlantı dizesiyle simülatörü başlatmak için Kurulum IoT Edge Simulator'ı seçin.

  3. Tümleşik terminalde ilerleme IoT Edge okuyarak IoT Edge Simulator'ın başarıyla ayarlanmıştır.

  4. Seçenek: Tek bir IoT Edge simülasyonu:

  5. Tek Visual Studio Code paletinde şu komutu çalıştırın: Azure IoT Edge: Tek Modül için IoT Edge Hub Simülatörü'ne başlama.

  6. Modülüyle test etmek istediğiniz tüm girişlerin adlarını sağlar. Varsayılan örnek kodu kullanıyorsanız input1 değerini kullanın.

  7. komutu iotedgehubdev CLI'sini tetikler ve ardından IoT Edge simülatörünü ve test yardımcı programı modülü kapsayıcıyı başlatır. Simülatör tek modül modunda başarıyla başlatıldısa, tümleşik terminalde aşağıdaki çıkışları görebilirsiniz. ayrıca ileti göndermeye yardımcı curl olacak bir komut da alabilirsiniz. Daha sonra bu adı kullanacaksınız.

    Tek modül IoT Edge bir simülatör ayarlama

    Modülün çalışma durumunu görmek için Visual Studio Code Docker Explorer görünümünü kullanabilirsiniz.

    Simülatör modülü durumu

    edgeHubDev kapsayıcısı, yerel IoT Edge simülatörüdür. Geliştirme makineniz üzerinde güvenlik daemon'IoT Edge çalıştırarak yerel modül uygulamanız veya modül kapsayıcıları için ortam ayarları sağlar. Giriş kapsayıcısı, iletileri modülün hedef giriş kanalıyla köprüye atıf etmeye yardımcı olmak için REST API'lerini ortaya çıkarır.

Başlatma modunda modülde hata ayıklama

Simülatör başarıyla başlatıldıktan sonra modül kodunda hata ayıkabilirsiniz.

  1. Ortamınızı geliştirme dilinizin gereksinimlerine göre hata ayıklama için hazırlayın, modülünde bir kesme noktası ayarlayın ve kullanmak üzere hata ayıklama yapılandırmasını seçin:

    • C#

      • Tümleşik Visual Studio Code terminalde dizinini < > modül adı klasörünüzle değiştirebilir ve ardından aşağıdaki komutu çalıştırarak .NET Core uygulaması oluşturun.

        dotnet build
        
      • dosyasını açın Program.cs ve bir kesme noktası ekleyin.

      • Sol menüden Visual Studio Code hata ayıklama simgesini seçerek veya yazarak hata ayıklama görünümüne Ctrl+Shift+D gidin. Açılan listeden modül adınız < Yerel Hata Ayıklama > (.NET Core) hata ayıklama yapılandırmasını seçin.

        Not

        .NET Core'uz 'daki program yolunuzla tutarlı değilse, 'de program yolunu TargetFramework .csproj dosyanız ile eş olacak şekilde el ile güncelleştirmeniz gerekir, böylece Visual Studio Code programı başarıyla launch.json launch.json TargetFramework başlatabilirsiniz.

    • Node.js

      • Tümleşik Visual Studio Code terminalde dizini < > modül adı klasörünüzle değiştirin ve ardından Node paketlerini yüklemek için aşağıdaki komutu çalıştırın

        npm install
        
      • dosyasını açın app.js ve bir kesme noktası ekleyin.

      • Sol menüden Visual Studio Code hata ayıklama simgesini seçerek veya yazarak hata ayıklama görünümüne Ctrl+Shift+D gidin. Açılan listeden modül adı < Yerel Hata Ayıklama > (Node.js) hata ayıklama yapılandırmasını seçin.

    • Java

      • dosyasını açın App.java ve bir kesme noktası ekleyin.

      • Sol menüden Visual Studio Code hata ayıklama simgesini seçerek veya yazarak hata ayıklama görünümüne Ctrl+Shift+D gidin. Açılan listeden modül adınız < Yerel Hata Ayıklama > (Java) hata ayıklama yapılandırmasını seçin.

  2. Hata Ayıklamayı Başlat'a tıklayın veya hata ayıklama oturumunu başlatmak için F5 tuşuna basın.

  3. Tümleşik Visual Studio Code terminalde aşağıdaki komutu çalıştırarak modülünize Merhaba Dünya ileti gönderin. Bu komut, önceki adımlarda simülatör ayar IoT Edge gösterilir.

    curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
    

    Not

    Windows kullanıyorsanız, tümleşik terminalin kabuğunun Git Bash Visual Studio Code WSL Bash olduğundan emin olun. Komutu bir curl PowerShell veya komut isteminden çalıştıramazsiniz.

    İpucu

    ayrıca postman veya diğer API araçlarını kullanarak yerine ileti curl gönderebilirsiniz.

  4. Hata Visual Studio Code görünümünde, sol panelde değişkenleri görüyorsunuz.

  5. Hata ayıklama oturumlarınızı durdurmak için Durdur düğmesini seçin veya Shift + F5 tuşlarına basın ve ardından Azure IoT Edge: Stop IoT Edge Simulator komutunu komut paletinde çalıştırarak simülatörü durdurun ve temizleyin.

IoT Edge Simulator (C#, Node.js, Java, Azure İşlevleri) ile ekleme modunda hata ayıklama

Varsayılan çözümünüz iki modül içerir, biri sıcaklık sensörü simülasyon modülü, diğeri de kanal modülüdür. Benzetimi yapılan sıcaklık sensörü, kanal modülüne iletiler gönderir ve ardından iletiler kanala IoT Hub. Oluşturduğunuz modül klasöründe, farklı kapsayıcı türleri için birkaç Docker dosyası vardır. Modülünü test etmek üzere derlemek için .debug uzantısıyla sona eren dosyalardan herhangi birini kullanın.

Şu anda, ekleme modunda hata ayıklama yalnızca aşağıdaki gibi de desteklenebilir:

  • Linux amd64 kapsayıcılarında hata ayıklamayı Azure İşlevleri C# modülleri
  • Node.js modülleri Linux amd64 ve arm32v7 kapsayıcılarında hata ayıklamayı ve amd64 kapsayıcılarında Windows destekler
  • Java modülleri Linux amd64 ve arm32v7 kapsayıcılarında hata ayıklamayı destekler

İpucu

Uygulama durumu çubuğundaki öğeye tıklayarak IoT Edge platform seçenekleri arasında Visual Studio Code yapabilirsiniz.

IoT Edge çözümü için IoT Edge simülatörü ayarlama

Geliştirme makineniz içinde, IoT Edge çözümlerinizi çalıştırarak IoT Edge güvenlik daemon'ını yüklemek yerine bir IoT Edge başlattırın.

  1. Sol tarafındaki Gezgin sekmesinde, Azure IoT Hub genişletin. Cihaz kimliğinize sağ IoT Edge tıklayın ve ardından cihaz bağlantı dizesiyle simülatörü başlatmak için Kurulum IoT Edge Simulator'ı seçin.

  2. Tümleşik terminalde ilerleme IoT Edge okuyarak IoT Edge Simulator'ın başarıyla ayarlanmıştır.

Ekleme modunda hata ayıklama ve hata ayıklama için kapsayıcı derleme ve çalıştırma

  1. Modül dosyanızı ( Program.cs , , veya ) açın ve bir kesme noktası app.js App.java <your module name>.cs ekleyin.

  2. Visual Studio Code Gezgini görünümünde çözümünüz için dosyaya sağ tıklayın ve ardından Simulator'da Derleme ve Çalıştırma deployment.debug.template.json IoT Edge'yi seçin. Tüm modül kapsayıcı günlüklerini aynı pencerede izleyebilirsiniz. Kapsayıcı durumunu izlemek için Docker görünümüne de bakabilirsiniz.

    Değişkenleri İzleme

  3. Hata Ayıklama Visual Studio Code gidin ve modülünün hata ayıklama yapılandırma dosyasını seçin. Hata ayıklama seçeneği adı, Modül < adınıza Uzaktan Hata Ayıklama > ile benzer olmalı

  4. Hata Ayıklamayı Başlat'ı seçin veya F5 tuşuna basın. Eklemek istediğiniz işlemi seçin.

  5. Hata Visual Studio Code görünümünde sol panelde değişkenleri görüyorsunuz.

  6. Hata ayıklama oturumunu durdurmak için önce Durdur düğmesini seçin veya Shift + F5 tuşlarına basın ve ardından komut paletinde Azure IoT Edge: Stop IoT Edge Simulator'ı seçin.

Not

Yukarıdaki örnekte kapsayıcılarda modüllerde hata IoT Edge nasıl ayıklayabilirsiniz? Modülün kapsayıcı ayarlarına açık bağlantı noktaları createOptions ekledi. Modülleriniz için hata ayıklamayı bitirdikten sonra üretime hazır ve kullanıma açık bu bağlantı noktalarını IoT Edge öneririz.

Azure İşlevleri dahil olmak üzere C# ile yazılmış modüller için bu örnek, kapsayıcı görüntüsünde .NET Core komut satırı hata ayıklayıcısını (VSDBG) içeren hata ayıklama sürümünü Dockerfile.amd64.debug temel alır. C# modüllerinizin hatasını ayıkladikten sonra üretime hazır modüller için VSDBG olmadan Dockerfile'ı doğrudan IoT Edge öneririz.

IoT Edge çalışma zamanıyla modülde hata ayıklama

Her modül klasöründe, farklı kapsayıcı türleri için birkaç Docker dosyası vardır. Modülünü test etmek üzere derlemek için .debug uzantısıyla sona eren dosyalardan herhangi birini kullanın.

Bu yöntemi kullanarak modüllerde hata ayıklarken modülleriniz çalışma zamanının en üstünde IoT Edge çalışır. IoT Edge cihaz ve Visual Studio Code aynı makinede olabilir veya genellikle Visual Studio Code geliştirme makinesi üzerindedir ve IoT Edge çalışma zamanı ve modülleri başka bir fiziksel makinede çalışır. Hata ayıklamak için Visual Studio Code gerekir:

  • IoT Edge cihazınızı ayarlayın, .debug Dockerfile ile IoT Edge modüllerinizi derlemeniz ve ardından IoT Edge cihaza dağıtmanız gerekir.
  • Hata ayıklayıcının ekli olması için modülün IP'sini ve bağlantı noktasını ortaya çıkarma.
  • launch.jsongüncelleştirmesini, Visual Studio Code makinede kapsayıcıda işleme eklemesini sağlar. Bu dosya çalışma alanınız .vscode klasöründe bulunur ve hata ayıklamayı destekleyen yeni bir modül her ekleyip güncelleştirmeler.

Modülünü derleme ve IoT Edge cihaza dağıtma

  1. Bu Visual Studio Code, uygun değerler ayarlanmış modül görüntülerinin hata ayıklama sürümünü deployment.debug.template.json içeren dosyasını createOptions açın.

  2. Modülünü Python'da geliştiriyorsanız devam etmeden önce şu adımları izleyin:

    • dosyasını açın main.py ve içeri aktarma bölümünden sonra şu kodu ekleyin:

      import ptvsd
      ptvsd.enable_attach(('0.0.0.0',  5678))
      
    • Hata ayıklamak istediğiniz geri çağırmaya aşağıdaki tek kod satırı ekleyin:

      ptvsd.break_into_debugger()
      

      Örneğin, işlevinde hata ayıklamak receive_message_handler için aşağıda gösterildiği gibi bu kod satırı eklersiniz:

    def receive_message_handler(message):
        ptvsd.break_into_debugger()
        global RECEIVED_MESSAGES
        RECEIVED_MESSAGES += 1
        if message.input_name == "input1":
            print("Message received on input1")
            print( "    Data: <<{}>>".format(message.data) )
            print( "    Properties: {}".format(message.custom_properties))
            print( "    Total calls received: {}".format(RECEIVED_MESSAGES))
            print("Forwarding message to output1")
            client.send_message_to_output(message, "output1")
            print("Message successfully forwarded")
    
    
  3. Visual Studio Code paletinde:

    1. Şu komutu çalıştırın: Azure IoT Edge çözümü derleme ve IoT Edge.

    2. Çözümünüz deployment.debug.template.json için dosyasını seçin.

  4. Azure IoT Hub Gezgini görünümünün Visual Studio Code bölümünde:

    1. Bir cihaz kimliğine IoT Edge tıklayın ve ardından Tek Cihaz için Dağıtım Oluştur'u seçin.

      İpucu

      Seçtiğiniz cihazın bir IoT Edge cihaz olduğunu onaylamak için, modül listesini genişletmek için cihazı seçin ve $edgeHub ve $edgeAgent. Her IoT Edge cihaz bu iki modülü içerir.

    2. Çözüm yapılandırma klasörüne gidin, dosyayı seçin ve ardından Select Edge Deployment Manifest (Edge Dağıtım Bildirimini deployment.debug.amd64.json Seç) öğesini seçin.

Tümleşik terminalde dağıtım kimliğiyle dağıtımın başarıyla oluşturula bir dağıtım olduğunu görüyorsunuz.

Terminalde komutunu çalıştırarak kapsayıcı docker ps durumunu kontrol edin. Çalışma Visual Studio Code IoT Edge çalışma zamanının aynı makinede çalışıyor olması durumunda docker görünümünde Visual Studio Code de kontrol edebilirsiniz.

Hata ayıklayıcı için modülün IP'sini ve bağlantı noktasını ortaya çıkarma

Modülleriniz kapsayıcıya eklemek için localhost'u kullanırken ve .debug Dockerfile, modülün kapsayıcı ayarları ve dosyasında doğru bağlantı noktası ayarlarına sahip olduğunuz için modülleriniz Visual Studio Code ile aynı makinede çalışıyorsa bu bölümü createOptions launch.json atlayabilirsiniz. Modülleriniz ve modülleriniz Visual Studio Code makinelerde çalışıyorsa, geliştirme dilinize uygun adımları izleyin.

  • C# , Azure İşlevleri

    Geliştirme makineniz üzerinde SSH kanalını yapılandırarak IoT Edge dosyasını launch.json düzenleyemezsiniz.

  • Node.js

    • Hata ayıklanacak makinede modülün çalışıyor ve hata ayıklayıcıların eklemesi için hazır olduğundan ve 9229 bağlantı noktasının dışarıdan erişilebilir olduğundan emin olun. Hata ayıklayıcı makinesini açarak http://<target-machine-IP>:9229/json bunu doğrularsiniz. Bu URL, hata ayıklamak için Node.js ilgili bilgileri göster olmalıdır.

    • Geliştirme makineniz üzerinde Visual Studio Code'yi açın ve modül adı Uzaktan Hata Ayıklama (Node.js) profilinizin launch.json adres < > değerinin (veya < > modül Windows Kapsayıcısı'nın modül adı Uzaktan Hata Ayıklama) profilinde (Node.js Windows kapsayıcısı olarak çalışıyorsa) hata ayıklandı olan makinenin IP'si olması için düzenleyin.

  • Java

    • çalıştırarak hata ayıklamak için makineye bir SSH tüneli ssh -f <username>@<target-machine> -L 5005:127.0.0.1:5005 -N oluşturma.

    • Geliştirme makineniz üzerinde, Visual Studio Code < > açın ve hedef makineye ekleymek için modül adı Uzaktan Hata Ayıklama (Java) launch.json profilinizi düzenleyin. Java'nın hata ayıklama ve düzenleme hakkında daha fazla launch.json bilgi Visual Studio Code hata ayıklayıcısını yapılandırma bölümüne bakın.

  • Python

    • Hata ayıklama için makinede 5678 bağlantı noktasının açık ve erişilebilir olduğundan emin olun.

    • daha önce ptvsd.enable_attach(('0.0.0.0', 5678)) içine eklenen main.py kodda, 0.0.0.0'ı hata ayıklamak için makinenin IP adresiyle değiştirir. IoT Edge modülünü yeniden derleme, IoT Edge ve dağıtın.

    • Geliştirme makineniz üzerinde Visual Studio Code launch.json host < > açın ve ardından modül adı Uzak Hata Ayıklama (Python) profilinizin değerinin yerine hedef makinenin IP adresini kullanması için localhost düzenleyin.

Modülünde hata ayıklama

  1. Hata Visual Studio Code görünümünde modülünün hata ayıklama yapılandırma dosyasını seçin. Hata ayıklama seçeneği adı, Modül < adınıza Uzaktan Hata Ayıklama > ile benzer olmalı

  2. Geliştirme dilinizin modül dosyasını açın ve bir kesme noktası ekleyin:

    • Azure İşlevi (C#): Kesme noktanızı dosyasına <your module name>.cs ekleyin.
    • C#: Kesme noktanızı dosyasına Program.cs ekleyin.
    • Node.js: Kesme noktanızı dosyasına app.js ekleyin.
    • Java: Kesme noktanızı dosyasına App.java ekleyin.
    • Python: Kesme noktanızı satırı ekley istediğiniz main.py geri çağırma yönteminde dosyasına ptvsd.break_into_debugger() ekleyin.
    • C: Kesme noktanızı dosyasına main.c ekleyin.
  3. Hata Ayıklamayı Başlat'ı veya F5'i seçin. Eklemek istediğiniz işlemi seçin.

  4. Hata Visual Studio Code görünümünde, sol panelde değişkenleri görüyorsunuz.

Not

Yukarıdaki örnekte kapsayıcılarda modüllerde hata IoT Edge nasıl ayıklayabilirsiniz? Modülün kapsayıcı ayarlarına açık bağlantı noktaları createOptions ekledi. Modülleriniz için hata ayıklamayı bitirdikten sonra üretime hazır ve kullanıma açık bu bağlantı noktalarını IoT Edge öneririz.

Uzaktan modül oluşturma ve modülde hata ayıklama

SSH bağlantılarını desteklemek için hem Docker hem de Moby altyapılarında yapılan son değişiklikler ve Azure IoT Tools'da ortam ayarlarının Visual Studio Code komut paletine ve Azure IoT Edge terminallerine eklerini sağlayan yeni bir ayarla, artık uzak cihazlarda modüller derleme ve hata ayıklama yapabilirsiniz.

Daha fazla bilgi ve adım adım yönergeler için bu IoT Geliştirici blog girdisini ziyaret edin.

Sonraki adımlar

Modülümünü oluşturmanın ardından, modüllerini Azure IoT Edge'den dağıtmayı Visual Studio Code.

IoT Edge cihazlarınıza modüller geliştirmek için, Azure IoT Hub KULLANıN.