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


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

A Azure IoT Hub segítségével több millió eszközt frissítő feladatokat ütemezhet és követhet nyomon. Feladatok használata a következő feladatokhoz:

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

A feladat elméletileg becsomagolja az egyik ilyen műveletet, és nyomon követi a végrehajtás előrehaladását egy eszközkészleten. Az ikereszköz-lekérdezés határozza meg azokat az eszközöket, amelyekkel egy feladat kommunikál. Egy háttéralkalmazás például egy feladattal meghívhat egy újraindítási módszert 10 000 eszközön, amelyet egy ikereszköz-lekérdezés határoz meg, és későbbi időpontban ütemez. 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.

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

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.

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ét ütemezett feladatot hoz létre. Az első feladat egy közvetlen metódust hív meg, 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 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 az Azure-előfizetésben. 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 feladatokat ütemez a szimulált eszközhöz az IoT Hubbal.

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

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

    Alapértelmezés szerint az az iot device simulate parancs 100 eszközről 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 véget ér. 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 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 device simulate paranccsal a Create (Létrehozás) és simulate a device (Eszköz szimulálása) parancs ismételt futtatásával.

  2. A második CLI-munkamenetben futtassa az az iot hub job create parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekkel. Ebben a példában nincs már meglévő metódus az eszközhöz. A parancs egy olyan feladatot ütemez, amely meghív egy példametódusnevet a szimulált eszközön, és null értéket ad meg a metódus hasznos adataihoz. A metódus egy állapotkódot és hasznos adatokat biztosít a válaszában.

    {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

    Az az iot hub job create parancs közvetlen metódust meghívó feladat ütemezésekor meg kell adnia az értékeket a és --method-payload a --method-name választható paraméterekhez is. 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 győződjön meg arról, hogy a kimenet megjeleníti a metódus meghívását. A következő képernyőképen a és a {MethodName}{DeviceName} helyőrzőket használtuk SampleDeviceSampleMethod az előző lépés parancssori az iot hub job create felületének parancsában.

    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 CLI-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 device simulate paranccsal a Create (Létrehozás) és simulate a device (Eszköz szimulálása) parancs ismételt futtatásával.

  2. A második CLI-munkamenetben futtassa az az iot hub job create parancsot, és cserélje le a következő helyőrzőket a megfelelő értékekkel. Ebben a példában egy feladatot ütemezünk, hogy a kívánt ikertulajdonság BuildingNo értékét 45-re állítsuk 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 megjeleníti a jelentett ikereszköz-tulajdonság sikeres frissítését, ami azt jelzi, 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-vel szimulált egy eszközt, és feladatokat ütemezett egy közvetlen metódus futtatására, valamint az ikereszköz tulajdonságainak frissítésére 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 Eszközfrissítésben Azure IoT Hub oktatóanyaghoz a Raspberry Pi 3 B+ referenciarendszerkép használatával.