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, IoT Hub'ın cihazlarınızla ilişkili belirli durum değişikliklerine yanıt olarak bu olayları yaydığı cihazdan buluta ve buluttan cihaza iletilerinden 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
IoT Hub her olay için aşağıdaki sistem özelliklerini ayarlar.
Ö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
IoT Hub her olay için aşağıdaki uygulama özelliklerini ayarlar.
Ö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ğlantı durumu olayları
Bir cihaz veya modül IoT hub'ına bağlandığında veya bağlantı kesildiğinde bağlantı durumu 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 | deviceConnectionStateNotification |
opType | deviceConnected veya deviceDisconnected |
Hem modüller hem de cihazlar, bağlantı durumu olaylarını raporlamak için ve deviceDisconnected
uygulama özelliklerini kullanırdeviceConnected
. Olay bir modülden geldiyse, olay bir moduleId
özellik de içerir. Özellik yoksa moduleId
olay bir cihazdan geldi demektir.
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 | deviceConnectionStateEvents |
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, bu nedenle en son olay eski olaylardan daha yüksek bir sayıya sahip. 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": "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"
}
}
}
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. |
Hem modüller hem de cihazlar, bağlantı durumu olaylarını raporlamak için ve deleteDeviceIdentity
uygulama özelliklerini kullanırcreateDeviceIdentity
. Olay bir modülden geldiyse, olay bir moduleId
özellik de içerir. Özellik yoksa moduleId
olay bir cihazdan geldi demektir.
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": "createDeviceIdentity",
"iothub-message-schema": "deviceLifecycleNotification"
}
},
"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
İleti yönlendirme hakkında bilgi edinmek için bkz . IoT Hub ileti yönlendirme.
İleti yollarınıza sorgu eklemeyi öğrenmek için bkz . IoT Hub ileti yönlendirme sorgusu söz dizimi.
Cihazdan buluta ve buluttan cihaza iletilerin yapısı hakkında bilgi edinmek için bkz . IoT Hub iletileri oluşturma ve okuma.