Azure IoT Hub telemetri dışı olay şemaları

Bu makalede, Azure IoT Hub tarafından yayılan telemetri dışı olaylar için özellikler ve şemalar sağlanır. Telemetri dışı olaylar, cihazlarınızla ilişkili belirli durum değişikliklerine yanıt olarak doğrudan IoT Hub tarafından gönderilen cihazdan buluta ve buluttan cihaza iletilerden farklıdır. Örneğin, oluşturulan veya silinen bir cihaz veya modül gibi yaşam döngüsü değişiklikleri ya da bir cihaz ya da modülün bağlanması veya bağlantısının kesilmesi gibi bağlantı durumu değişiklikleri.

İleti yönlendirmeyi kullanarak telemetri dışı olayları yönlendirebilir veya Azure Event Grid'i kullanarak telemetri dışı olaylara ulaşabilirsiniz. IoT Hub ileti yönlendirme hakkında daha fazla bilgi edinmek için bkz. Event Grid kullanarak IoT Hub ileti yönlendirme ve IoT Hub olaylarına tepki verme.

Bu makaledeki olay örnekleri Azure CLI komutu kullanılarak az iot hub monitor-events yakalanır. İleti yönlendirme uç noktasına ulaşan olaylara dahil edilen özelliklerin bir alt kümesini görebilirsiniz.

Kullanılabilir olay türleri

Azure IoT Hub, telemetri dışı olayları aşağıdaki kategorilerde yayar:

Olay kategorisi Açıklama
Cihaz bağlantı durumu olayları Bir cihaz IoT hub'ına bağlandığında veya bağlantı kesildiğinde yayılır.
Cihaz yaşam döngüsü olayları IoT hub'ından bir cihaz veya modül oluşturulduğunda veya silindiğinde yayılır.
Cihaz ikizi değişiklik olayları Cihaz veya modül ikizi değiştirildiğinde veya değiştirildiğinde yayılır.
Dijital ikiz değişiklik olayları Bir cihazın veya modülün dijital ikizi değiştirildiğinde veya değiştirildiğinde yayılır.

Ortak olay özellikleri

Telemetri dışı olaylar birçok ortak özelliği paylaşır.

Sistem özellikleri

Aşağıdaki sistem özellikleri her olayda IoT Hub tarafından ayarlanır.

Özellik Türü Açıklama Yönlendirme sorgusu için anahtar sözcük
içerik kodlama Dize utf-8 $contentEncoding
içerik türü Dize application/json $contentType
correlation-id Dize Olayı tanımlayan benzersiz bir kimlik. $correlationId
kullanıcı kimliği Dize Olayı oluşturan IoT Hub'ın adı. $userId
ıothub-bağlantı-cihaz kimliği Dize Cihaz kimliği. $connectionDeviceId
iothub-connection-module-id Dize Modül kimliği. Bu özellik yalnızca modül yaşam döngüsü ve ikiz olayları için çıkıştır. $connectionModuleId
iothub-enqueuedtime Numara Bildirimin gönderildiği tarih ve saat. Yönlendirme sorgularında ISO8601 zaman damgası kullanın; örneğin,$enqueuedTime > "2022-06-06T22:56:06Z" $enqueuedTime
iothub-message-source Dize İleti kaynağını tanımlayan olay kategorisi. Örneğin, deviceLifecycleEvents. Yok

Uygulama özellikleri

Aşağıdaki uygulama özellikleri her olayda IoT Hub tarafından ayarlanır.

Özellik Türü Açıklama
deviceId Dize Cihaz kimliği.
hubName Dize Olayı oluşturan IoT Hub'ın adı.
iothub-message-schema Dize Olay kategorisiyle ilişkili ileti şeması; örneğin, deviceLifecycleNotification.
moduleId Dize Modül kimliği. Bu özellik yalnızca modül yaşam döngüsü ve ikiz değişiklik olayları için çıkıştır.
operationTimestamp Dize İşlemin ISO8601 zaman damgası.
Optype Dize Olayı oluşturan işlemin tanımlayıcısı. Örneğin createDeviceIdentity veya deleteDeviceIdentity.

Yönlendirme sorgularında özellik adını kullanın. Örneğin, deviceId = "my-device".

Bağlan durum olayları

bir cihaz veya modül IoT hub'ına bağlandığında veya bağlantı kesildiğinde Bağlan durum olayları yayılır.

Uygulama özellikleri: Aşağıdaki tabloda, bağlantı durumu olayları için uygulama özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-schema device Bağlan ionStateNotification
Optype Aşağıdaki değerlerden biri: device Bağlan ed, deviceDisconnected, module Bağlan ed veya moduleDisconnected.

Sistem özellikleri: Aşağıdaki tabloda, bağlantı durumu olayları için sistem özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-source device Bağlan ionStateEvents

Gövde: Gövde bir sıra numarası içerir. Sıra numarası, onaltılık bir sayının dize gösterimidir. Daha büyük sayıyı tanımlamak için dize karşılaştırmasını kullanabilirsiniz. Dizeyi onaltılık sayıya dönüştürüyorsanız, sayı 256 bitlik bir sayı olacaktır. Sıra numarası kesinlikle artıyor ve en son olay diğer olaylardan daha yüksek bir sayıya sahip olacak. Sık sık cihaz bağlantılarınız ve bağlantınız kesiliyorsa ve aşağı akış eylemini tetiklemede yalnızca en son olayın kullanıldığından emin olmak istiyorsanız bu yararlı olur.

Örnek

Aşağıdaki JSON, bir cihaz bağlantısı kesildiğinde ortaya çıkan bir cihaz bağlantı durumu olayını gösterir.

{
    "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"
        }
    }
}

Cihaz yaşam döngüsü olayları

Cihaz yaşam döngüsü olayları, kimlik kayıt defterinden bir cihaz veya modül oluşturulduğunda veya silindiğinde yayılır. Cihaz yaşam döngüsü olaylarının ne zaman oluşturulduğu hakkında daha fazla ayrıntı için bkz . Cihaz ve modül yaşam döngüsü bildirimleri.

Uygulama özellikleri: Aşağıdaki tabloda, cihaz yaşam döngüsü olayları için uygulama özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-schema deviceLifecycleNotification
Optype Aşağıdaki değerlerden biri: createDeviceIdentity, deleteDeviceIdentity, createModuleIdentity veya deleteModuleIdentity.

Sistem özellikleri: Aşağıdaki tabloda cihaz yaşam döngüsü olayları için sistem özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-source deviceLifecycleEvents

Gövde: Gövde, cihaz ikizinin veya modül ikizinin bir gösterimini içerir. Cihaz kimliğini ve modül kimliğini, ikiz etag'ini, sürüm özelliğini ve ikizin etiketlerini, özelliklerini ve ilişkili meta verilerini içerir.

Örnek

Aşağıdaki JSON, bir modül oluşturulduğunda yayılan bir cihaz yaşam döngüsü olayını gösterir. Olay, Azure CLI komutu kullanılarak az iot hub monitor-events yakalanır.

{
    "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
                }
            }
        }
    }
}

Cihaz ikizi değişiklik olayları

Cihaz ikizi değişiklik olayları, bir cihaz ikizi veya modül ikizi güncelleştirildiğinde veya değiştirildiğinde yayılır. Bazı durumlarda, birkaç değişiklik tek bir olayda paketlenebilir. Daha fazla bilgi edinmek için bkz . Cihaz ikizi arka uç işlemleri veya Modül ikizi arka uç işlemleri.

Uygulama özellikleri: Aşağıdaki tabloda, cihaz ikizi değişiklik olayları için uygulama özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-schema twinChangeNotification
Optype Aşağıdaki değerlerden biri: replaceTwin veya updateTwin.

Sistem özellikleri: Aşağıdaki tabloda, cihaz ikizi değişiklik olayları için sistem özelliklerinin nasıl ayarlandığı gösterilmektedir:

Özellik Değer
iothub-message-source twinChangeEvents

Gövde: Bir güncelleştirmede gövde, ikizin sürüm özelliğini, güncelleştirilmiş etiketleri ve özellikleri ve bunların ilişkili meta verilerini içerir. Bir değiştirmede gövde cihaz kimliğini ve modül kimliğini, ikiz etag'ini, sürüm özelliğini ve cihaz veya modül ikizinin tüm etiketlerini, özelliklerini ve ilişkili meta verilerini içerir.

Örnek

Aşağıdaki JSON, istenen özelliğin bir güncelleştirmesi ve modül ikizinde bir etiket için yayılan bir ikiz değişiklik olayını gösterir. Olay, Azure CLI komutu kullanılarak az iot hub monitor-events yakalanır.

{
    "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
                }
            }
        }
    }
}

Sonraki adımlar