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


Feladatok ütemezése és közvetítése (Azure CLI)

Az Azure IoT Hub használatával ütemezheti és követheti nyomon az eszközök millióit frissítő feladatokat. Feladatok használata:

  • Eszköz kívánt tulajdonságainak frissítése
  • Címkék frissítése
  • Közvetlen metódusok meghívása

A feladatok elméletileg befuttatják az egyik ilyen műveletet, és nyomon követik a végrehajtás előrehaladását egy eszközkészleten. Azokat az eszközöket, amelyekkel egy feladat kommunikál, egy ikereszköz-lekérdezés határozza meg. Egy háttéralkalmazás például egy feladattal meghívhat egy újraindítási metódust 10 000 eszközön, amelyet egy ikereszköz-lekérdezés határoz meg, és amelyet egy későbbi időpontban ütemeznek. Az alkalmazás ezután nyomon követheti az előrehaladást, amint az egyes eszközök megkapják és végrehajtják az újraindítási módszert.

Az alábbi cikkekben további információt talál ezekről a képességekről:

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

  • Két ütemezett feladatot létrehozó munkamenet. Az első feladat meghív egy közvetlen metódust, a második feladat pedig frissíti a kívánt ikereszköz-tulajdonságot 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 feladatokat ütemez a szimulált eszközhöz az IoT Hubbal.

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 PARANCSSOR-munkamenetben ütemezett feladatokra.

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 az előző lépésben létrehozott eszközt szimulálja. 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.

Feladat ütemezése közvetlen metódus meghívásához

Ebben a szakaszban egy feladatot ütemez a második CLI-munkamenetbe, hogy közvetlen metódust hívjon meg 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 feladat létrehozási parancsát, é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 ütemez egy feladatot, amely egy példametódusnevet hív meg a szimulált eszközön, és null értéket ad meg a metódus hasznos adatainak. A metódus a válaszában egy állapotkódot és hasznos adatokat biztosít.

    {HubName}. Az IoT Hub neve.

    {JobName}. Az ütemezett feladat neve. A feladatnevek egyediek, ezért a parancs minden futtatásakor válasszon másik feladatnevet.

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

    {DeviceName}. A szimulált eszköz neve.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleDeviceMethod \
                          --method-name {MethodName} --method-payload 'null' \
                          --query-condition "deviceId = '{DeviceName}'"
    

    Tipp.

    A közvetlen metódust meghívó feladat az iot hub-feladat létrehozási parancsának ütemezésekor meg kell adnia az értékeket mind a paraméterek, mind az --method-name --method-payload opcionális paraméterek számára. Olyan közvetlen metódusok esetén, amelyek nem fogadnak el hasznos adatokat, adja meg null a --method-payload paramétert.

  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 az {MethodName} {DeviceName} előző lépés parancssori az iot hub job create felületének parancsában használtuk SampleDeviceSampleMethod a helyőrzőket és a 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.

Feladat ütemezése az ikereszköz tulajdonságainak frissítéséhez

Ebben a szakaszban egy feladatot ütemez a második PARANCSSOR-munkamenetbe, hogy frissítse a kívánt ikereszköz-tulajdonságot 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 feladat létrehozási parancsát, és cserélje le a következő helyőrzőket a megfelelő értékekre. Ebben a példában egy feladatot ütemezünk, amely a kívánt ikertulajdonság BuildingNo értékét 45-re állítja a szimulált eszközhöz.

    {HubName}. Az IoT Hub neve.

    {JobName}. Az ütemezett feladat neve. A feladatnevek egyediek, ezért a parancs minden futtatásakor válasszon másik feladatnevet.

    {DeviceName}. A szimulált eszköz neve.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleUpdateTwin \
                          --twin-patch '{"properties":{"desired": {"BuildingNo": 45}}}' \
                          --query-condition "deviceId = '{DeviceName}'"
    
  3. Az első CLI-munkamenetben győződjön meg arról, hogy a kimenet a jelentett ikereszköz-tulajdonság sikeres frissítését mutatja, jelezve, hogy a kívánt ikereszköz-tulajdonság is frissült.

    Képernyőkép egy szimulált eszközről, amely egy ikereszköz-tulajdonság frissítése után jeleníti meg a kimenetet.

Következő lépések

Ebben a cikkben az Azure CLI használatával szimulált egy eszközt, és feladatokat ütemezett egy közvetlen metódus futtatására, és frissítette az ikereszköz tulajdonságait a szimulált eszközhöz.

Az IoT Hub és az eszközfelügyeleti minták megismerésének folytatásához frissítsen egy képet az Azure IoT Hub eszközfrissítési oktatóanyagában a Raspberry Pi 3 B+ referenciarendszerkép használatával.