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.

  1. Válassza a Cloud Shell ikont a Azure Portal oldalfejlécéből.

    Képernyőkép a globális vezérlőkről a Azure Portal oldalfejlécéről, kiemelve a Cloud Shell ikont.

    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.

  2. 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épernyőkép egy Azure Cloud Shell ablakról, amely az eszköztáron a környezetválasztót emeli ki.

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.

  1. 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-iotverzióját használja. Az örökölt verzió neve azure-cli-iot-ext. Egyszerre csak egy verziót kell telepítenie. Az paranccsal az 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: .

  2. 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.

    Képernyőkép egy Azure Cloud Shell ablakról, amely az eszköztár Új munkamenet megnyitása ikonját emeli ki.

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:

  1. 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} 
    
  2. 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.

  1. 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.

  2. 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}
    
  3. 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áltuk SampleDeviceSampleMethod a az iot hub invoke-device-method CLI-parancsban.

    Képernyőkép egy szimulált eszközről, amely kimenetet jelenít meg egy metódus meghívása után.

  4. 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épernyőkép egy Azure Cloud Shell ablakról, amely egy meghívott közvetlen metódus állapotkódját és hasznos adatait jeleníti meg.

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.

  1. 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.

  2. 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" }'
    
  3. 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áltuk SampleDeviceSampleMethod a az iot hub invoke-device-method CLI-parancsban.

    Képernyőkép egy szimulált eszközről, amely kimenetet jelenít meg egy metódus hasznos adattal való meghívása után.

  4. 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épernyőkép egy Azure Cloud Shell ablakról, amely egy meghívott közvetlen metódus állapotkódját és hasznos adatait jeleníti meg.

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.