Oktatóanyag: IoT Edge-modulok fejlesztése Windows-tárolók használatával

A következőre vonatkozik: igenikon IoT Edge 1.1

Fontos

IoT Edge támogatás megszűnésének dátuma 2022. december 13. volt. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. További információ a IoT Edge legújabb verziójára való frissítésről: IoT Edge frissítése.

A Visual Studióval kódot fejleszthet és telepíthet IoT Edge futtató Windows-eszközökön.

Megjegyzés

IoT Edge 1.1 LTS az utolsó kiadási csatorna, amely támogatja a Windows-tárolókat. Az 1.2-es verziótól kezdődően a Windows-tárolók nem támogatottak. Fontolja meg a windowsos Linux IoT Edge használatát vagy áthelyezését a IoT Edge Windows-eszközökön való futtatásához.

Ez az oktatóanyag végigvezeti a saját kód fejlesztésén és üzembe helyezésén egy IoT Edge eszközön. Ez az oktatóanyag hasznos előfeltétele a többi oktatóanyagnak, amelyek részletesebben ismertetik az egyes programozási nyelveket vagy Azure-szolgáltatásokat.

Ez az oktatóanyag egy C#-modul Windows-eszközön való üzembe helyezésének példáját használja. Ezt a példát azért választottuk, mert ez a leggyakoribb fejlesztési forgatókönyv. Ha más nyelven szeretne fejleszteni, vagy az Azure-szolgáltatások modulként való üzembe helyezését tervezi, ez az oktatóanyag továbbra is hasznos lesz a fejlesztői eszközök megismeréséhez. Miután megismerte a fejlesztési fogalmakat, kiválaszthatja az előnyben részesített nyelvet vagy az Azure-szolgáltatást a részletek megismeréséhez.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Állítsa be a fejlesztői gépet.
  • Új projekt létrehozásához használja a Visual Studio IoT Edge eszközeit.
  • Hozza létre a projektet tárolóként, és tárolja egy Azure Container Registryben.
  • Helyezze üzembe a kódot egy IoT Edge eszközön.

Előfeltételek

Fejlesztői gép:

  • Windows 10 az 1809-ben frissített vagy újabb verzióval.
  • A fejlesztési beállításoktól függően használhatja saját számítógépét vagy virtuális gépét.
    • Győződjön meg arról, hogy a fejlesztői gép támogatja a beágyazott virtualizálást. Ez a képesség szükséges egy tárolómotor futtatásához, amelyet a következő szakaszban telepít.
  • Telepítse a Gitet.

Egy Azure IoT Edge-eszköz Windows rendszeren:

  • Az Azure IoT Edge telepítése és kezelése Windows-tárolókkal.
  • Javasoljuk, hogy ne futtasson IoT Edge a fejlesztői gépen, hanem ha lehetséges, használjon külön eszközt. Ez a különbségtétel a fejlesztői gép és IoT Edge eszköz között pontosabban tükrözi a valódi üzembe helyezési forgatókönyvet, és segít a különböző fogalmak egyszerűségében.

Felhőerőforrások:

  • Ingyenes vagy standard szintű IoT Hub az Azure-ban.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Fő fogalmak

Ez az oktatóanyag egy IoT Edge modul fejlesztését mutatja be. Egy IoT Edge modul, vagy néha csak egy rövid modul, egy végrehajtható kódot tartalmazó tároló. Egy vagy több modult üzembe helyezhet egy IoT Edge eszközön. A modulok meghatározott feladatokat hajtanak végre, például adatokat fogadnak az érzékelőkből, adatelemzési vagy adattisztítási műveleteket hajtanak végre, vagy üzeneteket küldenek egy IoT Hubnak. További információ: Az Azure IoT Edge moduljainak ismertetése.

IoT Edge modulok fejlesztésekor fontos megérteni a fejlesztőgép és a cél IoT Edge eszköz közötti különbséget, ahol a modul végül üzembe lesz helyezve. A modulkód tárolására szolgáló tárolónak meg kell egyeznie a céleszköz operációs rendszerével (OS). A Windows-tárolók fejlesztése esetén ez a fogalom egyszerűbb, mivel a Windows-tárolók csak Windows operációs rendszereken futnak. De használhatja például a Windows fejlesztői gépét a Linux IoT Edge-eszközök moduljainak létrehozásához. Ebben a forgatókönyvben meg kell győződnie arról, hogy a fejlesztői gép Linux-tárolókat futtat. Az oktatóanyag végighaladtával tartsa szem előtt a fejlesztői gép operációs rendszere és a tároló operációs rendszere közötti különbséget.

Ez az oktatóanyag a IoT Edge futó Windows-eszközöket célozza meg. A Windows IoT Edge-eszközök Windows-tárolókat használnak. Javasoljuk, hogy a Visual Studiót használja a Windows-eszközök fejlesztéséhez, ezért ezt fogja használni ez az oktatóanyag. A Visual Studio Code-ot is használhatja, bár a két eszköz támogatásában különbségek vannak.

Az alábbi táblázat a Visual Studio Code-ban és a Visual Studióban használt Windows-tárolók támogatott fejlesztési forgatókönyveit sorolja fel.

Visual Studio Code Visual Studio 2017/2019
Azure-szolgáltatások Azure Functions
Azure Stream Analytics
Nyelvek C# (a hibakeresés nem támogatott) C#
C#
További információ Azure IoT Edge for Visual Studio Code
Azure IoT Hub
Azure IoT Edge Tools a Visual Studio 2017-hez
Azure IoT Edge Tools a Visual Studio 2019-hez

Tárolómotor telepítése

IoT Edge modulok tárolókként vannak csomagolva, ezért a tárolók létrehozásához és kezeléséhez szüksége van egy tárolómotorra a fejlesztői gépen. Javasoljuk, hogy a Docker Desktopot használja fejlesztésre, mivel számos funkciója és népszerűsége tárolómotorként van használatban. Windows rendszerű számítógépeken a Docker Desktoppal válthat a Linux-tárolók és a Windows-tárolók között, így egyszerűen fejleszthet modulokat különböző típusú IoT Edge eszközökhöz.

A Docker dokumentációját használva telepítheti a fejlesztői gépre:

A Visual Studio és az eszközök beállítása

A Visual Studio IoT-bővítményei segítenek IoT Edge modulok fejlesztésében. Ezek a bővítmények projektsablonokat biztosítanak, automatizálják az üzembehelyezési jegyzék létrehozását, és lehetővé teszik IoT Edge eszközök figyelését és kezelését. Ebben a szakaszban telepítenie kell a Visual Studiót és a IoT Edge bővítményt, majd be kell állítania az Azure-fiókját, hogy IoT Hub erőforrásokat kezelje a Visual Studióban.

Ez az oktatóanyag bemutatja a Visual Studio 2019 fejlesztési lépéseit. Ha a Visual Studio 2017-et (15.7-es vagy újabb verziót) használja, a lépések hasonlóak. Ha inkább a Visual Studio Code-ot szeretné használni, tekintse meg az Azure IoT Edge moduljainak fejlesztéséhez és hibakereséséhez a Visual Studio Code használatával című témakör utasításait.

  1. Készítse elő a Visual Studio 2019-et a fejlesztői gépen.

    • Ha még nem rendelkezik Visual Studióval a fejlesztői gépen, telepítse a Visual Studio 2019-et a következő számítási feladatokkal:

      • Azure-fejlesztés
      • Asztali fejlesztés A C++ használatával
      • .NET Core platformfüggetlen fejlesztés
    • Ha már rendelkezik Visual Studio 2019-sel a fejlesztői gépen, kövesse a Visual Studio módosítása című cikk lépéseit a szükséges számítási feladatok hozzáadásához.

  2. Töltse le és telepítse a Visual Studio 2019 Azure IoT Edge Tools bővítményét.

    Ha a Visual Studio 2017-et (15.7-es vagy újabb verziót) használja, töltse le és telepítse a Visual Studio 2017 Azure IoT Edge Tools.

  3. A telepítés befejezése után nyissa meg a Visual Studio 2019-et, és válassza a Folytatás kód nélkül lehetőséget.

  4. Válassza aFelhőkezelőmegtekintése> lehetőséget.

  5. Válassza a profil ikont a felhőkezelőben, és jelentkezzen be az Azure-fiókjába, ha még nincs bejelentkezve.

  6. Miután bejelentkezett, megjelenik az Azure-előfizetések listája. Bontsa ki az IoT Hubot tartalmazó előfizetést.

  7. Az előfizetése alatt bontsa ki az IoT Hubs , majd az IoT Hub elemet. Meg kell jelennie az IoT-eszközök listájának, és ezzel a kezelővel kezelheti őket.

    IoT Hub-erőforrások elérése a Cloud Explorerben

Tárolóregisztrációs adatbázis létrehozása

Ebben az oktatóanyagban létrehoz egy modult, és létrehoz egy tárolórendszerképet a fájlokból. Ezután ezt a rendszerképet leküldi a rendszerképeit tároló és felügyelő beállításjegyzékbe. Végül üzembe helyezi a rendszerképet a beállításjegyzékből az IoT Edge-eszközön való futtatáshoz.

A tárolólemezképek tárolására bármilyen Docker-kompatibilis beállításjegyzéket használhat. Két népszerű Docker-beállításjegyzék-szolgáltatás a Azure Container Registry és a Docker Hub. Ez az oktatóanyag az Azure Container Registryt használja.

Ha még nem rendelkezik tárolóregisztrációs adatbázissal, az alábbi lépéseket követve hozzon létre egy újat az Azure-ban:

  1. Az Azure Portalon válassza az Erőforrás létrehozása>Tárolók>Container Registry elemet.

  2. Adja meg a következő értékeket a tárolóregisztrációs adatbázis létrehozásához:

    Mező Érték
    Előfizetés A legördülő listából válasszon egy előfizetést.
    Erőforráscsoport Javasoljuk, hogy az IoT Edge rövid útmutatók és oktatóanyagok során elkészített erőforráscsoportot használja minden teszterőforráshoz. Például: IoTEdgeResources.
    Beállításjegyzék neve Egyedi nevet adjon meg.
    Hely Válassza ki az Önhöz legközelebb eső helyet.
    SKU Válassza az Alapszintű lehetőséget.
  3. Válassza a Létrehozás lehetőséget.

  4. Válassza ki az újonnan létrehozott tárolóregisztrációs adatbázist a Azure Portal kezdőlapJának Erőforrások szakaszában a megnyitásához.

  5. A tárolóregisztrációs adatbázis bal oldali ablaktábláján válassza a Hozzáférési kulcsok lehetőséget a Beállítások menüben.

  6. Engedélyezze Rendszergazda felhasználót a váltógombbal, és tekintse meg a tárolóregisztrációs adatbázis felhasználónevét és jelszavát.

  7. Másolja ki a bejelentkezési kiszolgáló, a felhasználónév és a jelszó értékeit, és mentse őket egy kényelmes helyre. Az oktatóanyag során ezeket az értékeket használja a tárolóregisztrációs adatbázishoz való hozzáférés biztosításához.

új modulprojekt Létrehozás

A Azure IoT Edge Tools bővítmény projektsablonokat biztosít a Visual Studio összes támogatott IoT Edge modulnyelvéhez. Ezek a sablonok rendelkeznek az összes olyan fájllal és kóddal, amelyet üzembe kell helyeznie egy munkamodulban a IoT Edge teszteléséhez, vagy kiindulási pontként szolgál a sablon saját üzleti logikával történő testreszabásához.

  1. Válassza azÚj> projekt fájlja>... lehetőséget.

  2. Az új projektablakban keresse meg a IoT Edge, és válassza ki az Azure IoT Edge (Windows amd64) projektet. Kattintson a Tovább gombra.

    új Azure IoT Edge-projekt Létrehozás

  3. Az új projekt konfigurálása ablakban nevezze át a projektet és a megoldást egy leíró névre, például a CSharpTutorialApp névre. Kattintson Létrehozás a projekt létrehozásához.

    Új Azure IoT Edge-projekt konfigurálása

  4. A Modul hozzáadása ablakban konfigurálja a projektet a következő értékekkel:

    Mező Érték
    Visual Studio-sablon Válassza a C# modul lehetőséget.
    Modulnév Fogadja el az alapértelmezett IotEdgeModule1 értéket.
    Adattár URL-címe Egy rendszerképadattár a tárolóregisztrációs adatbázis nevét és a tárolórendszerkép nevét tartalmazza. A tárolórendszerkép előre fel van töltve a modul projektnév-értékéből. Cserélje le a localhost:5000 értéket az Azure Container Registry Bejelentkezési kiszolgáló értékére. A bejelentkezési kiszolgáló értékét a tárolóregisztrációs adatbázis Áttekintés oldaláról kérdezheti le a Azure Portal.

    A végső rendszerképtár a következőhöz hasonló <: registry name.azurecr.io/iotedgemodule1>.

    A projekt konfigurálása céleszközhöz, modultípushoz és tárolóregisztrációs adatbázishoz

  5. A modul létrehozásához válassza a Hozzáadás lehetőséget.

Miután az új projekt betöltődött a Visual Studio ablakában, szánjon egy kis időt a létrehozott fájlok megismerésére:

  • Egy CSharpTutorialApp nevű IoT Edge projekt.
    • A Modulok mappa a projektben szereplő modulokra mutató mutatókat tartalmaz. Ebben az esetben csak iotEdgeModule1-nek kell lennie.
    • A rejtett .env fájl tárolja a tárolóregisztrációs adatbázis hitelesítő adatait. Ezek a hitelesítő adatok meg vannak osztva a IoT Edge eszközével, hogy hozzáférhessen a tárolórendszerképek lekéréséhez.
    • A deployment.template.json fájl egy sablon, amely segítséget nyújt az üzembehelyezési jegyzék létrehozásához. Az üzembehelyezési jegyzékfájl egy olyan fájl, amely pontosan meghatározza, hogy mely modulokat szeretné üzembe helyezni az eszközön, hogyan kell konfigurálni őket, és hogyan kommunikálhatnak egymással és a felhővel.

      Tipp

      A beállításjegyzék hitelesítő adatai szakaszban a rendszer automatikusan kitölti a címet a megoldás létrehozásakor megadott információkból. Az .env fájlban tárolt felhasználónév- és jelszó-referenciaváltozók azonban. Ez a biztonságra szolgál, mivel a git figyelmen kívül hagyja az .env fájlt, de az üzembehelyezési sablon nem.

  • Egy IotEdgeModule1 nevű IoT Edge modulprojekt.
    • A program.cs fájl tartalmazza a projektsablon alapértelmezett C#-modulkódját. Az alapértelmezett modul bemenetet vesz fel egy forrásból, és továbbítja azt a IoT Hub.
    • A module.json fájl tartalmazza a modul részleteit, beleértve a teljes rendszerkép-adattárat, a rendszerkép verzióját, valamint azt, hogy melyik Docker-fájlt használja az egyes támogatott platformokhoz.

IoT Edge futtatókörnyezet verziójának beállítása

A IoT Edge bővítmény alapértelmezés szerint a IoT Edge futtatókörnyezet legújabb stabil verzióját használja az üzembehelyezési eszközök létrehozásakor.

A Windows-tárolók csak az 1.1 hosszú távú vagy a korábbi 1.0-s verzióban támogatottak. Ha Windows-tárolókat használó eszközökhöz szeretne modulokat fejleszteni, frissítse a IoT Edge futtatókörnyezet verzióját a Visual Studióban úgy, hogy az megfeleljen az eszközök IoT Edge verziójának.

  1. A Megoldáskezelő kattintson a jobb gombbal a projekt nevére, és válassza a IoT Edge futtatókörnyezet verziójának beállítása lehetőséget.

    Kattintson a jobb gombbal a projekt nevére, és válassza IoT Edge futtatókörnyezet verziójának beállítása lehetőséget.

  2. A legördülő menüben válassza ki az IoT Edge-eszközök által futtatott futtatókörnyezeti verziót, majd a módosítások mentéséhez kattintson az OK gombra.

  3. Hozza létre újra az üzembehelyezési jegyzékfájlt az új futtatókörnyezeti verzióval. Kattintson a jobb gombbal a projekt nevére, és válassza az Üzembe helyezés létrehozása IoT Edge lehetőséget.

Adja meg a beállításjegyzék hitelesítő adatait az IoT Edge ügynöknek

A IoT Edge futtatókörnyezetnek szüksége van a regisztrációs adatbázis hitelesítő adataira a tárolórendszerképek IoT Edge eszközre való lekéréséhez. A IoT Edge bővítmény megpróbálja lekérni a tárolóregisztrációs adatbázis adatait az Azure-ból, és feltölteni az üzembe helyezési sablonba.

  1. Nyissa meg a deployment.template.json fájlt a modulmegoldásban.

  2. Keresse meg a beállításjegyzékCredentials tulajdonságát a $edgeAgent kívánt tulajdonságok között. A beállításjegyzék-címnek automatikusan ki kell töltenie a projekt létrehozásakor megadott információkból, majd a felhasználónév és a jelszó mezőknek változóneveket kell tartalmazniuk. Például:

    "registryCredentials": {
      "<registry name>": {
        "username": "$CONTAINER_REGISTRY_USERNAME_<registry name>",
        "password": "$CONTAINER_REGISTRY_PASSWORD_<registry name>",
        "address": "<registry name>.azurecr.io"
      }
    }
    
  3. Nyissa meg az .env fájlt a modulmegoldásban. (Alapértelmezés szerint el van rejtve a Megoldáskezelő, ezért előfordulhat, hogy a megjelenítéshez az Összes fájl megjelenítése gombot kell választania.)

  4. Adja hozzá az Azure-tárolóregisztrációs adatbázisból kimásolt Felhasználónév és Jelszó értékeket.

  5. Mentse a módosításokat az .env fájlba.

Megjegyzés

Ez az oktatóanyag rendszergazdai bejelentkezési hitelesítő adatokat használ a Azure Container Registry, amelyek fejlesztési és tesztelési forgatókönyvekhez kényelmesek. Ha készen áll az éles forgatókönyvekre, javasoljuk egy minimális jogosultságú hitelesítési lehetőséget, például a szolgáltatásneveket. További információ: A tárolóregisztrációs adatbázishoz való hozzáférés kezelése.

A mintakód áttekintése

A létrehozott megoldássablon mintakódot tartalmaz egy IoT Edge modulhoz. Ez a mintamodul egyszerűen fogadja az üzeneteket, majd továbbadja őket. A folyamatfunkció a IoT Edge egy fontos fogalmát mutatja be, amely a modulok egymással való kommunikációját mutatja be.

Minden modulhoz több bemeneti és kimeneti üzenetsor is deklarálható a kódban. Az eszközön futó IoT Edge központ egy modul kimenetéből egy vagy több modul bemenetébe irányítja az üzeneteket. A bemenetek és kimenetek deklarálásának konkrét kódja nyelvenként eltérő, de a koncepció minden modulban ugyanaz. További információ a modulok közötti útválasztásról: Útvonalak deklarálása.

A projektsablonhoz tartozó C#-mintakód a .NET-hez készült IoT Hub SDK ModuleClient osztályát használja.

  1. A program.cs fájlban keresse meg a SetInputMessageHandlerAsync metódust.

  2. A SetInputMessageHandlerAsync metódus bemeneti üzenetsort állít be a bejövő üzenetek fogadásához. Tekintse át ezt a módszert, és nézze meg, hogyan inicializál egy input1 nevű bemeneti üzenetsort.

    A bemeneti név megkeresése a SetInputMessageHandlserAsync konstruktorban

  3. Ezután keresse meg a SendEventAsync metódust .

  4. A SendEventAsync metódus feldolgozza a fogadott üzeneteket, és beállít egy kimeneti üzenetsort a továbbításukhoz. Tekintse át ezt a metódust, és ellenőrizze, hogy inicializál egy output1 nevű kimeneti üzenetsort.

    A kimeneti név megkeresése a SendEventAsync konstruktorban

  5. Nyissa meg a deployment.template.json fájlt.

  6. Keresse meg a $edgeAgent kívánt tulajdonságok modultulajdonságait.

    Itt két modulnak kell szerepelnie. Az egyik a SimulatedTemperatureSensor modul, amely alapértelmezés szerint az összes sablonban szerepel, hogy szimulált hőmérsékleti adatokat biztosítson a modulok teszteléséhez. A másik a projekt részeként létrehozott IotEdgeModule1 modul.

    Ez a modultulajdonság deklarálja, hogy mely modulokat kell belefoglalni az eszközre vagy az eszközökre történő üzembe helyezésbe.

  7. Keresse meg a $edgeHub kívánt tulajdonságok routes tulajdonságát.

    A IoT Edge központi modul egyik funkciója az üzenetek átirányítása az üzembe helyezés összes modulja között. Tekintse át az útvonalak tulajdonság értékeit. Az egyik útvonal, az IotEdgeModule1ToIoTHub helyettesítő karaktert* () használ az IotEdgeModule1 modul bármely kimeneti üzenetsorából érkező üzenetek hozzáadásához. Ezek az üzenetek $upstream kerülnek, amely egy fenntartott név, amely IoT Hub jelez. A másik útvonal, a sensorToIotEdgeModule1 a SimulatedTemperatureSensor modulból érkező üzeneteket az IotEdgeModule1 modul input1 bemeneti üzenetsorába irányítja.

    Útvonalak áttekintése deployment.template.json

A megoldás létrehozása és leküldése

Áttekintette a modulkódot és az üzembehelyezési sablont, hogy megismerjen néhány fontos üzembe helyezési fogalmat. Most már készen áll az IotEdgeModule1 tárolórendszerkép létrehozására és a tárolóregisztrációs adatbázisba való leküldésére. A Visual Studio IoT-eszközök bővítményével ez a lépés az üzembe helyezési jegyzékfájlt is létrehozza a sablonfájl adatai és a megoldásfájlok moduladatai alapján.

Bejelentkezés a Dockerbe

Adja meg a tárolóregisztrációs adatbázis hitelesítő adatait a Dockernek a fejlesztői gépen, hogy leküldhesse a tárolórendszerképet a beállításjegyzékben való tároláshoz.

  1. Nyissa meg a PowerShellt vagy egy parancssort.

  2. Jelentkezzen be a Dockerbe a beállításjegyzék létrehozása után mentett Azure-tárolóregisztrációs adatbázis hitelesítő adataival.

    docker login -u <ACR username> -p <ACR password> <ACR login server>
    

    Előfordulhat, hogy biztonsági figyelmeztetést kap, amely a használatát --password-stdinjavasolja. Bár ez az ajánlott eljárás éles forgatókönyvekhez ajánlott, az oktatóanyag hatókörén kívül esik. További információt a Docker bejelentkezési referenciájában talál.

Buildelés és leküldés

A fejlesztői gép már hozzáfér a tárolóregisztrációs adatbázishoz, és a IoT Edge eszközei is. Itt az ideje, hogy a projektkódot tárolórendszerképké alakítsa.

  1. Kattintson a jobb gombbal a CSharpTutorialApp projektmappára, és válassza a Build and Push IoT Edge Modules (Build and Push IoT Edge Modules) lehetőséget.

    IoT Edge modulok létrehozása és leküldése

    A buildelési és leküldéses parancs három műveletet indít el. Először létrehoz egy új mappát a konfiguráció nevű megoldásban, amely tartalmazza a teljes üzembehelyezési jegyzékfájlt, amely az üzembe helyezési sablonban és más megoldásfájlokban található információkból épül fel. Másodszor fut docker build a tárolórendszerkép létrehozásához a célarchitektúra megfelelő dockerfile-ja alapján. Ezután fut docker push , hogy leküldje a lemezkép-adattárat a tárolóregisztrációs adatbázisba.

    Ez a folyamat az első alkalommal több percet is igénybe vehet, de a parancsok következő futtatásakor gyorsabb lesz.

  2. Nyissa meg a deployment.windows-amd64.json fájlt az újonnan létrehozott konfigurációs mappában. (Előfordulhat, hogy a konfigurációs mappa nem jelenik meg a Visual Studio Megoldáskezelő. Ebben az esetben válassza az Összes fájl megjelenítése ikont a Megoldáskezelő tálcán.)

  3. Keresse meg az IotEdgeModule1 szakasz képparaméterét. Figyelje meg, hogy a rendszerkép tartalmazza a teljes lemezkép-adattárat a module.json fájlból származó névvel, verzióval és architektúracímkével.

  4. Nyissa meg a module.json fájlt az IotEdgeModule1 mappában.

  5. Módosítsa a modulkép verziószámát. (A verzió, nem a $schema-version.) Növelje például a javítás verziószámát 0.0.2-esre , mintha egy kis javítást végeztünk volna a modul kódjában.

    Tipp

    A modulverziók engedélyezik a verziókövetést, és lehetővé teszik a módosítások tesztelését egy kis eszközkészleten, mielőtt üzembe helyeznénk a frissítéseket az éles környezetben. Ha nem növeli a modulverziót a build és a leküldés előtt, felülírja az adattárat a tárolóregisztrációs adatbázisban.

  6. Mentse a módosításokat a module.json fájlba.

  7. Kattintson ismét a jobb gombbal a CSharpTutorialApp projektmappára, és válassza ismét a Build and Push IoT Edge Modules (Build és Push IoT Edge Modules) lehetőséget.

  8. Nyissa meg újra a deployment.windows-amd64.json fájlt. Figyelje meg, hogy a buildelési és leküldéses parancs ismételt futtatásakor nem jött létre új fájl. Ehelyett ugyanaz a fájl frissült, hogy tükrözze a módosításokat. Az IotEdgeModule1 kép most a tároló 0.0.2-es verziójára mutat. Az üzembe helyezési jegyzékben ez a változás azt mutatja meg az IoT Edge eszköznek, hogy egy modul új verzióját kell lekérni.

  9. A buildelési és leküldéses parancs további ellenőrzéséhez lépjen a Azure Portal, és keresse meg a tárolóregisztrációs adatbázist.

  10. A tárolóregisztrációs adatbázisban válassza az Adattárak , majd az iotedgemodule1 lehetőséget. Ellenőrizze, hogy a rendszerkép mindkét verziója le lett-e küldve a beállításjegyzékbe.

    Mindkét rendszerkép-verzió megtekintése a tárolóregisztrációs adatbázisban

Hibaelhárítás

Ha hibát tapasztal a modulrendszerkép létrehozásakor és leküldésekor, annak gyakran a docker-konfigurációval kell kapcsolatosnak lennie a fejlesztői gépen. A konfiguráció áttekintéséhez használja az alábbi ellenőrzéseket:

  • Futtatta a docker login parancsot a tárolóregisztrációs adatbázisból kimásolt hitelesítő adatokkal? Ezek a hitelesítő adatok eltérnek az Azure-ba való bejelentkezéshez használt hitelesítő adatoktól.
  • Helyes a tárolóadattár? Rendelkezik a megfelelő tárolóregisztrációs adatbázisnévvel és a megfelelő modulnévvel? Nyissa meg a module.json fájlt az IotEdgeModule1 mappában az ellenőrzéshez. Az adattár értékének úgy kell kinéznie, mint a< beállításjegyzék neve.azurecr.io/iotedgemodule1>.
  • Ha nem az IotEdgeModule1 nevet használta a modulhoz, akkor ez a név konzisztens az egész megoldásban?
  • A gép ugyanazt a tárolótípust futtatja, mint amelyet ön készít? Ez az oktatóanyag Windows IoT Edge eszközökhöz készült, ezért a Visual Studio-fájloknak windows-amd64 kiterjesztéssel kell rendelkezniük, a Docker Desktopnak pedig Windows-tárolókat kell futtatnia.

Modulok üzembe helyezése az eszközön

Ellenőrizte, hogy a beépített tárolórendszerképek a tárolóregisztrációs adatbázisban vannak tárolva, ezért ideje üzembe helyezni őket egy eszközön. Győződjön meg arról, hogy a IoT Edge eszköz működik.

  1. Nyissa meg a Cloud Explorert a Visual Studióban, és bontsa ki az IoT Hub részleteit.

  2. Válassza ki annak az eszköznek a nevét, amelyiken üzembe szeretne helyezni. A Műveletek listában válassza Létrehozás Üzembe helyezés lehetőséget.

    Üzemelő példány létrehozása egyetlen eszközhöz

  3. A fájlkezelőben keresse meg a projekt konfigurációs mappáját, és válassza ki a deployment.windows-amd64.json fájlt. Ez a fájl gyakran a C:\Users\<username>\source\repos\CSharpTutorialApp\CSharpTutorialApp\config\deployment.windows-amd64.json

    Ne használja a deployment.template.json fájlt, amely nem tartalmazza a modul teljes képértékét.

  4. Bontsa ki a IoT Edge eszköz részleteit a Cloud Explorerben az eszközön található modulok megtekintéséhez.

  5. A Frissítés gombbal frissítse az eszköz állapotát, és ellenőrizze, hogy a SimulatedTemperatureSensor és az IotEdgeModule1 modulok üzembe vannak-e helyezve az eszközön.

    Az IoT Edge eszközön futó modulok megtekintése

Üzenetek megtekintése az eszközről

Az IotEdgeModule1 kód a bemeneti üzenetsoron keresztül fogadja az üzeneteket, és a kimeneti üzenetsoron keresztül továbbítja őket. Az üzembehelyezési jegyzék deklarált útvonalakat adott át a SimulatedTemperatureSensorból az IotEdgeModule1-be, majd továbbította az IotEdgeModule1 üzeneteit a IoT Hub. A Visual Studio Azure IoT Edge eszközei lehetővé teszik az üzenetek megtekintését az egyes eszközökről érkező IoT Hub.

  1. A Visual Studio Cloud Explorerben válassza ki annak a IoT Edge eszköznek a nevét, amelyet üzembe helyezett.

  2. A Műveletek menüben válassza a Beépített eseményvégpont monitorozásának indítása lehetőséget.

  3. Az IoT Hubra érkező üzenetek megtekintéséhez tekintse meg a Visual Studio Kimenet szakaszát.

    Eltarthat néhány percig, amíg mindkét modul elindul. A IoT Edge futtatókörnyezetnek meg kell kapnia az új üzembehelyezési jegyzékfájlt, le kell húznia a modul lemezképeit a tároló-futtatókörnyezetből, majd minden új modult el kell indítania.

    Bejövő eszközről felhőbe irányuló üzenetek megtekintése

Módosítások megtekintése az eszközön

Ha látni szeretné, hogy mi történik az eszközön, az ebben a szakaszban található parancsokkal vizsgálja meg az eszközön futó IoT Edge futtatókörnyezetet és modulokat.

Az ebben a szakaszban szereplő parancsok a IoT Edge eszközére, nem pedig a fejlesztői gépére vannak. Ha virtuális gépet használ az IoT Edge eszközhöz, csatlakozzon hozzá most. Az Azure-ban nyissa meg a virtuális gép áttekintési oldalát, és válassza a Csatlakozás lehetőséget a távoli asztali kapcsolat eléréséhez. Az eszközön nyisson meg egy parancsot vagy PowerShell-ablakot a iotedge parancsok futtatásához.

  • Tekintse meg az eszközön üzembe helyezett összes modult, és ellenőrizze azok állapotát:

    iotedge list
    

    Négy modulnak kell megjelennie: a két IoT Edge futtatókörnyezeti modul, a SimulatedTemperatureSensor és az IotEdgeModule1. Mind a négynek futnia kell.

  • Vizsgálja meg egy adott modul naplóit:

    iotedge logs <module name>
    

    IoT Edge modulok megkülönböztetik a kis- és nagybetűket.

    A SimulatedTemperatureSensor és az IotEdgeModule1 naplóknak meg kell jelenniük a feldolgozott üzeneteknek. Az edgeAgent modul felelős a többi modul elindításáért, így a naplói az üzembehelyezési jegyzék implementálásával kapcsolatos információkkal rendelkeznek. Ha valamelyik modul nem szerepel a listában, vagy nem fut, az edgeAgent-naplók valószínűleg hibákat fognak tapasztalni. Az edgeHub-modul felel a modulok és a IoT Hub közötti kommunikációért. Ha a modulok futnak, de az üzenetek nem érkeznek meg az IoT Hubra, az edgeHub-naplókban valószínűleg megjelennek a hibák.

Az erőforrások eltávolítása

Ha azt tervezi, hogy a következő ajánlott cikkel folytatja, megtarthatja és újból felhasználhatja a létrehozott erőforrásokat és konfigurációkat. Azt is megteheti, hogy ugyanezt az IoT Edge-eszközt használja teszteszközként.

Ellenkező esetben törölheti a cikkben használt helyi konfigurációkat és Azure-erőforrásokat a díjak elkerülése érdekében.

Azure-erőforrások törlése

Az Azure-erőforrások és -erőforráscsoportok törlése visszafordíthatatlan. Figyeljen, nehogy véletlenül rossz erőforráscsoportot vagy erőforrásokat töröljön. Ha olyan meglévő erőforráscsoporton belül hozta létre az IoT Hubot, amelyben meg szeretné tartani az erőforrásokat, csak magát az IoT Hub-erőforrást törölje, nem pedig az erőforráscsoportot.

Az erőforrások törlése:

  1. Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.

  2. Válassza ki az IoT Edge teszterőforrásokat tartalmazó erőforráscsoport nevét.

  3. Tekintse át az erőforráscsoportban található erőforrások listáját. Ha mindet törölni szeretné, válassza az Erőforráscsoport törlése lehetőséget. Ha csak bizonyos elemeket szeretne törölni, az egyes erőforrásokra kattintva külön törölheti őket.

Következő lépések

Ebben az oktatóanyagban beállítja a Visual Studio 2019-et a fejlesztői gépen, és üzembe helyezte az első IoT Edge modult. Most, hogy megismerte az alapfogalmakat, próbáljon meg funkciókat hozzáadni egy modulhoz, hogy elemezhesse a rajta áthaladó adatokat. Válassza ki a kívánt nyelvet:

CC#