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 telemetriaesemé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 közvetlenül bocsátja ki őket az eszközökhöz kapcsolódó bizonyos típusú állapotváltozásokra válaszul. 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 az egyes eseményeken.

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 alábbi alkalmazástulajdonságokat az IoT Hub állítja be minden eseményen.

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".

Csatlakozás ion state events

Csatlakozás állapotesemé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 eszköz Csatlakozás ionStateNotification
opType Az alábbi értékek egyike: device Csatlakozás ed, deviceDisconnected, module Csatlakozás ed vagy moduleDisconnected.

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 device Csatlakozás ionStateEvents

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, és a legújabb esemény nagyobb számmal fog rendelkezni, mint a többi esemény. Ez akkor hasznos, ha gyakran csatlakozik és megszakad az eszköz, és azt szeretné, hogy csak a legújabb esemény aktiválja az alsóbb rétegbeli műveletet.

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": "98dcbcf6-3398-c488-c62c-06330e65ea98",
                "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