Azure IoT Hub umožňuje řadu stavebních bloků, jako jsou vlastnosti a značky dvojčat zařízení a přímé metody. Back-endové aplikace obvykle umožňují správcům a operátorům zařízení aktualizovat zařízení IoT a pracovat s nimi hromadně a v naplánovaném čase. Úlohy provádějí aktualizace dvojčete zařízení a přímé metody vůči sadě zařízení v naplánovaném čase. Operátor by například použil back-endovou aplikaci, která inicializuje a sleduje úlohu k restartování sady zařízení v budově 43 a patře 3 najednou, což by nenarušovalo provoz budovy.
Poznámka
Funkce popsané v tomto článku jsou dostupné jenom na standardní úrovni IoT Hub. Další informace o IoT Hub úrovně Basic a Standard/Free najdete v tématu Volba správné IoT Hub úrovně pro vaše řešení.
Použití úloh zvažte, pokud potřebujete naplánovat a sledovat průběh některé z následujících aktivit na sadě zařízení:
Aktualizace požadovaných vlastností
Aktualizace značek
Vyvolání přímých metod
Životní cyklus úlohy
Úlohy jsou inicializovány back-endem řešení a udržovány IoT Hub. Úlohu můžete zahájit prostřednictvím identifikátoru URI pro službu (PUT https://<iot hub>/jobs/v2/<jobID>?api-version=2021-04-12) a dotazovat se na průběh spouštěné úlohy prostřednictvím identifikátoru URI určeného ke službě (GET https://<iot hub>/jobs/v2/<jobID?api-version=2021-04-12). Pokud chcete aktualizovat stav spuštěných úloh po zahájení úlohy, spusťte dotaz úlohy. Historie úloh se explicitně nevyprázdní, ale hodnota TTL je 30 dnů.
Poznámka
Při zahájení úlohy můžou názvy vlastností a hodnoty obsahovat pouze tisknutelné alfanumerické znaky US-ASCII, s výjimkou libovolných v následující sadě: $ ( ) < > @ , ; : \ " / [ ] ? = { } SP HT
Poznámka
Pole jobId musí mít maximálně 64 znaků a může obsahovat pouze písmena US-ASCII, číslice a pomlčku (-).
Úlohy pro spouštění přímých metod
Následující fragment kódu ukazuje podrobnosti o požadavku HTTPS 1.1 pro spuštění přímé metody na sadě zařízení pomocí úlohy:
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>
}
Podmínka dotazu může být také na jednom ID zařízení nebo v seznamu ID zařízení, jak je znázorněno v následujících příkladech:
"queryCondition" = "deviceId = 'MyDevice1'"
"queryCondition" = "deviceId IN ['MyDevice1','MyDevice2']"
"queryCondition" = "deviceId IN ['MyDevice1']"
Následující fragment kódu ukazuje požadavek a odpověď na úlohu naplánovanou na volání přímé metody s názvem testMethod na všech zařízeních v contoso-hub-1:
Úlohy pro aktualizaci vlastností dvojčete zařízení
Následující fragment kódu ukazuje podrobnosti o požadavku HTTPS 1.1 pro aktualizaci vlastností dvojčete zařízení pomocí úlohy:
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>
}
Poznámka
Vlastnost vyžaduje platnou shodu etag; například etag="*".
Následující fragment kódu ukazuje požadavek a odpověď na úlohu naplánovanou na aktualizaci vlastností dvojčete zařízení pro test-device v contoso-hub-1:
Následující seznam obsahuje vlastnosti a odpovídající popisy, které se dají použít při dotazování na úlohy nebo výsledky úlohy.
Vlastnost
Popis
ID úlohy
Aplikace poskytla ID pro úlohu.
Starttime
Aplikace poskytla čas spuštění (ISO-8601) pro úlohu.
Endtime
IoT Hub zadané datum (ISO-8601) pro dokončení úlohy. Platnost je platná až po dokončení úlohy.
Typ
Typy úloh:
scheduleUpdateTwin: Úloha sloužící k aktualizaci sady požadovaných vlastností nebo značek.
scheduleDeviceMethod: Úloha použitá k vyvolání metody zařízení v sadě dvojčat zařízení.
Stav
Aktuální stav úlohy. Možné hodnoty stavu:
pending: Naplánováno a čeká na vyzvednutí službou úloh.
scheduled: Naplánováno na čas v budoucnu.
spuštěno: Aktuálně aktivní úloha.
zrušeno: Úloha byla zrušena.
selhalo: Úloha se nezdařila.
completed(dokončeno): Úloha byla dokončena.
deviceJobStatistics
Statistika provádění úlohy
vlastnosti deviceJobStatistics :
deviceJobStatistics.deviceCount: Počet zařízení v úloze.
deviceJobStatistics.failedCount: Počet zařízení, u kterých úloha selhala.
deviceJobStatistics.succeededCount: Počet zařízení, ve kterých byla úloha úspěšná.
deviceJobStatistics.runningCount: Počet zařízení, na kterých je úloha aktuálně spuštěná.
deviceJobStatistics.pendingCount: Počet zařízení čekajících na spuštění úlohy.
Další referenční materiály
Mezi další referenční témata v příručce pro vývojáře IoT Hub patří:
IoT Hub koncových bodů popisuje různé koncové body, které každé centrum IoT zpřístupňuje pro běhové operace a operace správy.
Omezení a kvóty popisují kvóty, které se vztahují na službu IoT Hub, a chování omezování, které můžete očekávat při používání služby.
Sady SDK pro zařízení a služby Azure IoT obsahuje seznam různých jazykových sad SDK, které můžete použít při vývoji aplikací zařízení i služeb, které komunikují s IoT Hub.