2019'Visual Studio için modüller geliştirmek ve hata ayıklamak üzere Azure IoT Edge
Uygulama hedefi:
IoT Edge 1,1
IoT Edge 1,2
Bu makalede, Visual Studio 2019'u kullanarak modül geliştirme ve hata Azure IoT Edge gösterir.
Azure IoT Edge Tools uzantısının Visual Studio aşağıdaki avantajları sağlar:
- Yerel geliştirme bilgisayarınızda çözüm ve modüller oluşturma, IoT Edge, derleme, çalıştırma ve hata ayıklama.
- IoT Edge kullanarak IoT Edge bir cihaza Azure IoT Hub.
- Azure IoT modüllerinizi C veya C# ile kodlarken bu modül geliştirmenin tüm avantajlarından Visual Studio edin.
- Kullanıcı IoT Edge ve modülleri yönetme.
Bu makalede, Visual Studio 2019 için Azure IoT Edge Tools modüllerini kullanarak IoT Edge gösterir. Ayrıca projenizi bir IoT Edge cihaza dağıtmayı da öğrenirsiniz. Şu anda Visual Studio 2019, C ve C# ile yazılmış modüller için destek sağlar. Desteklenen cihaz mimarileri X64 Windows Linux X64 veya ARM32'ye sahiptir. Desteklenen işletim sistemleri, diller ve mimariler hakkında daha fazla bilgi için bkz. Dil ve mimari desteği.
Önkoşullar
Bu makalede, geliştirme makineniz olarak çalışan bir Windows makinenizin olduğu varsayıldı. Bu Windows, bir veya daha fazla Windows Linux modülü geliştirebilirsiniz.
- Windows kapsayıcıları ile modüller geliştirmek için, sürüm 1809/derleme 17763 veya daha yeni bir Windows çalıştıran bir bilgisayar kullanın.
- Linux kapsayıcıları ile modüller geliştirmek için Docker Desktop Windows uygun bir bilgisayar kullanın.
Geliştirme Visual Studio yükleme. Azure geliştirme ve Masaüstü geliştirmeyi 2019 yüklemesi sırasında C++ iş yükleriyle Visual Studio emin olun. Gerekli iş yüklerini eklemek Visual Studio 2019'da Değişiklik 2019'a sahip olabilirsiniz.
2019 Visual Studio sonra aşağıdaki araçlara ve bileşenlere de ihtiyacınız vardır:
2019 Azure IoT Edge Tools bir Visual Studio projesi oluşturmak için IoT Edge marketten Visual Studio yükleyin.
İpucu
Visual Studio 2017 kullanıyorsanız Visual Studio marketten VS 2017 için Azure IoT Edge Tools indirin ve yükleyin
Modül görüntülerinizi derlemek ve çalıştırmak için geliştirme makinenize Docker Community Edition'ı indirip yükleyin. Docker CE'nin geliştirmekte olan modüllerin türüne bağlı olarak Linux kapsayıcı modunda veya Windows kapsayıcı modunda çalıştıracak şekilde ayarlaması gerekir.
Azure IoT EdgeHub GeliştirmeAracı'nı yükleyerek IoT Edge ayıklamak, çalıştırmak ve test etmek için yerel geliştirme ortamınızı ayarlayın. Terminalde aşağıdaki komutu çalıştırarak Python (3.5/3.6/3.7/3.8) ve Pip'i yükleyin ve ardından iotedgehubdev paketini yükleyin. Azure IoT EdgeHub Geliştirme Aracı sürümü 0.3.0'dan büyük olduğundan emin olun.
pip install --upgrade iotedgehubdevVcpkg kitaplık yöneticisini yükleyin ve ardından azure-iot-sdk-c paketini Windows.
git clone https://github.com/Microsoft/vcpkg cd vcpkg bootstrap-vcpkg.batvcpkg.exe install azure-iot-sdk-c:x64-windows vcpkg.exe --triplet x64-windows integrate installModül görüntülerinizi depolamak Azure Container Registry veya Docker Hub bir örnek oluşturun.
İpucu
Prototip ve test amacıyla bulut kayıt defteri yerine yerel bir Docker kayıt defteri kullanabilirsiniz.
Modülünü bir cihazda test etmek için en az bir IoT hub'ı ve en az bir IoT hub'ı IoT Edge gerekir. Test için hızlı IoT Edge bir cihaz oluşturmak için Linux veya Windows için hızlı başlangıç adımlarını izleyin. Geliştirme makineniz üzerinde IoT Edge daemon'ı kullanıyorsanız, geliştirmeyi geliştirmeye başlamadan önce EdgeHub ve EdgeAgent'ı durdurmanız Visual Studio.
Araç sürümlerinizi denetleme
Uzantılar menüsünden Uzantıları Yönet'i seçin. Installed > Tools'Azure IoT Edge Tools genişletin, Visual Studio için bulut gezgini ve Visual Studio.
Yüklü sürümü not edin. Bu sürümü Market'te (CloudExplorer, Azure IoT Edge ) Visual Studio en son sürümle karşılaştırabilirsiniz
Sürümünüz Visual Studio Market'te bulunan sürümden eski ise, Visual Studio bölümde gösterildiği gibi araçlarınızı güncelleştirin.
Araçlarınızı güncelleştirme
Uzantıları Yönet penceresinde, Market'te Güncelleştirmeler'> Visual Studio genişletin, Azure IoT Edge Tools veya Bulut Gezgini'ni seçin Visual Studio güncelleştir'i seçin.
Araçlar güncelleştirmesi indirildikten sonra VSIX Visual Studio araç güncelleştirmesini tetiklemek için uygulamayı kapatın.
Yükleyicide, başlatmak için Tamam'ı ve sonra araçları güncelleştirmek için Değiştir'i seçin.
Güncelleştirme tamamlandıktan sonra Kapat ve yeniden başlat'ı Visual Studio.
Azure IoT Edge oluşturma
IoT Edge proje şablonu Visual Studio cihazlara dağıtılabilir bir IoT Edge oluşturur. İlk olarak bir Azure IoT Edge çözümü oluşturun ve ardından bu çözümde ilk modülü oluşturun. Her IoT Edge çözümü birden fazla modül içerebilir.
İpucu
IoT Edge tarafından oluşturulan Visual Studio proje yapısı, Visual Studio Code.
Bu Visual Studio yeni bir proje oluşturun.
Yeni proje oluştur sayfasında, Azure IoT Edge. IoT Edge cihazınızın platformu ve mimarisiyle eşleşen projeyi seçin ve Ardından'ya tıklayın.
Yeni projenizi yapılandır sayfasında projeniz için bir ad girin ve konumu belirtin ve oluştur'a tıklayın.
Modül Ekle penceresinde geliştirmek istediğiniz modülün türünü seçin. Ayrıca Var olan modül'i seçerek dağıtıma mevcut IoT Edge modülünü ebilirsiniz. Modül adını ve modül görüntüsü deposunu belirtin.
Visual Studio URL'sini localhost:5000/<modül adıyla otomatik olarak çoğaltır. > Test için yerel bir Docker kayıt defteri kullanıyorsanız localhost sorun değil. Azure Container Registry kullanıyorsanız, kayıt defterinizin ayarlarından localhost:5000 değerini oturum açma sunucusuyla değiştirin. Oturum açma sunucusu <registry name> .azurecr.io. Nihai sonuç .azurecr.io/ <registry name> gibi azurecr.io/. <module name>
Modülünü projeye eklemek için Ekle'yi seçin.

Artık Visual Studio IoT Edge bir IoT Edge modülüne sahipsiniz.
modül klasörü, modül kodunuz için seçtiğiniz dile bağlı program.cs olarak veya olarak adlandırılmış bir dosya main.c içerir. Bu klasör ayrıca modülünün meta module.json verilerini açıklayan adlı bir dosya içerir. Çeşitli Docker dosyaları modülünü bir kapsayıcı veya Linux kapsayıcısı olarak derlemek Windows bilgileri sağlar.
Proje klasörü, bu projeye dahil edilen tüm modüllerin listesini içerir. Şu anda yalnızca bir modül gösteriliyor, ancak daha fazlasını eklemeye devam edersiniz. Projeye modül ekleme hakkında daha fazla bilgi için bu makalenin sonraki kısımlarında yer alan Birden çok modülü derleme ve hata ayıklama bölümüne bakın.
Proje klasörü de adlı bir dosya deployment.template.json içerir. Bu dosya, bir IoT Edge üzerinde çalıştıracak tüm modülleri ve birbirleriyle nasıl iletişim kuracaklarını tanımlayan bir dağıtım bildirimi şablonudur. Dağıtım bildirimleri hakkında daha fazla bilgi için bkz. Modülleri dağıtmayı ve yolları oluşturmayı öğrenin. Bu dağıtım şablonunu açarsanız edgeAgent ve edgeHub olmak üzere iki çalışma zamanı modülünün ve bu modülde oluşturduğunuz özel modülün dahil Visual Studio olur. SimulatedTemperatureSensor adlı dördüncü modül de dahil edilir. Bu varsayılan modül, modüllerinizi test etmek veya gerekli yoksa silmek için kullanabileceğiniz sanal veriler üretir. Sıcaklık sensörü simülasyonu 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 süreli 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 güncelleştirin.
Çalışma Çözüm Gezgini projenizin adına sağ tıklayın ve Çalışma zamanı sürümünü ayarla'IoT Edge seçin.
Cihazlarınızı çalıştıran çalışma zamanı sürümünü seçmek için açılan menüyü IoT Edge tamam'ı seçerek değişikliklerinizi kaydedin.
Dağıtım bildiriminizi yeni çalışma zamanı sürümüyle yeniden üretin. Projenizin adına sağ tıklayın ve Projeniz için dağıtım oluştur'u IoT Edge.
Modülümünü geliştirme
Yeni bir modül eklerken, herhangi bir koda dokunmadan test etmeye başlayabilirsiniz. Modül kodu, modül klasöründe Program.cs (C#için) veya (C için) adlı bir main.c dosyada bulunur.
Varsayılan çözüm, SimulatedTemperatureSensor modülünden gelen simülasyon verilerini modülünize yönlendirecek şekilde, girişi alan ve sonra bunu IoT Hub.
Modül şablonunu kendi kodunuzla özelleştirmeye hazırsanız, güvenlik, cihaz yönetimi ve güvenilirlik gibi IoT çözümlerinin temel ihtiyaçlarını karşılamak üzere modüller oluşturmak için Azure IoT Hub SDK'larını kullanın.
iotedgehubdev test aracını ayarlama
IoT edgeHub geliştirme aracı yerel bir geliştirme ve hata ayıklama deneyimi sağlar. Yerel olarak modüller IoT Edge, geliştirme, test IoT Edge hata ayıklamak için bu araç IoT Edge çalışma zamanı olmadan modülleri başlatmaya yardımcı olur. Görüntüleri bir kapsayıcı kayıt defterine itip test etmek için bir cihaza dağıtmanız gerekmez.
Daha fazla bilgi için bkz. Azure IoT EdgeHub Geliştirme Aracı.
Aracı başlatmak için, IoT Edge bir cihaz bağlantı dizesi IoT Hub.
IoT Edge, Azure CLI veya Azure portal Cloud Explorer'dan bir Visual Studio dizesini alın.
Araçlar menüsünden Kurulum Azure IoT Edge Tools > Simülatörü'IoT Edge seçin.
Bağlantı dizesini yapıştırın ve Tamam'a tıklayın.
Not
Sonuçlar sonraki tüm yazılım çözümlerine otomatik olarak uygulandığı için bu adımları geliştirme bilgisayarınızda yalnızca bir kez Azure IoT Edge gerekir. Farklı bir bağlantı dizesine değişmek gerekirse bu yordam tekrar takip edilecektir.
Tek bir modül oluşturma ve modülde hata ayıklama
Genellikle, birden çok modül içeren bir çözümün içinde çalıştırmadan önce her modülü test etmek ve hata ayıklamak istersiniz.
İpucu
Geliştirdiğiniz modülün türüne bağlı olarak Doğru Docker kapsayıcı moduna (Linux kapsayıcı modu veya Windows kapsayıcı moduna IoT Edge emin olun. Docker Desktop menüsünde iki mod türü arasında geçiş yapabilirsiniz. Yeni kapsayıcıları kullanmak Windows Kapsayıcılara Windows'ı seçin veya Linux kapsayıcılarını kullanmak için Linux kapsayıcılara geç'i seçin.
Bu Çözüm Gezgini modül klasörüne sağ tıklayın ve menüden Başlangıç Olarak Ayarla'Project'yi seçin.

Modülü çalıştırmak için F5 tuşuna basın veya araç çubuğunda çalıştır düğmesine tıklayın. İlk kez 10 – 20 saniye sürebilir.

Modül başarıyla başlatıldı ise bir .NET Core konsol uygulaması başlatılmış olması gerekir.
Modülü incelemek için bir kesme noktası ayarlayın.
- C# ile geliştiriyorsanız
PipeMessage()Program.cs'de işlevinde bir kesme noktası ayarlayın. - C kullanıyorsanız
InputQueue1Callback()main.c'de işlevinde bir kesme noktası ayarlayın.
- C# ile geliştiriyorsanız
Git Bash veya WSL Bash kabuğunda aşağıdaki komutu çalıştırarak bir ileti göndererek modülü test etmek. (Komutu bir
curlPowerShell veya komut isteminden çalıştıramazsiniz.)curl --header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
Kesme noktası tetiklenir. Yerel Ayarlar penceresinde değişkenleri Visual Studio izleyebilirsiniz.
İpucu
Ayrıca postman veya diğer API araçlarını kullanarak yerine ileti
curlgönderebilirsiniz.Hata ayıklamayı durdurmak için Ctrl + F5 tuşlarına basın veya durdur düğmesine tıklayın.
Birden çok modül oluşturma ve hata ayıklama
Tek bir modül geliştirmeyi bitirdikten sonra, birden çok modül içeren bir çözümün tamamını çalıştırmak ve hata ayıklamak iyi olabilir.
Bu Çözüm Gezgini proje klasörüne sağ tıklayarak çözüme ikinci bir modül ekleyin. Menüde Yeni Ekle Modülünü > IoT Edge seçin.

dosyasını
deployment.template.jsonaçın ve modüller bölümünde yeni modülün eklenmiştir. Yeni modülden ileti göndermek için yollar bölümüne de yeni bir yol IoT Hub. Sanal sıcaklık sensöründen yeni modüle veri göndermek için aşağıdaki örnekte olduğu gibi başka bir yol ekleyin:"sensorTo<NewModuleName>": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/<NewModuleName>/inputs/input1\")"Proje klasörüne sağ tıklayın ve bağlam menüsünden Başlangıç Project Ayarla'yı seçin.
Kesme noktalarınızı oluşturun ve ardından F5 tuşuna basarak aynı anda birden çok modülü çalıştırın ve hata ayıklar. Her pencerenin farklı bir modülü temsil eden birden çok .NET Core konsol uygulaması penceresi görüyor olması gerekir.

Hata ayıklamayı durdurmak için Ctrl + F5 tuşlarına basın veya durdur düğmesini seçin.
Görüntü oluşturma ve itme
Tek tek IoT Edge değil başlangıç projesi olduğundan emin olun. Modül görüntüleriniz için derleme yapılandırması olarak Hata Ayıkla veya Yayın'ı seçin.
Not
Hata ayıkla'Visual Studio
Dockerfile.(amd64|windows-amd64).debugDocker görüntüleri oluşturmak için kullanır. Bu, kapsayıcı görüntünüzde .NET Core komut satırı hata ayıklayıcısı VSDBG'sini içerir. Üretime hazır IoT Edge modüller için, VSDBG olmadan kullanan YayınDockerfile.(amd64|windows-amd64)yapılandırmasını kullanmanız önerilir.Azure Container Registry (ACR) gibi özel bir kayıt defteri kullanıyorsanız, oturum açma için aşağıdaki Docker komutunu kullanın. Kullanıcı adını ve parolayı kayıt defterinizin Erişim anahtarları sayfasından Azure portal. Yerel kayıt defteri kullanıyorsanız yerel bir kayıt defteri çalıştırarak.
docker login -u <ACR username> -p <ACR password> <ACR login server>Azure Container Registry gibi özel bir kayıt defteri Azure Container Registry, dosyasında bulunan çalışma zamanı ayarlarına kayıt defteri oturum açma bilgilerinizi eklemeniz
deployment.template.jsongerekir. Yer tutucuları gerçek ACR yöneticisi kullanıcı adınız, parolanız ve kayıt defteri adınızla değiştirin."settings": { "minDockerVersion": "v1.25", "loggingOptions": "", "registryCredentials": { "registry1": { "username": "<username>", "password": "<password>", "address": "<registry name>.azurecr.io" } } }Not
Bu makalede geliştirme ve test senaryoları için Azure Container Registry yönetici oturum açma kimlik bilgileri lanmıştır. Üretim senaryoları için hazırsanız hizmet sorumluları gibi en az ayrıcalıklı kimlik doğrulama seçeneğini öneririz. Daha fazla bilgi için bkz. Kapsayıcı kayıt defterinize erişimi yönetme.
Bu Çözüm Gezgini proje klasörüne sağ tıklayın ve her modül için Docker görüntüsünü derlemek ve itmek için Derleme ve IoT Edge Modülleri'ne Itme'yi seçin.
Çözümü dağıtma
IoT Edge cihazınızı ayarlamak için kullandığınız hızlı başlangıç makalesinde Azure portalı kullanarak bir modül dağıttınız. Modüller için Cloud Explorer'ı kullanarak da Visual Studio. Senaryo için hazırlanmış bir dağıtım bildiriminiz zaten var, dosya ve tek ihtiyacınız olan dağıtımı almak deployment.json için bir cihaz seçmektir.
Bulut Gezgini'ni Görüntüle'ye tıklayarak > Bulut Gezgini'ni açın. Visual Studio 2019'da oturum açtığınızdan emin olun.
Cloud Explorer'da aboneliğinizi genişletin, Azure IoT Hub ve Azure IoT Edge istediğiniz cihazı bulun.
Dağıtım oluşturmak için IoT Edge cihaza sağ tıklayın. Uygulama çözümünüzdeki config klasöründe bulunan platform için yapılandırılan dağıtım bildirimine Visual Studio örneğin:
deployment.arm32v7.json.SimulatedTemperatureSensor modülüyle birlikte çalışan yeni modülleri görmek için yenile düğmesine tıklayın ve $edgeAgent ve $edgeHub.
Oluşturulan verileri görüntüleme
Belirli bir IoT Edge cihazın D2C iletiyi izlemek için, Cloud Explorer'da IoT hub' ınıza seçin ve ardından Eylem penceresinde Yerleşik Olay Uç Noktasını İzlemeye Başla'ya tıklayın.
Verileri izlemeyi durdurmak için Eylem penceresinde Yerleşik Olay Uç Noktasını İzlemeyi Durdur'a tıklayın.
Sonraki adımlar
Uygulama cihazlarınıza özel modüller IoT Edge için, Azure IoT Hub'leri an Azure IoT Hub kullanın.