Skema kejadian non-telemetri Azure IoT Hub
Artikel ini menyediakan properti dan skema untuk kejadian non-telemetri yang dikeluarkan oleh Azure IoT Hub. Kejadian non-telemetri berbeda dari pesan perangkat-ke-cloud dan cloud-ke-perangkat karena dikeluarkan langsung oleh IoT Hub sebagai respons terhadap jenis perubahan status tertentu yang terkait dengan perangkat Anda. Misalnya, siklus hidup berubah seperti perangkat atau modul yang sedang dibuat atau dihapus, atau status koneksi berubah seperti perangkat atau modul yang tersambung atau terputus. Untuk mengamati kejadian non-telemetri, Anda harus sudah mengonfigurasi rute pesan yang sesuai. Untuk mempelajari perutean pesan IoT Hub lebih lanjut, lihat perutean pesan IoT Hub.
Jenis peristiwa yang tersedia
Azure IoT Hub mengeluarkan kejadian non-telemetri dalam kategori berikut:
Kategori kejadian | Deskripsi |
---|---|
Kejadian status koneksi perangkat | Dikeluarkan saat perangkat tersambung atau terputus dari hub IoT. |
Kejadian siklus hidup perangkat | Dikeluarkan saat perangkat atau modul dibuat atau dihapus dari hub IoT. |
Kejadian perubahan kembar perangkat | Dikeluarkan saat kembar perangkat atau modul diubah atau diganti. |
Kejadian perubahan digital ganda | Dikeluarkan saat kembar digital perangkat atau modul diubah atau diganti. |
Properti kejadian umum
Kejadian non-telemetri memiliki beberapa properti yang sama.
Properti sistem
Properti sistem berikut diatur oleh IoT Hub pada setiap kejadian.
Properti | Jenis | Deskripsi | Kata kunci untuk kueri perutean |
---|---|---|---|
content-encoding | string | utf-8 | $contentEncoding |
content-type | untai (karakter) | application/json | $contentType |
correlation-id | untai (karakter) | ID unik yang mengidentifikasi kejadian. | $correlationId |
user_id | string | Nama IoT Hub yang menghasilkan kejadian. | $userId |
iothub-connection-device-id | string | ID perangkat. | $connectionDeviceId |
iothub-connection-module-id | string | ID modul. Properti ini output hanya untuk siklus hidup modul dan kejadian kembar. | $connectionModuleId |
iothub-enqueuedtime | angka | Waktu saat pemberitahuan dikirim. Dalam kueri perutean, gunakan stempel waktu ISO8601, misalnya, $enqueuedTime > "2022-06-06T22:56:06Z" |
$enqueuedTime |
iothub-message-source | string | Kategori kejadian yang mengidentifikasi sumber pesan. Misalnya deviceLifecycleEvents. | T/A |
Properti aplikasi
Properti aplikasi berikut diatur oleh IoT Hub pada setiap kejadian.
Properti | Jenis | Deskripsi |
---|---|---|
deviceId | string | ID perangkat. |
hubName | string | Nama IoT Hub yang telah menghasilkan kejadian. |
iothub-message-schema | string | Skema pesan yang terkait dengan kategori kejadian, misalnya deviceLifecycleNotification. |
moduleId | string | ID modul. Properti ini output hanya untuk siklus hidup modul dan kejadian perubahan kembar. |
operationTimestamp | string | Stempel waktu ISO8601 operasi. |
opType | string | Pengidentifikasi operasi yang telah menghasilkan kejadian. Misalnya createDeviceIdentity atau deleteDeviceIdentity. |
Dalam kueri perutean, gunakan nama properti. Contohnya:deviceId = "my-device"
Kejadian status koneksi
Kejadian status koneksi dikeluarkan setiap kali perangkat atau modul tersambung atau terputus dari hub IoT.
Properti aplikasi: Tabel berikut menunjukkan cara properti diatur untuk kejadian status koneksi:
Properti | Nilai |
---|---|
iothub-message-schema | deviceConnectionStateNotification |
opType | Salah satu dari nilai berikut: deviceConnected, deviceDisconnected, moduleConnected, atau moduleDisconnected. |
Properti sistem: Tabel berikut ini menunjukkan cara properti sistem diatur untuk kejadian status koneksi:
Properti | Nilai |
---|---|
iothub-message-source | deviceConnectionStateEvents |
Isi: Bagian isi berisi nomor urut. Nomor urut adalah representasi string dari angka heksadesimal. Anda dapat menggunakan perbandingan string untuk mengidentifikasi jumlah yang lebih besar. Jika Anda mengonversi string menjadi heks, angkanya akan menjadi angka 256 bit. Jumlah urutannya meningkat secara ketat, dan peristiwa terbaru akan memiliki jumlah yang lebih tinggi daripada peristiwa lainnya. Keterangan ini akan berguna jika Anda sering memiliki menyambungkan dan memutuskan perangkat, serta jika Anda ingin memastikan bahwa hanya kejadian terbaru saja yang digunakan untuk memicu tindakan hilir.
Contoh
JSON berikut menunjukkan kejadian status koneksi perangkat yang dikeluarkan saat perangkat terputus.
{
"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"
}
}
}
Kejadian siklus hidup perangkat
Kejadian siklus hidup perangkat dikeluarkan setiap kali perangkat atau modul dibuat atau dihapus dari registri identitas. Untuk informasi lebih lanjut mengenai waktu saat kejadian siklus hidup perangkat dihasilkan, lihat Pemberitahuan siklus hidup perangkat dan modul.
Properti aplikasi: Tabel berikut menunjukkan cara properti diatur untuk kejadian siklus hidup perangkat:
Properti | Nilai |
---|---|
iothub-message-schema | deviceLifecycleNotification |
opType | Salah satu dari nilai berikut: createDeviceIdentity, deleteDeviceIdentity, createModuleIdentity, atau deleteModuleIdentity. |
Properti sistem: Tabel berikut menunjukkan cara properti sistem diatur untuk kejadian siklus hidup perangkat:
Properti | Nilai |
---|---|
iothub-message-source | deviceLifecycleEvents |
Isi: Isi berisi representasi kembar perangkat atau kembar modul. Selain itu, isi juga mencakup ID perangkat dan ID modul, etag kembar, properti versi, serta tag, properti, dan metadata terkait kembar.
Contoh
JSON berikut menunjukkan kejadian siklus hidup perangkat yang dikeluarkan saat modul dibuat. Kejadian ini diambil dengan menggunakan perintah Azure CLI az iot hub monitor-events
.
{
"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
}
}
}
}
}
Kejadian perubahan kembar perangkat
Kejadian perubahan kembar perangkat akan dikeluarkan setiap kali kembar perangkat atau kembar modul diperbarui atau diganti. Dalam beberapa kasus, beberapa perubahan dapat disertakan pada satu paket dalam satu kejadian. Untuk mempelajari lebih lanjut, lihat Operasi backend kembar perangkat atau Operasi backend kembar modul.
Properti aplikasi: Tabel berikut menunjukkan cara properti diatur untuk kejadian perubahan kembar perangkat:
Properti | Nilai |
---|---|
iothub-message-schema | twinChangeNotification |
opType | Salah satu dari nilai berikut: replaceTwin atau updateTwin. |
Properti sistem: Tabel berikut menunjukkan cara properti sistem diatur untuk kejadian perubahan kembar perangkat:
Properti | Nilai |
---|---|
iothub-message-source | twinChangeEvents |
Isi: Pada suatu pembaruan, isi berisi properti versi kembar, dan tag serta properti sekaligus metadata terkait yang sudah diperbarui. Pada penggantian, isi berisi ID perangkat dan ID modul, etag kembar, properti versi, serta semua tag, properti, dan metadata terkait dari kembar perangkat atau modul.
Contoh
JSON berikut menunjukkan kejadian perubahan kembar yang dikeluarkan untuk pembaruan properti yang diinginkan dan tag pada kembar modul. Kejadian ini diambil dengan menggunakan perintah Azure CLI az iot hub monitor-events
.
{
"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
}
}
}
}
}
Langkah berikutnya
Untuk mempelajari perutean pesan lebih lanjut, lihat Perutean pesan IoT Hub.
Untuk mempelajari cara menambahkan kueri ke rute pesan Anda, lihat sintaks kueri perutean pesan IoT Hub.
Untuk mempelajari struktur pesan perangkat-ke-cloud dan cloud-ke-perangkat, lihat Membuat dan membaca pesan IoT Hub.