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:
Ikereszköz és tulajdonságok: Az ikereszközök használatának első lépései és az ikereszközök megismerése és használata a IoT Hub
Közvetlen metódusok: IoT Hub fejlesztői útmutató – közvetlen metódusok
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.
Válassza a Cloud Shell ikont a Azure Portal oldalfejlécéből.
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.
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é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.
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-iot
verzióját használja. Az örökölt verzió neveazure-cli-iot-ext
. Egyszerre csak egy verziót kell telepítenie. Az paranccsalaz 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
: .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.
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:
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 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.
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.
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 megnull
a--method-payload
paramétert.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áltukSampleDevice
SampleMethod
az előző lépés parancssoriaz iot hub job create
felületének parancsában.
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.
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.
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}'"
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ö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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: