Ismerkedés az eszközkezeléssel (Azure CLI)
A háttéralkalmazások Azure IoT Hub primitívek, például az ikereszközök és a közvetlen metódusok használatával távolról elindíthatják és monitorozhatják az eszközfelügyeleti műveleteket az eszközökön. Ez a cikk bemutatja, hogy az Azure CLI és az eszközök hogyan tudnak együttműködni egy közvetlen metódus meghívásához egy eszközhöz IoT Hub használatával.
Megjegyzés
A cikkben ismertetett funkciók csak a IoT Hub standard szintjén érhetők el. Az alapszintű és standard/ingyenes IoT Hub szintekkel kapcsolatos további információkért lásd: A megoldáshoz megfelelő IoT Hub szint kiválasztása.
Közvetlen módszerrel eszközfelügyeleti műveleteket (például újraindítást, gyári beállítások visszaállítását és belső vezérlőprogram frissítését) kezdeményezhet egy Azure CLI-munkamenetből. Az eszköz a következőket végzi el:
A IoT Hub által küldött metóduskérés kezelése.
A megfelelő eszközspecifikus művelet kezdeményezése az eszközön.
Állapotfrissítések biztosítása jelentett tulajdonságokon keresztül a IoT Hub.
Az Azure CLI-vel ikereszköz-lekérdezéseket futtathat az eszközfelügyeleti műveletek előrehaladásának jelentéséhez. A közvetlen metódusok használatával kapcsolatos további információkért lásd a felhőből az eszközre irányuló kommunikációval kapcsolatos útmutatót.
Ez a cikk bemutatja, hogyan hozhat létre két Azure CLI-munkamenetet:
Szimulált eszközt létrehozó munkamenet. A szimulált eszköz úgy van konfigurálva, hogy bármely közvetlen metódus meghívásakor állapotkódot és JSON hasznos adatokat adjon vissza.
Egy munkamenet, amely közvetlen metódust hív meg a másik munkamenetben létrehozott szimulált eszközön.
Előfeltételek
Azure CLI. A cikkben szereplő parancsokat az Azure Cloud Shell, egy interaktív CLI-felület használatával is futtathatja, amely a böngészőben vagy egy olyan alkalmazásban fut, mint a Windows terminál. Ha a Cloud Shell 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.Egy IoT Hub. Hozzon létre egyet a parancssori felülettel vagy a Azure Portal.
Győződjön meg arról, hogy a 8883-as port nyitva van a tűzfalon. A cikkben szereplő eszközminta MQTT protokollt használ, amely a 8883-es porton keresztül kommunikál. Ez a port bizonyos vállalati és oktatási hálózati környezetekben blokkolható. További információkért és a probléma megoldásának módjaiért lásd: Csatlakozás IoT Hub (MQTT)-hez.
A Cloud Shell előkészítése
Ha az Azure Cloud Shell szeretné használni, először el kell indítania és konfigurálnia kell. Ha helyileg használja a PARANCSSORI-t, ugorjon a Két CLI-munkamenet előkészítése szakaszra.
Válassza a Cloud Shell ikont a Azure Portal oldalfejlécéből.
Megjegyzés
Ha először használja a Cloud Shell, a rendszer kéri, hogy hozzon létre tárterületet, 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.
Az 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.
Megjegyzé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.
Két CLI-munkamenet előkészítése
Ezután két Azure CLI-munkamenetet kell előkészítenie. Ha a Cloud Shell használja, ezeket a munkameneteket külön Cloud Shell lapon futtatja. Ha helyi CLI-ügyfelet használ, külön CLI-példányokat futtat. A következő feladatokhoz használja a külön CLI-munkameneteket:
- Az első munkamenet egy IoT-eszközt szimulál, amely kommunikál az IoT Hubbal.
- A második munkamenet egy közvetlen metódust hív meg a szimulált eszközről az IoT Hub használatával.
Megjegyzés
Az Azure CLI használatához be kell jelentkeznie az Azure-fiókjába. Ha a Cloud Shell használja, a rendszer automatikusan bejelentkezik az Azure-fiókjába. Ha helyi CLI-ügyfelet használ, minden cli-munkamenetbe be kell jelentkeznie. Az Azure CLI-rendszerhéj munkamenete é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 első 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 IoT Hub, IoT Edge és IoT Device Provisioning Service(DPS) specifikus parancsokat ad 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
Megjegyzés
Ez a cikk az Azure IoT-bővítmény legújabb, nevű
azure-iot
verzióját használja. Az örökölt verzió neveazure-cli-iot-ext
. Egyszerre csak egy verziót kell telepítenie. Az paranccsalaz extension list
ellenőrizheti a jelenleg telepített bővítményeket.A használatával
az extension remove --name azure-cli-iot-ext
eltávolíthatja a bővítmény régi verzióját.A bővítmény új verziójának hozzáadásához használja
az extension add --name azure-iot
a parancsot.A telepített bővítmények megtekintéséhez használja a következőt
az extension list
: .Nyissa meg a második CLI-munkamenetet. Ha böngészőben használja a Cloud Shell, válassza az Új munkamenet megnyitása ikont az első CLI-munkamenet eszköztárán. Ha helyileg használja a PARANCSSORI-t, nyisson meg egy második CLI-példányt.
Eszköz létrehozása és szimulálása
Ebben a szakaszban egy eszközidentitást hoz létre az IoT Hubhoz az első CLI-munkamenetben, majd szimulál egy eszközt az eszközidentitás használatával. A szimulált eszköz válaszol a második CLI-munkamenetben meghívott közvetlen metódusokra.
Szimulált eszköz létrehozása és elindítása:
Az első 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 szimulált eszköz eszközidentitását.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName}
Az első CLI-munkamenetben futtassa az az iot device simulate parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ez a parancs szimulál egy eszközt az előző lépésben létrehozott eszközidentitás használatával. A szimulált eszköz úgy van konfigurálva, hogy egy közvetlen metódus meghívásakor állapotkódot és hasznos adatokat adjon vissza.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
az iot device simulate --device-id {DeviceName} --hub-name {HubName} \ --method-response-code 201 \ --method-response-payload '{"result":"Direct method successful"}'
Tipp
Alapértelmezés szerint az az iot device simulate parancs 100 eszközről a felhőbe irányuló üzenetet küld az üzenetek között 3 másodperces időközzel. A szimuláció az összes üzenet elküldése után befejeződik. Ha azt szeretné, hogy a szimuláció tovább fusson, a
--msg-count
paraméterrel további üzeneteket adhat meg, vagy a--msg-interval
paraméterrel hosszabb időközt adhat meg az üzenetek között. A szimulált eszköz újraindításához újra is futtathatja a parancsot.
Közvetlen metódus meghívása
Ebben a szakaszban a második CLI-munkamenettel hív meg egy közvetlen metódust az első CLI-munkamenetben futó szimulált eszközön.
Ellenőrizze, hogy fut-e a szimulált eszköz az első CLI-munkamenetben. Ha nem, indítsa újra az az iot device simulate paranccsal a Create and simulate a device (Eszköz létrehozása és szimulálása) parancs ismételt futtatásával.
A második CLI-munkamenetben futtassa az az iot hub invoke-device-method parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ebben a példában nincs már meglévő metódus az eszközhöz. A parancs meghív egy példametódusnevet a szimulált eszközön. A metódus egy állapotkódot és hasznos adatokat biztosít a válaszában.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
{MethodName}. A közvetlen metódus neve. A szimulált eszköznek nincs már meglévő metódusa, így tetszőleges nevet választhat ehhez a parancshoz.
az iot hub invoke-device-method --device-id {DeviceName} --hub-name {HubName} \ --method-name {MethodName}
Az első CLI-munkamenetben győződjön meg arról, hogy a kimenet megjeleníti a metódus meghívását. Az alábbi képernyőképen a és a
{MethodName}
{DeviceName}
helyőrzőket használtukSampleDevice
SampleMethod
aaz iot hub invoke-device-method
CLI-parancsban.A második CLI-munkamenetben ellenőrizze, hogy a kimenet megjeleníti-e a meghívott metódustól kapott állapotkódot és hasznos adatokat.
Közvetlen metódus meghívása hasznos adatokkal
Ebben a szakaszban a második CLI-munkamenettel hív meg egy közvetlen metódust, és hasznos adatokat biztosít az első CLI-munkamenetben futó szimulált eszköznek.
Ellenőrizze, hogy fut-e a szimulált eszköz az első CLI-munkamenetben. Ha nem, indítsa újra az az iot device simulate paranccsal a Create and simulate a device (Eszköz létrehozása és szimulálása) parancs ismételt futtatásával.
A második CLI-munkamenetben futtassa az az iot hub invoke-device-method parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ebben a példában nincs már meglévő metódus az eszközhöz. A parancs meghív egy példametódusnevet a szimulált eszközön, és hasznos adatokat biztosít a metódushoz. A metódus egy állapotkódot és hasznos adatokat biztosít a válaszában.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
{MethodName}. A közvetlen metódus neve. A szimulált eszköznek nincs már meglévő metódusa, így tetszőleges nevet választhat ehhez a parancshoz.
az iot hub invoke-device-method --device-id {DeviceName} --hub-name {HubName} \ --method-name {MethodName} \ --method-payload '{ "SamplePayload": "PayloadValue" }'
Az első CLI-munkamenetben győződjön meg arról, hogy a kimenet megjeleníti a metódus meghívását. Az alábbi képernyőképen a és a
{MethodName}
{DeviceName}
helyőrzőket használtukSampleDevice
SampleMethod
aaz iot hub invoke-device-method
CLI-parancsban.A második CLI-munkamenetben ellenőrizze, hogy a kimenet megjeleníti-e a meghívott metódustól kapott állapotkódot és hasznos adatokat.
Következő lépések
Ha meg szeretné tudni, hogyan terjesztheti ki az IoT-megoldást az Azure CLI-vel, és hogyan ütemezhet metódushívásokat az eszközökön, olvassa el a Feladatok ütemezése és szórása című témakört.
A IoT Hub és eszközfelügyeleti minták, például a végpontok közötti képalapú frissítés használatának folytatásához tekintse meg a Raspberry Pi 3 B+ referenciarendszerképet használó eszközfrissítés Azure IoT Hub című cikket.