Az Azure IoT Hub nem telemetriai eseménysémái
Ez a cikk az Azure IoT Hub által kibocsátott nem telemetriai események tulajdonságait és sémáit ismerteti. A nem telemetriai események eltérnek az eszközről a felhőbe és a felhőből az eszközre irányuló üzenetektől abban az esetben, ha az IoT Hub ezeket az eseményeket az eszközökhöz társított adott állapotváltozásokra válaszul bocsátja ki. Például az életciklus megváltozik, például egy eszköz vagy modul létrehozása vagy törlése, vagy a kapcsolat állapota megváltozik, például egy eszköz vagy modul csatlakozik vagy megszakad.
A nem telemetriai eseményeket üzenet-útválasztással irányíthatja, vagy elérheti a nem telemetriai eseményeket az Azure Event Grid használatával. Az IoT Hub üzenet-útválasztásával kapcsolatos további információkért tekintse meg az IoT Hub üzenet-útválasztását és az IoT Hub-eseményekre való reagálást az Event Grid használatával.
A cikkben szereplő esemény példákat az az iot hub monitor-events
Azure CLI paranccsal rögzítették. Előfordulhat, hogy az üzenet-útválasztási végpontra érkező eseményekben a tulajdonságok egy részhalmaza jelenik meg.
Elérhető eseménytípusok
Az Azure IoT Hub a következő kategóriákban bocsátja ki a nem telemetriai eseményeket:
Eseménykategória | Leírás |
---|---|
Eszközkapcsolati állapot eseményei | Kibocsátva, amikor egy eszköz csatlakozik egy IoT Hubhoz, vagy leválasztja azt. |
Eszközéletciklus-események | Kibocsátva, ha egy eszköz vagy modul egy IoT Hubon jön létre vagy törlődik. |
Ikereszköz-változási események | Az ikereszköz vagy modul módosításakor vagy cseréjekor a rendszer kibocsátja. |
Digitális ikermódosítási események | Kibocsátva, ha egy eszköz vagy modul digitális ikerpéldánya megváltozik vagy lecserélődik. |
Gyakori eseménytulajdonságok
A nem telemetriai események számos gyakori tulajdonsággal rendelkeznek.
Rendszertulajdonságok
Az IoT Hub az alábbi rendszertulajdonságokat állítja be minden eseményen.
Tulajdonság | Típus | Leírás | Útválasztási lekérdezés kulcsszója |
---|---|---|---|
tartalomkódolás | húr | utf-8 | $contentEncoding |
tartalomtípus | húr | application/json | $contentType |
korrelációs azonosító | húr | Az eseményt azonosító egyedi azonosító. | $correlationId |
felhasználó-azonosító | húr | Az eseményt létrehozó IoT Hub neve. | $userId |
iothub-connection-device-id | húr | Az eszköz azonosítója. | $connectionDeviceId |
iothub-connection-module-id | húr | A modul azonosítója. Ez a tulajdonság csak a modul életciklusa és az ikeresemények kimenete. | $connectionModuleId |
iothub-enqueuedtime | szám | Az értesítés elküldésének dátuma és időpontja. Útválasztási lekérdezésekben használjon ISO8601 időbélyeget, például: $enqueuedTime > "2022-06-06T22:56:06Z" |
$enqueuedTime |
iothub-message-source | húr | Az üzenet forrását azonosító eseménykategória. Például a deviceLifecycleEvents. | n/a |
Az alkalmazás tulajdonságai
Az IoT Hub az alábbi alkalmazástulajdonságokat állítja be az egyes eseményeken.
Tulajdonság | Típus | Leírás |
---|---|---|
deviceId | húr | Az eszköz azonosítója. |
hubName | húr | Az eseményt létrehozó IoT Hub neve. |
iothub-message-schema | húr | Az eseménykategóriához társított üzenetséma; például deviceLifecycleNotification. |
moduleId | húr | A modul azonosítója. Ez a tulajdonság csak a modul életciklusának és az ikerváltozási eseményeknek a kimenete. |
operationTimestamp | húr | A művelet ISO8601 időbélyege. |
opType | húr | Az eseményt létrehozó művelet azonosítója. Például createDeviceIdentity vagy deleteDeviceIdentity. |
Az útválasztási lekérdezésekben használja a tulajdonság nevét. Például: deviceId = "my-device"
.
Kapcsolatállapot-események
A kapcsolatállapot-események akkor lesznek kibocsátva, ha egy eszköz vagy modul csatlakozik vagy leválasztja az IoT Hubot.
Alkalmazástulajdonságok: Az alábbi táblázat bemutatja, hogyan vannak beállítva az alkalmazástulajdonságok a kapcsolatállapot-eseményekhez:
Tulajdonság | Érték |
---|---|
iothub-message-schema | deviceConnectionStateNotification |
opType | deviceConnected vagy deviceDisconnected |
Rendszertulajdonságok: Az alábbi táblázat bemutatja, hogyan vannak beállítva a rendszertulajdonságok a kapcsolatállapot-eseményekhez:
Tulajdonság | Érték |
---|---|
iothub-message-source | deviceConnectionStateEvents |
Törzs: A törzs sorszámot tartalmaz. A sorszám egy hexadecimális szám sztring-ábrázolása. A sztringek összehasonlításával azonosíthatja a nagyobb számot. Ha a sztringet hexává konvertálja, akkor a szám 256 bites lesz. A sorszám szigorúan növekszik, ezért a legújabb esemény nagyobb számmal rendelkezik, mint a régebbi események. Ez akkor hasznos, ha gyakran csatlakozik és megszakad az eszköz, és meg szeretné győződni arról, hogy csak a legújabb eseményt használja egy alsóbb rétegbeli művelet aktiválásához.
Példa
Az alábbi JSON egy eszközkapcsolati állapot eseményt jelenít meg, amely az eszköz leválasztásakor jelenik meg.
{
"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"
}
}
}
Eszközéletciklus-események
Az eszköz életciklus-eseményei akkor lesznek kibocsátva, ha egy eszközt vagy modult hoznak létre vagy törölnek az identitásjegyzékből. Az eszköz életciklus-eseményeinek létrehozásával kapcsolatos további információkért tekintse meg az eszköz- és moduléletciklus-értesítéseket.
Alkalmazástulajdonságok: Az alábbi táblázat bemutatja, hogyan vannak beállítva az alkalmazástulajdonságok az eszköz életciklus-eseményeihez:
Tulajdonság | Érték |
---|---|
iothub-message-schema | deviceLifecycleNotification |
opType | Az alábbi értékek egyike: createDeviceIdentity, deleteDeviceIdentity, createModuleIdentity vagy deleteModuleIdentity. |
Rendszertulajdonságok: Az alábbi táblázat bemutatja, hogyan vannak beállítva a rendszertulajdonságok az eszköz életciklus-eseményeihez:
Tulajdonság | Érték |
---|---|
iothub-message-source | deviceLifecycleEvents |
Törzs: A törzs az ikereszköz vagy a modul ikerpéldányának ábrázolását tartalmazza. Tartalmazza az eszközazonosítót és a modulazonosítót, az ikercímkét, a verziótulajdonságot, valamint az ikerpéldány címkéit, tulajdonságait és kapcsolódó metaadatait.
Példa
Az alábbi JSON egy modul létrehozásakor kibocsátott eszközéletciklus-eseményt mutat be. Az eseményt az az iot hub monitor-events
Azure CLI-paranccsal rögzíti a rendszer.
{
"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
}
}
}
}
}
Ikereszköz-változási események
Az ikereszköz-változási események akkor lesznek kibocsátva, ha egy ikereszköz vagy egy modul ikerpéldánya frissül vagy lecserélődik. Bizonyos esetekben több módosítás is becsomagolt egyetlen eseménybe. További információ: Ikereszköz-háttérműveletek vagy ikermodulok háttérművelete.
Alkalmazástulajdonságok: Az alábbi táblázat az ikereszköz-változási események alkalmazástulajdonságainak beállítását mutatja be:
Tulajdonság | Érték |
---|---|
iothub-message-schema | twinChangeNotification |
opType | Az alábbi értékek egyike: replaceTwin vagy updateTwin. |
Rendszertulajdonságok: Az alábbi táblázat bemutatja, hogyan vannak beállítva a rendszertulajdonságok az ikereszköz-változási eseményekhez:
Tulajdonság | Érték |
---|---|
iothub-message-source | twinChangeEvents |
Törzs: Frissítéskor a törzs tartalmazza az ikerpéldány verziótulajdonságait, valamint a frissített címkéket és tulajdonságokat, valamint a hozzájuk tartozó metaadatokat. Csere esetén a törzs tartalmazza az eszközazonosítót és a modulazonosítót, az ikercímkét, a verziótulajdonságot, valamint az eszköz vagy modul ikerpéldányának címkéit, tulajdonságait és kapcsolódó metaadatait.
Példa
Az alábbi JSON egy ikermódosítási eseményt jelenít meg, amely egy kívánt tulajdonság frissítéséhez és egy modul ikerpéldányának címkéjéhez lesz kibocsátva. Az eseményt az az iot hub monitor-events
Azure CLI-paranccsal rögzíti a rendszer.
{
"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
}
}
}
}
}
Következő lépések
Az üzenet-útválasztásról az IoT Hub üzenet-útválasztása című témakörben olvashat.
Ha meg szeretné tudni, hogyan adhat hozzá lekérdezéseket az üzenetútvonalakhoz, tekintse meg az IoT Hub üzenet-útválasztási lekérdezési szintaxisát.
Az eszközről a felhőbe és a felhőből az eszközre irányuló üzenetek struktúrájáról az IoT Hub-üzenetek létrehozása és olvasása című témakörben olvashat.