Megosztás a következőn keresztül:


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.

  1. Az Azure Portal oldalfejlécéről válassza a Cloud Shell ikont.

    Képernyőkép az Azure Portal oldalfejlécének globális vezérlőiről, kiemelve 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.

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

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.

  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 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-iotverzióját használja. Az örökölt verzió neve azure-cli-iot-ext. Egyszerre csak egy verziót kell telepítenie. A parancs segítségével az 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.

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

    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 indí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-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.

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

  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 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}
    
  3. 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} a az iot hub invoke-device-method helyőrzőket.

    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-eszköz szimulálási parancsának újra futtatásával a Létrehozás és szimulálás eszközről.

  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 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" }'
    
  3. 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} a az iot hub invoke-device-method helyőrzőket.

    Képernyőkép egy olyan 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

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.