Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:
IoT Edge 1.5
Fontos
IoT Edge 1.5 LTS a támogatott kiadás. IoT Edge 1,4 LTS 2024. november 12-én véget ért. Ha korábbi kiadást használ, tekintse meg a Update IoT Edge című témakört.
Azure IoT Edge modulok más Azure szolgáltatásokkal is csatlakozhatnak, és hozzájárulhatnak a nagyobb felhőbeli adatfolyamathoz. Ez a cikk azt ismerteti, hogyan fejleszthet modulokat a IoT Edge futtatókörnyezettel és a IoT Hub, és így a többi Azure felhővel való kommunikációhoz.
IoT Edge futtatókörnyezet
A IoT Edge futtatókörnyezet biztosítja az infrastruktúrát több IoT Edge modul funkcióinak integrálásához és IoT Edge eszközökre való üzembe helyezéséhez. Bármely program IoT Edge modulként csomagolható. A IoT Edge kommunikációs és felügyeleti funkciók teljes kihasználásához egy modulban futó program a Azure IoT Eszköz SDK-val csatlakozhat a helyi IoT Edge központhoz.
A program csomagolása IoT Edge modulként
Ha IoT Edge eszközön szeretné telepíteni a programot, először tárolóba kell helyeznie, és docker-kompatibilis motorral kell futtatnia. IoT Edge Moby, a Docker mögötti nyílt forráskódú projektet használja Docker-kompatibilis motorként. A Dockerrel használt paramétereket átadhatja a IoT Edge-moduloknak. További információ: Az IoT Edge modulok tároló-létrehozási beállításainak konfigurálása.
Az IoT Edge hub használata
Az IoT Edge hub két fő funkciót biztosít: egy proxyt az IoT Hubhoz és a helyi kommunikációt.
Csatlakozás IoT Edge központhoz egy modulból
A helyi IoT Edge központhoz való csatlakozás egy modulból ugyanazokkal a csatlakozási lépésekkel jár, mint bármely ügyfél esetében. További információ: Kapcsolódás a IoT Edge központhoz.
IoT Edge amqp-en keresztüli útválasztás használatához használhatja az Azure IoT SDK-t. Hozzon létre egy ModuleClient-példányt a modulnak, amely a modult csatlakoztatja az eszközön futó IoT Edge központhoz, hasonlóan ahhoz, ahogyan a DeviceClient példányok csatlakoztatják az IoT-eszközöket az IoT Hubhoz. A ModuleClient osztályról és kommunikációs módszereiről további információt talál az API-referenciákban a preferált SDK nyelv API-referenciájában: C#, C, Python, Java vagy Node.js.
IoT Hub primitívek
IoT Hub egy modulpéldányt az eszközhöz hasonlónak tekint. A modulpéldányok a következőkre képesek:
- Eszközről felhőbe irányuló üzenetek küldése.
- Kifejezetten az identitására célzott közvetlen módszereket kap.
- Rendelkezik egy ikermodullal, amely elkülönül az ikereszköztől és az eszköz többi moduli ikerpéldányától.
A modulok jelenleg nem fogadhatnak felhőből eszközre irányuló üzeneteket, és nem használhatják a fájlfeltöltési funkciót.
Modul írásakor csatlakozhat a IoT Edge központhoz, és IoT Hub primitíveket használhat, ahogyan az eszközalkalmazásokkal való IoT Hub használatakor tenné. A IoT Edge modulok és az IoT-eszközalkalmazások közötti egyetlen különbség az, hogy a modulokkal az eszközidentitás helyett a modulidentitásra kell hivatkoznia.
Az eszközről a felhőbe irányuló üzenetek
Egy IoT Edge modul üzeneteket küldhet a felhőbe a IoT Edge központon keresztül, amely helyi közvetítőként működik, és üzeneteket propagálja a felhőbe. Az eszközről a felhőbe irányuló üzenetek összetett feldolgozásának lehetővé tétele érdekében egy IoT Edge modul képes elfogni és feldolgozni a más modulok vagy eszközök által a helyi IoT Edge hubra küldött üzeneteket. A IoT Edge modul ezután új üzeneteket küld feldolgozott adatokkal. Ily módon IoT Edge modulok láncait hozhatja létre helyi feldolgozási folyamatok létrehozásához.
Eszközről felhőbe irányuló telemetriai üzenetek küldése útvonalak használatával:
- Használja a
ModuleClientosztályát. Minden modul bemeneti és kimeneti végpontokkal rendelkezik. - Ha üzeneteket szeretne küldeni a modul kimeneti végpontján, használjon egy üzenetküldési módszert az
ModuleClientosztályból. - A kimeneti végpont IoT Hub való elküldéséhez állítson be egy útvonalat az eszköz
edgeHubmoduljában.
Üzenetek feldolgozása útvonalak használatával:
- Állítson be egy útvonalat, amely egy másik végpontról (modulból vagy eszközről) érkező üzeneteket küld a modul bemeneti végpontjára.
- Figyelje meg a modul bemeneti végpontján lévő üzeneteket. Minden alkalommal, amikor egy új üzenet visszatér, a Azure IoT SDK elindít egy visszahívási függvényt.
- Dolgozza fel az üzenetet ezzel a visszahívási függvénnyel, és (opcionálisan) küldjön új üzeneteket a modulvégpont-üzenetsorba.
Megjegyzés
Az útvonal deklarálásával kapcsolatos további információkért lásd: A modulok üzembe helyezésének és az útvonalak IoT Edge-ben való létrehozásáról.
Ikrek
Twins az IoT Hub által biztosított primitívek egyike. Az ikerpéldányok olyan JSON-dokumentumok, amelyek állapotinformációkat tárolnak, beleértve a metaadatokat, a konfigurációt és a feltételeket. Minden modulnak vagy eszköznek saját ikerpéldánya van.
- Ha ikermodult szeretne lekérni a Azure IoT SDK használatával, hívja meg a
ModuleClient.getTwinmetódust. - Ha a Azure IoT SDK használatával szeretne kapni egy ikermodul-javítást, implementáljon egy visszahívási függvényt, és regisztrálja azt a
ModuleClient.moduleTwinCallbackmetódussal, hogy a visszahívási függvény minden alkalommal aktiválódjon, amikor ikerjavítás érkezik.
Közvetlen módszerek fogadása
Ha közvetlen metódust szeretne kapni a Azure IoT SDK használatával, implementáljon egy visszahívási függvényt, és regisztrálja azt a ModuleClient.methodCallback metódussal, hogy a visszahívási függvény minden alkalommal aktiválódjon, amikor egy közvetlen metódus bejön.
Nyelvi és architektúra-támogatás
IoT Edge több operációs rendszert, eszközarchitektúrát és fejlesztési nyelvet támogat, így az igényeinek megfelelő forgatókönyvet hozhat létre. Ebben a szakaszban megismerheti az egyéni IoT Edge modulok fejlesztésének lehetőségeit. Az eszköztámogatásról és az egyes nyelvekre vonatkozó követelményekről a A fejlesztési és tesztelési környezet előkészítése IoT Edge.
Linux
Az alábbi táblázatban szereplő összes nyelv esetében az IoT Edge támogatja a fejlesztést AMD64 és a legtöbb ARM64 Linux-tároló esetében. A Debian 11 ARM32-tárolókat is támogatja.
| Fejlesztési nyelv | Fejlesztési eszközök |
|---|---|
| C | Visual Studio Code Visual Studio 2019/2022 |
| C# | Visual Studio Code Visual Studio 2019/2022 |
| Java | Visual Studio Code |
| Node.js | Visual Studio Code |
| Python | Visual Studio Code |
Megjegyzés
Platformfüggetlen fordításhoz, például egy ARM32 IoT Edge modul amd64 fejlesztői gépen való összeállításához konfigurálnia kell a fejlesztőgépet úgy, hogy a IoT Edge modulnak megfelelő kódokat fordítson le a céleszköz-architektúrára. További információ a céleszköz-architektúrákról: Tutorial: Azure IoT Edge-modulok fejlesztése Visual Studio Code használatával.
Windows
A Microsoft már nem támogatja Windows tárolókat.
Modulbiztonság
A modulokat a biztonság szem előtt tartásával fejlesztheti. A modulok biztonságossá tételéről további információt a Docker Engine biztonságával kapcsolatban talál.
A modul biztonságának javítása érdekében alapértelmezés szerint IoT Edge letilt néhány tárolófunkciót. Szükség esetén felülbírálhatja az alapértelmezett értékeket, hogy emelt szintű képességeket biztosítson a modulok számára.
Emelt szintű Docker-engedélyek engedélyezése
Egy IoT Edge eszköz konfigurációs fájljában egy allow_elevated_docker_permissions nevű paraméter szabályozza a docker emelt szintű engedélyeit. Ha igaz értékre van állítva, ez a jelölő megadja a --privileged jelölőt és a CapAdd a Docker HostConfig mezőjében definiált egyéb képességeket.
Megjegyzés
Ez a jelző jelenleg alapértelmezés szerint igaz, ami kiváltságos jogosultságokat biztosít a telepítésekre. Állítsa ezt a jelzőt hamis értékre az eszközbiztonság javítása érdekében.
CAP_CHOWN és CAP_SETUID engedélyezése
A Docker képességei közül a CAP_CHOWN és a CAP_SETUID alapértelmezés szerint le vannak tiltva. Ezek a képességek írhatnak a gazdagépen lévő biztonságos fájlokba, és potenciálisan rendszergazdai hozzáféréshez juthatnak.
Ha szüksége van ezekre a képességekre, manuálisan engedélyezze újra őket a tároló létrehozási beállításainak használatával CapADD .
Következő lépések
A fejlesztési és tesztelési környezet előkészítése IoT Edge Tutorial: Azure IoT Edge-modulok fejlesztése Visual Studio Code Modulok hibakeresése Azure IoT Edge Visual Studio Code - Azure IoT Hub SDK-k