Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure IoT Hub számos építőelem használatát teszi lehetővé, például az ikereszköz tulajdonságait, a címkéket és a közvetlen metódusokat. A háttéralkalmazások általában lehetővé teszik az eszközgazdák és -operátorok számára az IoT-eszközök tömeges és ütemezett frissítését és használatát. A feladatok ütemezett időpontban hajtanak végre ikereszköz-frissítéseket és közvetlen metódusokat egy eszközkészleten. Egy operátor például egy háttéralkalmazást használna, amely elindít és nyomon követ egy feladatot a 43. és a 3. épület egy eszközkészletének újraindításához, amely nem zavarná az épület műveleteit.
Megjegyzés
A cikkben ismertetett funkciók csak az 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: Válassza ki a megoldásához a megfelelő IoT Hub-szintet és méretet.
Fontolja meg a feladatok használatát, ha az alábbi tevékenységek bármelyikét ütemezni és nyomon követni kell egy eszközök készletén:
- A kívánt tulajdonságok frissítése
- Címkék frissítése
- Közvetlen metódusok meghívása
Feladat életciklusa
A feladatokat a megoldás háttérrendszere kezdeményezi, és az IoT Hub tartja karban. A feladatokat egy szolgáltatással rendelkező URI-n (PUT https://<iot hub>/jobs/v2/<jobID>?api-version=2021-04-12) keresztül kezdeményezheti, és lekérdezheti a végrehajtási feladat előrehaladását egy szolgáltatásoldali URI-n (GET https://<iot hub>/jobs/v2/<jobID?api-version=2021-04-12). A feladat indítása után a futó feladatok állapotának frissítéséhez futtasson egy feladat-lekérdezést. A feladatelőzmények nincsenek explicit módon törölve, de 30 napos TTL-jük van.
Megjegyzés
Feladat indításakor a tulajdonságnevek és -értékek csak US-ASCII nyomtatható alfanumerikus értéket tartalmazhatnak, kivéve az alábbi halmazok bármelyikét: $ ( ) < > @ , ; : \ " / [ ] ? = { } SP HT
Megjegyzés
A jobId mező legfeljebb 64 karakter hosszúságú lehet, és csak US-ASCII betűket, számokat és kötőjelet (-) tartalmazhat.
Közvetlen metódusok végrehajtására használható feladatok
Az alábbi kódrészlet a HTTPS 1.1 kérelem részleteit mutatja be egy közvetlen metódus végrehajtásához, egy feladattal rendelkező eszközkészleten:
PUT /jobs/v2/<jobId>?api-version=2021-04-12
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
{
"jobId": "<jobId>",
"type": "scheduleDeviceMethod",
"cloudToDeviceMethod": {
"methodName": "<methodName>",
"payload": <payload>,
"responseTimeoutInSeconds": methodTimeoutInSeconds
},
"queryCondition": "<queryOrDevices>", // query condition
"startTime": <jobStartTime>, // as an ISO-8601 date string
"maxExecutionTimeInSeconds": <maxExecutionTimeInSeconds>
}
A lekérdezési feltétel lehet egyetlen eszközazonosítóra vagy az eszközazonosítók listájára is, ahogyan az alábbi példákban látható:
"queryCondition" = "deviceId = 'MyDevice1'"
"queryCondition" = "deviceId IN ['MyDevice1','MyDevice2']"
"queryCondition" = "deviceId IN ['MyDevice1']"
Az IoT Hub lekérdezési nyelvével kapcsolatos további információkért tekintse meg az IoT Hub lekérdezési nyelvét eszköz- és modul-ikerpéldányokhoz, feladatokhoz és üzenet irányításhoz.
Az alábbi kódrészlet egy olyan feladat kérését és válaszát mutatja be, amely egy testMethod nevű közvetlen metódus meghívására van ütemezve a Contoso-Hub-1 összes eszközén:
PUT https://contoso-hub-1.azure-devices.net/jobs/v2/job01?api-version=2021-04-12 HTTP/1.1
Authorization: SharedAccessSignature sr=contoso-hub-1.azure-devices.net&sig=68iv------------------------------------v8Hxalg%3D&se=1556849884&skn=iothubowner
Content-Type: application/json; charset=utf-8
Host: contoso-hub-1.azure-devices.net
Content-Length: 317
{
"jobId": "job01",
"type": "scheduleDeviceMethod",
"cloudToDeviceMethod": {
"methodName": "testMethod",
"payload": {},
"responseTimeoutInSeconds": 30
},
"queryCondition": "*",
"startTime": "2019-05-04T15:53:00.077Z",
"maxExecutionTimeInSeconds": 20
}
HTTP/1.1 200 OK
Content-Length: 65
Content-Type: application/json; charset=utf-8
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 03 May 2019 01:46:18 GMT
{"jobId":"job01","type":"scheduleDeviceMethod","status":"queued"}
Az eszközkettős tulajdonságainak frissítésére szolgáló feladatok
Az alábbi kódrészlet a HTTPS 1.1 kérelem részleteit mutatja be az ikereszköz-tulajdonságok feladattal történő frissítéséhez:
PUT /jobs/v2/<jobId>?api-version=2021-04-12
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
{
"jobId": "<jobId>",
"type": "scheduleUpdateTwin",
"updateTwin": <patch> // Valid JSON object
"queryCondition": "<queryOrDevices>", // query condition
"startTime": <jobStartTime>, // as an ISO-8601 date string
"maxExecutionTimeInSeconds": <maxExecutionTimeInSeconds>
}
Megjegyzés
Az updateTwin tulajdonsághoz érvényes ETag egyezés szükséges; például etag="*".
Az alábbi kódrészlet a contoso-hub-1 teszteszköz ikereszköz-tulajdonságainak frissítésére ütemezett feladat kérését és válaszát mutatja be:
PUT https://contoso-hub-1.azure-devices.net/jobs/v2/job02?api-version=2021-04-12 HTTP/1.1
Authorization: SharedAccessSignature sr=contoso-hub-1.azure-devices.net&sig=BN0U-------------------------------------RuA%3D&se=1556925787&skn=iothubowner
Content-Type: application/json; charset=utf-8
Host: contoso-hub-1.azure-devices.net
Content-Length: 339
{
"jobId": "job02",
"type": "scheduleUpdateTwin",
"updateTwin": {
"properties": {
"desired": {
"test1": "value1"
}
},
"etag": "*"
},
"queryCondition": "deviceId = 'test-device'",
"startTime": "2019-05-08T12:19:56.868Z",
"maxExecutionTimeInSeconds": 20
}
HTTP/1.1 200 OK
Content-Length: 63
Content-Type: application/json; charset=utf-8
Vary: Origin
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 03 May 2019 22:45:13 GMT
{"jobId":"job02","type":"scheduleUpdateTwin","status":"queued"}
Feladatok előrehaladásának lekérdezése
Az alábbi kódrészlet a HTTPS 1.1 kérelmek adatait jeleníti meg a feladatok lekérdezéséhez:
GET /jobs/v2/query?api-version=2021-04-12[&jobType=<jobType>][&jobStatus=<jobStatus>][&pageSize=<pageSize>][&continuationToken=<continuationToken>]
Authorization: <config.sharedAccessSignature>
Content-Type: application/json; charset=utf-8
A folytatásToken a válaszból származik.
Az IoT Hub lekérdezési nyelvével a modul- és ikereszközök, feladatok és üzenetek útválasztása esetén lekérdezheti az egyes eszközök feladatvégrehajtási állapotát.
Feladatok tulajdonságai
Az alábbi lista a feladatok vagy feladatok eredményeinek lekérdezéséhez használható tulajdonságokat és a hozzájuk tartozó leírásokat tartalmazza.
| Ingatlan | Leírás |
|---|---|
| jobId | Az alkalmazás által megadott azonosító a feladathoz. |
| startTime | Alkalmazás által megadott kezdési időpont (ISO-8601) a feladathoz. |
| endTime | Az IoT Hub a feladat befejezésének dátumát (ISO-8601) adta meg. Csak akkor érvényes, ha a feladat elérte a "befejezett" állapotot. |
| maxExecutionTimeInSeconds | Az alkalmazás maximális engedélyezett teljes időt adott meg a feladat indításától a befejezésig. |
| típus | Feladatok típusai: |
| scheduleUpdateTwin: A kívánt tulajdonságok vagy címkék készletének frissítésére szolgáló feladat. | |
| scheduleDeviceMethod: Egy eszközmetódus meghívására használt feladat az ikereszköz-készleten. | |
| állapot | A feladat aktuális állapota. Az állapot lehetséges értékei: |
| függőben: Ütemezett és arra vár, hogy a feladat szolgáltatás átvegye. | |
| ütemezett: Ütemezett egy jövőbeli időpontra. | |
| futó: Jelenleg aktív munka. | |
| törölve: A feladat törölve lett. | |
| nem sikerült: A feladat nem sikerült. | |
| befejezett: A feladat befejeződött. | |
| eszközMunkaStatisztikák | A feladat végrehajtásának statisztikái. |
| deviceJobStatistics tulajdonságai: | |
| deviceJobStatistics.deviceCount: A feladatban lévő eszközök száma. | |
| deviceJobStatistics.failedCount: Azon eszközök száma, ahol a feladat meghiúsult. | |
| deviceJobStatistics.succeededCount: Azon eszközök száma, ahol a feladat sikeresen végrehajtásra került. | |
| deviceJobStatistics.runningCount: A feladatot jelenleg futtató eszközök száma. | |
| deviceJobStatistics.pendingCount: A feladat futtatására függőben lévő eszközök száma. |
Egyéb referenciaanyag
Az IoT Hub fejlesztői útmutatójában található további referenciacikkek a következők:
Az IoT Hub-végpontok azokat a végpontokat ismertetik, amelyeket az egyes IoT Hubok elérhetővé tehetnek futásidejű és felügyeleti műveletekhez.
Az IoT Hub kvótái és szabályozása az IoT Hub szolgáltatásra vonatkozó kvótákat és a szolgáltatás használatakor várható szabályozási viselkedést ismerteti.
Az Azure IoT Hub SDK-k felsorolják a különböző nyelvi SDK-kat, amelyeket az IoT Hubot használó eszköz- és szolgáltatásalkalmazások fejlesztésekor használhat.
Az IoT Hub lekérdezési nyelve az ikereszközökhöz és modulokhoz, feladatokhoz és üzenet-útválasztáshoz az IoT Hub lekérdezési nyelvét ismerteti. Ezzel a lekérdezési nyelvvel adatokat kérdezhet le az IoT Hubról az ikereszközökről és a feladatokról.
Az MQTT protokollt használó IoT Hubokkal való kommunikáció további információt nyújt az MQTT protokoll IoT Hub-támogatásáról.
Következő lépések
A cikkben ismertetett fogalmak megismeréséhez tekintse meg az alábbi IoT Hub-cikket: