Ismerkedés az IoT Hub modulidentitásaival és ikermoduljaival az Azure CLI használatával
A modulidentitások és a moduli ikerpéldányok hasonlóak az Azure IoT Hub-eszközidentitásokhoz és az ikereszközökhöz, de finomabb részletességet biztosítanak. Ahogyan az Azure IoT Hub-eszközidentitások és az ikereszközök lehetővé teszik egy háttéralkalmazás számára az eszköz konfigurálását és az eszköz feltételeinek láthatóságát, a modulidentitások és a modulikrek biztosítják ezeket a képességeket az eszköz egyes összetevői számára. A több összetevővel rendelkező, például operációsrendszer-eszközökkel vagy belső vezérlőprogram-eszközökkel rendelkező, képes eszközökön a modulidentitások és a modulikrek lehetővé teszik az egyes összetevők elkülönített konfigurációját és feltételeit.
Feljegyzés
A cikkben ismertetett funkciók csak az IoT Hub standard szintjén érhetők el. Az alapszintű és standard/ingyenes IoT Hub-szintekről további információt a megoldáshoz megfelelő IoT Hub-szint kiválasztása című témakörben talál.
Ez a cikk bemutatja, hogyan hozhat létre Azure CLI-munkamenetet, amelyben:
Hozzon létre egy eszközidentitást, majd hozzon létre egy modulidentitást az adott eszközhöz.
Frissítse a modulidentitáshoz társított ikermodul kívánt tulajdonságait.
Előfeltételek
Azure parancssori felület (CLI). A cikkben szereplő parancsokat az Azure Cloud Shell használatával is futtathatja, amely egy interaktív CLI-rendszerhéj, amely a böngészőben vagy egy alkalmazásban, például a Windows Terminálban fut. Ha a Cloud Shellt használja, nem kell semmit telepítenie. Ha inkább helyileg szeretné használni a parancssori felületet, ehhez a cikkhez az Azure CLI 2.36-os vagy újabb verziója szükséges. A verzió azonosításához futtassa a következőt:
az --version
. Az Azure CLI helyi telepítéséhez vagy frissítéséhez lásd: Az Azure CLI telepítése.IoT Hub az Azure-előfizetésben. Ha még nem rendelkezik központokkal, kövesse az IoT Hub létrehozása című témakörben leírt lépéseket.
Győződjön meg arról, hogy a 8883-as port nyitva van a tűzfalon. A cikkben szereplő minták MQTT protokollt használnak, amely a 8883-es porton keresztül kommunikál. Ez a port néhány vállalati és oktatási hálózati környezetben blokkolható. További információkért és a probléma megoldásának módjaiért lásd: Csatlakozás az IoT Hubhoz (MQTT).
Modulhitelesítés
A modulidentitások hitelesítéséhez szimmetrikus kulcsokat vagy X.509-tanúsítványokat használhat. Az X.509-tanúsítványhitelesítéshez a modul tanúsítványának a köznapi neve (CN) formátumával CN=<deviceid>/<moduleid>
kell rendelkeznie. Példa:
openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"
A Cloud Shell előkészítése
Ha az Azure Cloud Shellt szeretné használni, először el kell indítania és konfigurálnia kell. Ha helyileg használja a parancssori felületet, ugorjon a PARANCSSOR-munkamenet előkészítése szakaszra.
Az Azure Portal oldalfejlécéről válassza a Cloud Shell ikont.
Feljegyzés
Ha először használja a Cloud Shellt, a rendszer kéri, hogy hozzon létre egy tárolót, amely a Cloud Shell használatához szükséges. Válasszon ki egy előfizetést a tárfiók és a Microsoft Azure-fájlmegosztás létrehozásához.
A Cloud Shell eszköztár környezetválasztóját használva válassza ki az előnyben részesített CLI-környezetet. Ez a cikk a Bash-környezetet használja. A PowerShell-környezetet is használhatja.
Feljegyzés
Egyes parancsok eltérő szintaxist vagy formázást igényelnek a Bash- és PowerShell-környezetekben. További információ: Tippek az Azure CLI sikeres használatához.
CLI-munkamenet előkészítése
Ezután elő kell készítenie egy Azure CLI-munkamenetet. Ha a Cloud Shellt használja, a munkamenetet egy Cloud Shell lapon futtatja. Ha helyi CLI-ügyfelet használ, a munkamenetet cli-példányban futtatja.
Ha a Cloud Shellt használja, ugorjon a következő lépésre. Ellenkező esetben futtassa az az login parancsot a CLI-munkamenetben az Azure-fiókba való bejelentkezéshez.
Ha a Cloud Shellt használja, a rendszer automatikusan bejelentkezik az Azure-fiókjába. Az Azure CLI-munkamenet és az IoT Hub közötti összes kommunikáció hitelesítve és titkosítva van. Ennek eredményeképpen ez a cikk nem igényel olyan extra hitelesítést, amelyet valódi eszközzel, például egy kapcsolati sztring használ. További információ az Azure CLI-vel való bejelentkezésről: Bejelentkezés az Azure CLI-vel.
az login
A CLI-munkamenetben futtassa az az extension add parancsot. A parancs hozzáadja az Azure CLI-hez készült Microsoft Azure IoT-bővítményt a CLI-felülethez. A bővítmény az IoT Hub, az IoT Edge és az IoT Device Provisioning Service (DPS) adott parancsait adja hozzá az Azure CLI-hez. A bővítmény telepítése után nem kell újra telepítenie egy Cloud Shell-munkamenetben sem.
az extension add --name azure-iot
Feljegyzés
Ez a cikk az Azure IoT-bővítmény legújabb, úgynevezett
azure-iot
verzióját használja. Az örökölt verzió neveazure-cli-iot-ext
. Egyszerre csak egy verziót kell telepítenie. A parancs segítségévelaz extension list
ellenőrizheti a jelenleg telepített bővítményeket.A bővítmény régi verziójának eltávolítására használható
az extension remove --name azure-cli-iot-ext
.A bővítmény új verziójának hozzáadására használható
az extension add --name azure-iot
.A telepített bővítmények megtekintéséhez használja a parancsot
az extension list
.
Eszközidentitás és modulidentitás létrehozása
Ebben a szakaszban egy eszközidentitást hoz létre az IoT Hubhoz a PARANCSSOR-munkamenetben, majd létrehoz egy modulidentitást az eszközidentitás használatával. Az egyes eszközidentitások alatt legfeljebb 50 modulidentitás hozható létre.
Eszközidentitás és modulidentitás létrehozása:
A CLI-munkamenetben futtassa az az iot hub device-identity create parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ez a parancs létrehozza a modul eszközidentitását.
{DeviceName}. Az eszköz neve.
{HubName}. Az IoT Hub neve.
az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName}
A CLI-munkamenetben futtassa az az iot hub module-identity create parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ez a parancs létrehozza a modul modulidentitását az előző lépésben létrehozott eszközidentitás alatt.
{DeviceName}. Az eszköz neve.
{HubName}. Az IoT Hub neve.
{ModuleName}. Az eszköz moduljának neve.
az iot hub module-identity create --device-id {DeviceName} --hub-name {HubName} \ --module-id {ModuleName}
A modul ikerpéldányának frissítése
A modulidentitás létrehozása után egy moduliker is implicit módon létrejön az IoT Hubban. Ebben a szakaszban a CLI-munkamenettel frissítheti az előző szakaszban létrehozott modulidentitáshoz társított modulidentitás kívánt tulajdonságait.
A CLI-munkamenetben futtassa az az iot hub module-twin update parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ebben a példában több kívánt tulajdonságot frissítünk a modul ikerpéldányán az előző szakaszban létrehozott modulidentitáshoz.
{DeviceName}. Az eszköz neve.
{HubName}. Az IoT Hub neve.
{ModuleName}. Az eszköz moduljának neve.
az iot hub module-twin update --device-id {DeviceName} --hub-name {HubName} \ --module-id {ModuleName} \ --desired '{"conditions":{"temperature":{"warning":75, "critical":100}}}'
A CLI-munkamenetben győződjön meg arról, hogy a JSON-válasz megjeleníti a frissítési művelet eredményeit. A következő JSON-válasz példában a CLI-parancsban használtuk
SampleDevice
SampleModule
a helyőrzőket és a{DeviceName}
{ModuleName}
az iot hub module-twin update
helyőrzőket.{ "authenticationType": "sas", "capabilities": null, "cloudToDeviceMessageCount": 0, "connectionState": "Disconnected", "deviceEtag": "Mzg0OEN1NzW=", "deviceId": "SampleDevice", "deviceScope": null, "etag": "AAAAAAAAAAI=", "lastActivityTime": "0001-01-01T00:00:00+00:00", "modelId": "", "moduleId": "SampleModule", "parentScopes": null, "properties": { "desired": { "$metadata": { "$lastUpdated": "2023-02-17T21:26:10.5835633Z", "$lastUpdatedVersion": 2, "conditions": { "$lastUpdated": "2023-02-17T21:26:10.5835633Z", "$lastUpdatedVersion": 2, "temperature": { "$lastUpdated": "2023-02-17T21:26:10.5835633Z", "$lastUpdatedVersion": 2, "critical": { "$lastUpdated": "2023-02-17T21:26:10.5835633Z", "$lastUpdatedVersion": 2 }, "warning": { "$lastUpdated": "2023-02-17T21:26:10.5835633Z", "$lastUpdatedVersion": 2 } } } }, "$version": 2, "conditions": { "temperature": { "critical": 100, "warning": 75 } } }, "reported": { "$metadata": { "$lastUpdated": "0001-01-01T00:00:00Z" }, "$version": 1 } }, "status": "enabled", "statusReason": null, "statusUpdateTime": "0001-01-01T00:00:00+00:00", "tags": null, "version": 3, "x509Thumbprint": { "primaryThumbprint": null, "secondaryThumbprint": null } }
Következő lépések
Az Azure CLI használatával az IoT-megoldás kibővítéséhez és az eszközök frissítésének ütemezéséhez lásd: Feladatok ütemezése és közvetítése.
Az IoT Hub és az eszközfelügyeleti minták, például a teljes körű rendszerkép-alapú frissítés használatának folytatásához tekintse meg az Azure IoT Hub eszközfrissítése című cikket a Raspberry Pi 3 B+ referenciarendszerkép használatával.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: