Použití Visual Studio 2019 k vývoji a ladění modulů pro Azure IoT Edge

Platí pro:  ikona Ano IoT Edge 1,1  ikona ano IoT Edge 1,2

Tento článek popisuje, jak pomocí Visual Studio 2019 vyvíjet a ladit Azure IoT Edge moduly.

Rozšíření Azure IoT Edge Tools pro Visual Studio poskytuje následující výhody:

  • Vytvářet, upravovat, sestavovat, spouštět a ladit IoT Edge řešení a moduly na místním vývojovém počítači.
  • Nasaďte IoT Edge řešení do IoT Edge zařízení přes Azure IoT Hub.
  • Kódovat moduly Azure IoT v jazyce C nebo C# a současně mít všechny výhody Visual Studio vývoje.
  • Správa IoT Edge zařízení a modulů pomocí uživatelského rozhraní

V tomto článku se popisuje, jak pomocí Azure IoT Edge Tools pro Visual Studio 2019 vyvíjet vlastní IoT Edge moduly. Dozvíte se také, jak nasadit projekt do IoT Edge zařízení. V současné Visual Studio 2019 poskytuje podporu pro moduly napsané v jazyce C a C#. Podporované architektury zařízení jsou Windows X64 a Linux X64 nebo ARM32. Další informace o podporovaných operačních systémech, jazycích a architekturách najdete v tématu Podpora jazyků a architektur.

Požadavky

Tento článek předpokládá, že jako vývojový počítač používáte počítač Windows počítači. Na Windows počítačích můžete vyvíjet moduly Windows Linuxu.

  • K vývoji modulů s Windows kontejnery použijte počítač Windows verze 1809/build 17763 nebo novější.
  • K vývoji modulů s kontejnery Linuxu použijte Windows počítače, který splňuje požadavky na Docker Desktop.

Nainstalujte Visual Studio na vývojový počítač. Nezapomeňte do instalace aplikace Visual Studio 2019 zahrnout úlohy Vývoj pro Azure a Vývoj desktopových aplikací pomocí C++. Požadované úlohy můžete Visual Studio 2019 upravit.

Po Visual Studio 2019 budete potřebovat také následující nástroje a komponenty:

  • Stáhněte a nainstalujte Azure IoT Edge Tools z Visual Studio Marketplace a vytvořte projekt IoT Edge v Visual Studio 2019.

    Tip

    Pokud používáte nástroj Visual Studio 2017, stáhněte a nainstalujte Azure IoT Edge Tools pro VS 2017 z Visual Studio Marketplace.

  • Stáhněte a nainstalujte Docker Community Edition na vývojový počítač a sestavte a spusťte image modulů. V závislosti na typu modulů, které vyvíjíte, budete muset nastavit Docker CE tak, aby se spouštěl v režimu kontejneru Linuxu nebo Windows kontejneru.

  • Nainstalujte si nástroj Azure IoT EdgeHub DevTool a nastavte místní vývojové prostředí pro ladění, spouštění IoT Edge testování vašeho řešení. Nainstalujte Python (3.5/3.6/3.7/3.8) a Pip a pak nainstalujte balíček iotedgehubdev spuštěním následujícího příkazu v terminálu. Ujistěte se, že je vaše verze nástroje Azure IoT EdgeHub Dev Tool vyšší než 0.3.0.

    pip install --upgrade iotedgehubdev
    
  • Nainstalujte správce knihovny Vcpkg a pak nainstalujte balíček azure-iot-sdk-c pro Windows.

    git clone https://github.com/Microsoft/vcpkg
    cd vcpkg
    bootstrap-vcpkg.bat
    
    vcpkg.exe install azure-iot-sdk-c:x64-windows
    vcpkg.exe --triplet x64-windows integrate install
    
  • Vytvořte instanci služby Azure Container Registry nebo Docker Hub pro ukládání imagí modulů.

    Tip

    Místní registr Dockeru můžete použít pro účely prototypu a testování místo cloudového registru.

  • K otestování modulu na zařízení budete potřebovat aktivní centrum IoT s alespoň jedním IoT Edge zařízením. Pokud chcete rychle vytvořit IoT Edge zařízení pro testování, postupujte podle kroků v rychlém startu pro Linux nebo Windows. Pokud na vývojovém IoT Edge používáte démona, možná budete muset před zahájením vývoje v prostředích pro vývoj zastavit EdgeHub a EdgeAgent Visual Studio.

Kontrola verze nástrojů

  1. V nabídce Rozšíření vyberte Spravovat rozšíření. Rozbalte nainstalované > nástroje a najdete Azure IoT Edge Tools pro Visual Studio a Průzkumník cloudu pro Visual Studio.

  2. Poznamenejte si nainstalovanou verzi. Tuto verzi můžete porovnat s nejnovější verzí na Visual Studio Marketplace (Průzkumník cloudu, Azure IoT Edge)

  3. Pokud je vaše verze starší než verze dostupná na Visual Studio Marketplace, aktualizujte své nástroje v Visual Studio, jak je znázorněno v následující části.

Aktualizace nástrojů

  1. V okně Spravovat rozšíření rozbalte aktualizace > Visual Studio Marketplace, vyberte Azure IoT Edge Tools nebo Průzkumník cloudu pro Visual Studio vyberte Aktualizovat.

  2. Po stažení aktualizace nástrojů zavřete Visual Studio a aktivujte aktualizaci nástrojů pomocí instalačního programu VSIX.

  3. V instalačním programu spusťte výběrem OK a pak upravit, aby se nástroje aktualizují.

  4. Po dokončení aktualizace vyberte Zavřít a restartujte Visual Studio.

Vytvoření Azure IoT Edge projektu

Šablona IoT Edge projektu v Visual Studio vytvoří řešení, které lze nasadit do IoT Edge zařízení. Nejprve vytvoříte Azure IoT Edge řešení a pak vygeneruje první modul v tomto řešení. Každé IoT Edge může obsahovat více než jeden modul.

Tip

Struktura IoT Edge projektu vytvořená Visual Studio není stejná jako v Visual Studio Code.

  1. V Visual Studio vytvořte nový projekt.

  2. Na stránce Vytvořit nový projekt vyhledejte Azure IoT Edge. Vyberte projekt, který odpovídá platformě a architektuře vašeho zařízení IoT Edge, a klikněte na Další.

    Vytvoření nového Project

  3. Na stránce Configure your new project (Konfigurace nového projektu) zadejte název projektu a zadejte umístění a pak vyberte Create (Vytvořit).

  4. V okně Přidat modul vyberte typ modulu, který chcete vyvíjet. Můžete také vybrat existující modul a přidat do IoT Edge existující modul. Zadejte název modulu a úložiště i image modulu.

    Visual Studio adresu URL úložiště automaticky dosplní názvem modulu localhost:5000/<. > Pokud k testování používáte místní registr Dockeru, je localhost v pořádku. Pokud používáte Azure Container Registry, nahraďte localhost:5000 přihlašovacím serverem z nastavení registru. Přihlašovací server vypadá jako <registry name> .azurecr.io. Konečný výsledek by měl vypadat jako <registry name> .azurecr.io/ <module name>.

    Vyberte Přidat a přidejte modul do projektu.

    Přidání aplikace a modulu

Teď máte ve svém IoT Edge projekt a IoT Edge modul Visual Studio.

Složka module obsahuje soubor pro váš kód modulu s názvem nebo v závislosti na program.cs main.c jazyku, který jste zvolili. Tato složka obsahuje také soubor s názvem module.json , který popisuje metadata vašeho modulu. Různé soubory Dockeru poskytují informace potřebné k sestavení modulu jako kontejneru Windows nebo Linuxu.

Složka projektu obsahuje seznam všech modulů zahrnutých v tomto projektu. V pravém horním rohu by se měl zobrazit pouze jeden modul, ale můžete přidat další. Další informace o přidávání modulů do projektu najdete v části Sestavení a ladění více modulů dále v tomto článku.

Složka projektu obsahuje také soubor s názvem deployment.template.json . Tento soubor je šablona manifestu nasazení IoT Edge, který definuje všechny moduly, které se budou spouštět na zařízení, spolu s tím, jak budou vzájemně komunikovat. Další informace o manifestech nasazení najdete v tématu Naučte se nasazovat moduly a navázání tras. Pokud tuto šablonu nasazení otevřete, uvidíte, že jsou zahrnuty dva moduly runtime edgeAgent a edgeHub spolu s vlastním modulem, který jste vytvořili v tomto Visual Studio projektu. Součástí je také čtvrtý modul s názvem SimulatedTemperatureSensor. Tento výchozí modul generuje simulovaná data, která můžete použít k otestování modulů nebo k jejich odstranění, pokud to není nezbytné. Pokud chcete vidět, jak simulovaný senzor teploty funguje, podívejte se na zdrojový kód SimulatedTemperatureSensor.csproj.

Nastavení IoT Edge runtime

Při IoT Edge prostředků nasazení se jako výchozí použije nejnovější stabilní IoT Edge runtime. V současné době je nejnovější stabilní verze 1.2. Pokud vyvíjíte moduly pro zařízení s dlouhodobou verzí podpory 1.1 nebo starší verzí 1.0, aktualizujte verzi IoT Edge Runtime v Visual Studio tak, aby odpovídala.

  1. V Průzkumník řešení klikněte pravým tlačítkem na název projektu a vyberte Nastavit IoT Edge runtime verze.

    Klikněte pravým tlačítkem na název projektu a vyberte nastavit IoT Edge runtime.

  2. Pomocí rozevírací nabídky zvolte verzi modulu runtime, ve které IoT Edge vaše zařízení běží, a pak výběrem OK uložte provedené změny.

  3. Znovu vygenerování manifestu nasazení s novou verzí modulu runtime Klikněte pravým tlačítkem na název projektu a vyberte Vygenerovat nasazení pro IoT Edge.

Vývoj modulu

Když přidáte nový modul, bude mít výchozí kód, který je připravený k sestavení a nasazení do zařízení, abyste mohli začít testovat bez dotyku kódu. Kód modulu se nachází ve složce module v souboru s názvem Program.cs (pro C#) nebo main.c (pro C).

Výchozí řešení je vytvořené tak, aby se simulovaná data z modulu SimulatedTemperatureSensor směrovala do vašeho modulu, který převezme vstup a pak je odešle do IoT Hub.

Až budete připraveni přizpůsobit šablonu modulu pomocí vlastního kódu, pomocí nástrojů Azure IoT Hub SDK vytvořte moduly, které řeší klíčové potřeby řešení IoT, jako je zabezpečení, správa zařízení a spolehlivost.

Nastavení testovacího nástroje iotedgehubdev

Vývojový nástroj IoT EdgeHub poskytuje místní prostředí pro vývoj a ladění. Tento nástroj pomáhá spouštět IoT Edge bez modulu runtime IoT Edge, abyste mohli vytvářet, vyvíjet, testovat, spouštět a ladit IoT Edge moduly a řešení místně. Nemusíte nasazovat image do registru kontejneru a nasazovat je do zařízení pro účely testování.

Další informace najdete v tématu Azure IoT EdgeHub Dev Tool.

Pokud chcete nástroj inicializovat, zadejte IoT Edge připojovací řetězec zařízení z IoT Hub.

  1. načte připojovací řetězec IoT Edge zařízení z Azure Portal, rozhraní příkazového řádku Azure nebo průzkumníka cloudu Visual Studio.

  2. v nabídce nástroje vyberte Azure IoT Edge Tools > nastavení IoT Edge simulátor.

  3. Vložte připojovací řetězec a klikněte na OK.

Poznámka

Tento postup je třeba provést pouze jednou ve vývojovém počítači, protože výsledky jsou automaticky aplikovány na všechna následující Azure IoT Edge řešení. Tento postup můžete znovu provést, pokud potřebujete změnit jiný připojovací řetězec.

Sestavování a ladění jednoho modulu

Obvykle budete chtít otestovat a ladit každý modul před jeho spuštěním v rámci celého řešení s více moduly.

Tip

v závislosti na typu IoT Edge modulu, který vyvíjíte, se ujistěte, že jste přešli do správného režimu kontejneru docker, buď v režimu kontejnerů Linux, nebo v režimu kontejneru Windows. V nabídce Docker Desktop můžete přepínat mezi dvěma typy režimů. pokud chcete použít kontejnery Windows, vyberte přepnout do Windows kontejnerů , nebo vyberte přepnout na kontejnery linux a použijte kontejnery linux.

  1. v Průzkumník řešení klikněte pravým tlačítkem na složku modul a v nabídce vyberte nastavit jako spouštěcí Project .

    Nastavit úvodní Project

  2. Stisknutím klávesy F5 nebo kliknutím na tlačítko spustit na panelu nástrojů spusťte modul. Když to uděláte poprvé, může to trvat 10 – minut.

    Spustit modul

  3. Pokud byl modul úspěšně inicializován, měla by se zobrazit konzola aplikace .NET Core.

  4. Nastavte zarážku pro kontrolu modulu.

    • Při vývoji v jazyce C# nastavte zarážku ve PipeMessage() funkci v programu program. cs.
    • Pokud používáte jazyk C, nastavte zarážku ve InputQueue1Callback() funkci v Main. C.
  5. Otestujte modul odesláním zprávy spuštěním následujícího příkazu v prostředí Git bash nebo WSL bash Shell. (Nemůžete spustit curl příkaz z PowerShellu nebo příkazového řádku.)

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

    Ladit jeden modul

    Měla by se aktivovat zarážka. proměnné můžete sledovat v okně Visual Studioch místních hodnot.

    Tip

    K posílání zpráv místo toho můžete použít taky post nebo jiné nástroje API curl .

  6. Stisknutím kombinace kláves CTRL + F5 nebo kliknutím na tlačítko Zastavit Zastavte ladění.

Sestavování a ladění více modulů

Až dokončíte vývoj jednoho modulu, můžete chtít spustit a ladit celé řešení s několika moduly.

  1. V Průzkumník řešení přidejte do řešení druhý modul tak, že kliknete pravým tlačítkem na složku projektu. V nabídce vyberte Přidat > Nový IoT Edge modul.

    Přidání nového modulu do existujícího projektu IoT Edge

  2. Otevřete soubor deployment.template.json a uvidíte, že nový modul byl přidaný v části moduly . Do oddílu Routes se přidala taky nová trasa, která odešle zprávy z nového modulu do IoT Hub. Pokud chcete do nového modulu odesílat data z snímače simulované teploty, přidejte další trasu jako v následujícím příkladu:

    "sensorTo<NewModuleName>": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/<NewModuleName>/inputs/input1\")"
    
  3. klikněte pravým tlačítkem myši na složku projektu a v místní nabídce vyberte možnost nastavit jako spouštěcí Project .

  4. Vytvořte zarážky a potom stiskněte klávesu F5 ke spuštění a ladění více modulů současně. Mělo by se zobrazit několik oken konzolových aplikací .NET Core, která jednotlivá okna představují jiný modul.

    Ladění více modulů

  5. Stisknutím kombinace kláves CTRL + F5 nebo kliknutím na tlačítko Zastavit Zastavte ladění.

Sestavování a vkládání imagí

  1. Ujistěte se, že IoT Edge projekt je spouštěcí projekt, nikoli jeden z jednotlivých modulů. Vyberte buď ladění , nebo vydání jako konfiguraci pro sestavení imagí modulu.

    Poznámka

    při volbě možnosti ladění Visual Studio Dockerfile.(amd64|windows-amd64).debug k vytváření imagí docker používat. To zahrnuje ladicí program příkazového řádku .NET Core VSDBG do image kontejneru při jeho vytváření. Pro moduly IoT Edge připravené pro produkční prostředí doporučujeme použít konfiguraci vydané verze , která se používá Dockerfile.(amd64|windows-amd64) bez VSDBG.

  2. Pokud používáte privátní registr, jako je Azure Container Registry (ACR), přihlaste se k němu pomocí následujícího příkazu Docker. Uživatelské jméno a heslo můžete získat ze stránky přístupové klávesy v registru v Azure Portal. Pokud používáte místní registr, můžete Spustit místní registr.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    
  3. Pokud používáte privátní registr, jako je Azure Container Registry, je nutné přidat přihlašovací informace registru do nastavení modulu runtime zjištěného v souboru deployment.template.json . Zástupné symboly nahraďte skutečným uživatelským jménem správce ACR, heslem a názvem registru.

          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {
              "registry1": {
                "username": "<username>",
                "password": "<password>",
                "address": "<registry name>.azurecr.io"
              }
            }
          }
    

    Poznámka

    Tento článek používá přihlašovací údaje správce pro Azure Container Registry, které jsou vhodné pro vývojové a testovací scénáře. Až budete připraveni na produkční scénáře, doporučujeme použít možnost ověřování s minimálními oprávněními jako instanční objekty. Další informace najdete v tématu Správa přístupu k registru kontejneru.

  4. V Průzkumník řešení klikněte pravým tlačítkem myši na složku projektu a vyberte sestavování a nabízených IoT Edge modulů pro sestavení a vložení image Docker pro každý modul.

Nasazení řešení

V článku Rychlý start, pomocí kterého jste nastavili své zařízení IoT Edge, jste nasadili modul pomocí webu Azure Portal. Moduly můžete nasadit také pomocí Průzkumníka cloudu pro Visual Studio. Už máte připravený manifest nasazení pro váš scénář, deployment.json soubor a vše, co je potřeba udělat, je vybrat zařízení pro příjem nasazení.

  1. Kliknutím na Zobrazit Průzkumníka cloudu otevřete Průzkumníka cloudu > . ujistěte se, že jste přihlášeni k Visual Studio 2019.

  2. V Průzkumníku cloudu rozbalte své předplatné, najděte IoT Hub Azure a Azure IoT Edge zařízení, které chcete nasadit.

  3. Klikněte pravým tlačítkem na zařízení IoT Edge a vytvořte pro něj nasazení. v řešení Visual Studio přejděte na manifest nasazení nakonfigurovaný pro vaši platformu, která je umístěná ve složce config deployment.arm32v7.json .

  4. Kliknutím na tlačítko Aktualizovat zobrazíte nové moduly běžící společně s modulem SimulatedTemperatureSensor a $edgeAgent a $edgeHub.

Zobrazit vygenerovaná data

  1. Pokud chcete monitorovat zprávu D2C pro konkrétní IoT Edge zařízení, vyberte ji v centru IoT v Průzkumníku cloudu a potom v okně Akce klikněte na Spustit sledování vestavěného koncového bodu události .

  2. Chcete-li zastavit monitorování dat, vyberte možnost Zastavit sledování vestavěného koncového bodu události v okně Akce .

Další kroky

Pro vývoj vlastních modulů pro IoT Edge zařízení, pochopení a používání sady Azure IoT Hub SDK.