Schémata událostí mimo telemetrii služby Azure IoT Hub
Tento článek obsahuje vlastnosti a schémata pro události mimo telemetrii generované službou Azure IoT Hub. Události mimo telemetrii se liší od zpráv typu zařízení-cloud a cloud-zařízení v tom, že IoT Hub tyto události vysílá v reakci na konkrétní změny stavu přidružené k vašim zařízením. Například změny životního cyklu, jako je vytvoření nebo odstranění zařízení nebo modulu, nebo změny stavu připojení, jako je zařízení nebo modul, které se připojují nebo odpojí.
Události, které nejsou telemetrií, můžete směrovat směrováním zpráv nebo se spojit s událostmi mimo telemetrii pomocí služby Azure Event Grid. Další informace o směrování zpráv služby IoT Hub najdete v tématu Směrování zpráv služby IoT Hub a reakce na události služby IoT Hub pomocí služby Event Grid.
Příklady událostí v tomto článku byly zachyceny pomocí az iot hub monitor-events
příkazu Azure CLI. Může se zobrazit podmnožina vlastností zahrnutých v událostech, které přicházejí do koncového bodu směrování zpráv.
Dostupné typy událostí
Azure IoT Hub generuje události, které nejsou telemetrií, v následujících kategoriích:
Kategorie události | Popis |
---|---|
Události stavu připojení zařízení | Vygenerováno, když se zařízení připojí k centru IoT nebo se od ho odpojí. |
Události životního cyklu zařízení | Vygeneruje se při vytvoření nebo odstranění zařízení nebo modulu z ioT Hubu. |
Události změny dvojčete zařízení | Vygeneruje se při změně nebo nahrazení dvojčete zařízení nebo modulu. |
Události změn digitálního dvojčete | Vygeneruje se při změně nebo nahrazení digitálního dvojčete zařízení nebo modulu. |
Běžné vlastnosti událostí
Události mimo telemetrii sdílejí několik společných vlastností.
Systémové vlastnosti
IoT Hub nastavuje pro každou událost následující systémové vlastnosti.
Vlastnost | Type | Popis | Klíčové slovo pro dotaz směrování |
---|---|---|---|
kódování obsahu | string | utf-8 | $contentEncoding |
content-type | string | application/json | $contentType |
ID korelace | string | Jedinečné ID, které identifikuje událost. | $correlationId |
ID uživatele | string | Název ioT Hubu, který událost vygeneroval. | $userId |
iothub-connection-device-id | string | ID zařízení. | $connectionDeviceId |
iothub-connection-module-id | string | ID modulu. Tato vlastnost je výstupem pouze pro události životního cyklu modulu a dvojčete. | $connectionModuleId |
iothub-enqueuedtime | Číslo | Datum a čas odeslání oznámení V dotazech směrování použijte časové razítko ISO8601 , například $enqueuedTime > "2022-06-06T22:56:06Z" |
$enqueuedTime |
iothub-message-source | string | Kategorie události, která identifikuje zdroj zprávy. Například deviceLifecycleEvents. | – |
Vlastnosti aplikace
IoT Hub nastaví pro každou událost následující vlastnosti aplikace.
Vlastnost | Type | Popis |
---|---|---|
deviceId | string | ID zařízení. |
hubName | string | Název ioT Hubu, který událost vygeneroval. |
iothub-message-schema | string | Schéma zpráv přidružené k kategorii události; například deviceLifecycleNotification. |
moduleId | string | ID modulu. Tato vlastnost je výstupem pouze pro události životního cyklu modulu a změny dvojčete. |
operationTimestamp | string | Časové razítko ISO8601 operace. |
opType | string | Identifikátor operace, která událost vygenerovala. Například createDeviceIdentity nebo deleteDeviceIdentity. |
V dotazech směrování použijte název vlastnosti. Například deviceId = "my-device"
.
Události stavu připojení
Události stavu připojení se vygenerují vždy, když se zařízení nebo modul připojí nebo odpojí od centra IoT.
Vlastnosti aplikace: Následující tabulka ukazuje, jak jsou vlastnosti aplikace nastaveny pro události stavu připojení:
Vlastnost | Hodnota |
---|---|
iothub-message-schema | deviceConnectionStateNotification |
opType | deviceConnected nebo deviceDisconnected |
Systémové vlastnosti: Následující tabulka ukazuje, jak jsou vlastnosti systému nastaveny pro události stavu připojení:
Vlastnost | Hodnota |
---|---|
iothub-message-source | deviceConnectionStateEvents |
Text: Tělo obsahuje pořadové číslo. Pořadové číslo je řetězcové vyjádření šestnáctkového čísla. K identifikaci většího čísla můžete použít porovnání řetězců. Pokud převádíte řetězec na šestnáctkový, bude číslo 256bitové číslo. Pořadové číslo se striktně zvyšuje, takže nejnovější událost má vyšší počet než starší události. To je užitečné, pokud máte časté připojení a odpojení zařízení a chcete zajistit, aby se k aktivaci podřízené akce použila pouze nejnovější událost.
Příklad
Následující KÓD JSON ukazuje událost stavu připojení zařízení, která se vygeneruje při odpojení zařízení.
{
"event": {
"origin": "contoso-device-1",
"module": "",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-1",
"opType": "deviceDisconnected",
"iothub-message-schema": "deviceConnectionStateNotification",
"operationTimestamp": "2022-06-01T18:43:04.5561024Z"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-1",
"iothub-enqueuedtime": 1654109018051,
"iothub-message-source": "deviceConnectionStateEvents",
"x-opt-sequence-number": 72,
"x-opt-offset": "37344",
"x-opt-enqueued-time": 1654109018176
},
"payload": {
"sequenceNumber": "000000000000000001D8713FF7E0851400000002000000000000000000000007"
}
}
}
Události životního cyklu zařízení
Události životního cyklu zařízení se generují při každém vytvoření nebo odstranění zařízení nebo modulu z registru identit. Další podrobnosti o vygenerování událostí životního cyklu zařízení najdete v tématu Oznámení o životním cyklu zařízení a modulu.
Vlastnosti aplikace: Následující tabulka ukazuje, jak jsou vlastnosti aplikace nastaveny pro události životního cyklu zařízení:
Vlastnost | Hodnota |
---|---|
iothub-message-schema | deviceLifecycleNotification |
opType | Jedna z následujících hodnot: createDeviceIdentity, deleteDeviceIdentity, createModuleIdentity nebo deleteModuleIdentity. |
Vlastnosti systému: Následující tabulka ukazuje, jak jsou systémové vlastnosti nastaveny pro události životního cyklu zařízení:
Vlastnost | Hodnota |
---|---|
iothub-message-source | deviceLifecycleEvents |
Tělo: Tělo obsahuje reprezentaci dvojčete zařízení nebo dvojče modulu. Zahrnuje ID zařízení a ID modulu, značku dvojčete, vlastnost verze a značky, vlastnosti a přidružená metadata dvojčete.
Příklad
Následující JSON ukazuje událost životního cyklu zařízení, která se vygeneruje při vytvoření modulu. Událost se zaznamenává pomocí az iot hub monitor-events
příkazu Azure CLI.
{
"event": {
"origin": "contoso-device-2",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "c5a4e6986c",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-2",
"operationTimestamp": "2022-05-27T18:49:38.4904785Z",
"moduleId": "module-1",
"opType": "createModuleIdentity",
"iothub-message-schema": "moduleLifecycleNotification"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-2",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1653677378534,
"iothub-message-source": "deviceLifecycleEvents",
"x-opt-sequence-number": 62,
"x-opt-offset": "31768",
"x-opt-enqueued-time": 1653677378643
},
"payload": {
"deviceId": "contoso-device-2",
"moduleId": "module-1",
"etag": "AAAAAAAAAAE=",
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "0001-01-01T00:00:00Z"
},
"$version": 1
}
}
}
}
}
Události změny dvojčete zařízení
Události změny dvojčete zařízení se vygenerují při každé aktualizaci nebo nahrazení dvojčete zařízení nebo dvojčete modulu. V některých případech může být v jedné události zabaleno několik změn. Další informace najdete v tématu Operace back-endu dvojčete zařízení nebo operace back-endu dvojčete modulu.
Vlastnosti aplikace: Následující tabulka ukazuje, jak jsou vlastnosti aplikace nastaveny pro události změny dvojčete zařízení:
Vlastnost | Hodnota |
---|---|
iothub-message-schema | twinChangeNotification |
opType | Jedna z následujících hodnot: replaceTwin nebo updateTwin. |
Systémové vlastnosti: Následující tabulka ukazuje, jak jsou systémové vlastnosti nastaveny pro události změny dvojčete zařízení:
Vlastnost | Hodnota |
---|---|
iothub-message-source | twinChangeEvents |
Text: V aktualizaci obsahuje tělo vlastnost verze dvojčete a aktualizované značky a vlastnosti a jejich přidružená metadata. Nahrazování obsahuje tělo ID zařízení a ID modulu, značku dvojčete, vlastnost verze a všechny značky, vlastnosti a přidružená metadata dvojčete zařízení nebo modulu.
Příklad
Následující KÓD JSON ukazuje událost změny dvojčete vygenerované pro aktualizaci požadované vlastnosti a značky dvojčete modulu. Událost se zaznamenává pomocí az iot hub monitor-events
příkazu Azure CLI.
{
"event": {
"origin": "contoso-device-3",
"module": "module-1",
"interface": "",
"component": "",
"properties": {
"system": {
"content_encoding": "utf-8",
"content_type": "application/json",
"correlation_id": "4d1f1e2e74f",
"user_id": "contoso-routing-hub"
},
"application": {
"hubName": "contoso-routing-hub",
"deviceId": "contoso-device-3",
"operationTimestamp": "2022-06-01T22:27:50.2612586Z",
"moduleId": "module-1",
"iothub-message-schema": "twinChangeNotification",
"opType": "updateTwin"
}
},
"annotations": {
"iothub-connection-device-id": "contoso-device-3",
"iothub-connection-module-id": "module-1",
"iothub-enqueuedtime": 1654122470282,
"iothub-message-source": "twinChangeEvents",
"x-opt-sequence-number": 17,
"x-opt-offset": "12352",
"x-opt-enqueued-time": 1654122470329
},
"payload": {
"version": 7,
"tags": {
"tag1": "new value"
},
"properties": {
"desired": {
"property1": "new value",
"$metadata": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6,
"property1": {
"$lastUpdated": "2022-06-01T22:27:50.2612586Z",
"$lastUpdatedVersion": 6
}
},
"$version": 6
}
}
}
}
}
Další kroky
Další informace o směrování zpráv najdete v tématu Směrování zpráv ve službě IoT Hub.
Informace o tom, jak přidávat dotazy do tras zpráv, najdete v tématu Syntaxe dotazů směrování zpráv služby IoT Hub.
Další informace o struktuře zpráv typu zařízení-cloud a cloud-zařízení najdete v tématu Vytváření a čtení zpráv ioT Hubu.