Ismerkedés az eszközkezeléssel (Azure CLI)
A háttéralkalmazások az Azure IoT Hub primitívjei, például az ikereszközök és a közvetlen metódusok használatával távolról indíthatják el és figyelhetik az eszközfelügyeleti műveleteket az eszközökön. Ez a cikk bemutatja, hogyan működhet együtt az Azure CLI és az eszköz az IoT Hub használatával egy eszköz közvetlen metódusának meghívása érdekében.
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.
Közvetlen módszerrel kezdeményezhet eszközfelügyeleti műveleteket (például újraindítást, gyári alaphelyzetbe állítást és belső vezérlőprogram-frissítést) egy Azure CLI-munkamenetből. Az eszköz felelős a következőért:
Az IoT Hubról 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 az IoT Hubnak.
Az Azure CLI használatával ikereszköz-lekérdezéseket futtathat az eszközfelügyeleti műveletek előrehaladásának jelentéséhez. A közvetlen módszerekkel kapcsolatos további információkért tekintse meg a felhőből az eszközre irányuló kommunikációs ú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 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ő eszközminta MQTT protokollt használ, 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).
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 Két CLI-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.
Két CLI-munkamenet előkészítése
Ezután két Azure CLI-munkamenetet kell előkészítenie. Ha a Cloud Shellt használja, ezeket a munkameneteket külön Cloud Shell-lapon futtatja. Ha helyi CLI-ügyfelet használ, külön PARANCSSOR-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 közvetlen metódust hív meg a szimulált eszközről az IoT Hub használatával.
Feljegyzés
Az Azure CLI-hez be kell jelentkeznie az Azure-fiókjába. Ha a Cloud Shellt 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-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 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 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
.Nyissa meg a második PARANCSSOR-munkamenetet. Ha böngészőben használja a Cloud Shellt, válassza az Új munkamenet megnyitása ikont az első CLI-munkamenet eszköztárán. Ha helyileg használja a parancssori felületet, nyisson meg egy második PARANCSSOR-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 indí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-eszköz szimulálási parancsát, é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.
Az az iot device simulate parancs alapértelmezés szerint 100 eszközről felhőbe irányuló üzenetet küld 3 másodperces időközzel az üzenetek között. 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 intervallumot adhat meg az üzenetek között. A szimulált eszköz újraindításához ismét 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-eszköz szimulálási parancsának újra futtatásával a Létrehozás és szimulálás eszközről.
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 egy példametódusnevet hív meg a szimulált eszközön. A metódus a válaszában egy állapotkódot és hasznos adatokat biztosít.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
{MethodName}. A közvetlen metódus neve. A szimulált eszköz nem rendelkezik már meglévő metódussal, í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 ellenőrizze, hogy a kimenet megjeleníti-e a metódushívást. Az alábbi képernyőképen a CLI parancsban használtuk
SampleDevice
SampleMethod
a{DeviceName}
helyőrzőket és{MethodName}
aaz iot hub invoke-device-method
helyőrzőket.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-eszköz szimulálási parancsának újra futtatásával a Létrehozás és szimulálás eszközről.
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 ehhez a metódushoz. A metódus a válaszában egy állapotkódot és hasznos adatokat biztosít.
{DeviceName}. A szimulált eszköz neve.
{HubName}. Az IoT Hub neve.
{MethodName}. A közvetlen metódus neve. A szimulált eszköz nem rendelkezik már meglévő metódussal, í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 ellenőrizze, hogy a kimenet megjeleníti-e a metódushívást. Az alábbi képernyőképen a CLI parancsban használtuk
SampleDevice
SampleMethod
a{DeviceName}
helyőrzőket és{MethodName}
aaz iot hub invoke-device-method
helyőrzőket.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
Az Azure CLI használatával az IoT-megoldás kibővítéséhez és a metódushívások ütemezéséhez az eszközökön 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.