Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure IoT Hub terintegrasi dengan Azure Event Grid, sehingga pengguna dapat mengirim notifikasi kejadian ke layanan lain dan memicu proses hilir. Konfigurasikan aplikasi bisnis Anda untuk mendengarkan kejadian IoT Hub sehingga Anda dapat menanggapi kejadian penting dengan cara yang andal, dapat diskalakan, dan aman. Misalnya, bangun aplikasi yang memperbarui database, membuat tiket kerja, dan mengirimkan pemberitahuan email setiap kali perangkat IoT baru didaftarkan ke hub IoT Anda.
Azure Event Grid adalah layanan perutean peristiwa yang dikelola sepenuhnya yang menggunakan model publikasi-berlangganan. Event Grid memiliki dukungan bawaan untuk layanan Azure seperti Azure Functions dan Azure Logic Apps, dan dapat memberikan pemberitahuan kejadian ke layanan non-Azure menggunakan webhook. Untuk daftar lengkap penanganan aktivitas yang didukung Event Grid, lihat Apa itu Azure Event Grid?.
Untuk menonton video yang membahas integrasi ini, lihat Integrasi Azure IoT Hub dengan Azure Event Grid.
Ketersediaan regional
Integrasi Event Grid tersedia untuk hub IoT yang terletak di wilayah tempat Event Grid didukung. Untuk daftar wilayah terbaru, lihat Produk yang tersedia menurut wilayah.
Jenis peristiwa
Azure IoT Hub menerbitkan jenis kejadian berikut:
| Jenis peristiwa | Deskripsi |
|---|---|
| Microsoft.Devices.DeviceCreated | Diterbitkan saat perangkat didaftarkan ke hub IoT. |
| Microsoft.Devices.PerangkatDihapus | Diterbitkan saat perangkat dihapus dari hub IoT. |
| Microsoft.Devices.DeviceConnected | Diterbitkan saat perangkat disambungkan ke hub IoT. |
| Microsoft.Devices.DeviceDisconnected | Diterbitkan saat perangkat terputus sambungannya dari hub IoT. |
| Microsoft.Devices.DeviceTelemetry | Diterbitkan saat pesan telemetri perangkat dikirim ke hub IoT |
Gunakan portal Microsoft Azure atau Azure CLI untuk mengonfigurasi kejadian mana yang akan diterbitkan dari setiap hub IoT. Misalnya, coba tutorial Kirim pemberitahuan email tentang peristiwa Azure IoT Hub menggunakan Event Grid dan Logic Apps.
Skema peristiwa
Peristiwa IoT Hub mencakup semua informasi yang Anda butuhkan untuk merespons perubahan dalam siklus hidup perangkat Anda. Anda dapat mengidentifikasi peristiwa IoT Hub dengan memeriksa apakah properti eventType dimulai dengan Microsoft.Devices. Untuk informasi selengkapnya tentang cara menggunakan properti peristiwa Event Grid, lihat Skema peristiwa Azure Event Grid.
Skema perangkat terhubung
Contoh berikut menunjukkan skema peristiwa perangkat yang terhubung:
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceConnected",
"eventTime": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID",
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Skema telemetri perangkat
Pesan telemetri perangkat harus dalam format JSON yang valid dengan contentType dan contentEncoding masing-masing diatur ke application/json dan UTF-8 di properti sistem pesan. Kedua properti ini tidak peka huruf besar/kecil. Jika pengodean konten tidak diatur, maka IoT Hub menulis pesan dalam format berkode base 64.
Anda dapat memperkaya peristiwa telemetri perangkat sebelum dipublikasikan ke Event Grid dengan memilih titik akhir sebagai Event Grid. Untuk informasi selengkapnya, lihat Pengayaan pesan untuk pesan perangkat ke cloud IoT Hub.
Contoh berikut menunjukkan skema kejadian telemetri perangkat:
[{
"id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceTelemetry",
"eventTime": "2019-01-07T20:58:30.48Z",
"data": {
"body": {
"Weather": {
"Temperature": 900
},
"Location": "USA"
},
"properties": {
"Status": "Active"
},
"systemProperties": {
"iothub-content-type": "application/json",
"iothub-content-encoding": "utf-8",
"iothub-connection-device-id": "d1",
"iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"iothub-connection-auth-generation-id": "123455432199234570",
"iothub-enqueuedtime": "2019-01-07T20:58:30.48Z",
"iothub-message-source": "Telemetry"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Skema yang dibuat oleh perangkat
Contoh berikut menunjukkan skema kejadian yang dibuat perangkat:
[{
"id": "56afc886-767b-d359-d59e-0da7877166b2",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "Microsoft.Devices.DeviceCreated",
"eventTime": "2018-01-02T19:17:44.4383997Z",
"data": {
"twin": {
"deviceId": "LogicAppTestDevice",
"etag": "AAAAAAAAAAE=",
"deviceEtag":"null",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
}
}
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Peringatan
Data kembar yang terkait dengan peristiwa pembuatan perangkat adalah konfigurasi default dan tidak boleh diandalkan untuk properti perangkat aktual authenticationType dan lainnya di perangkat yang baru dibuat. Untuk authenticationType dan properti perangkat lainnya di perangkat yang baru dibuat, gunakan API manajer register yang disediakan di Azure IoT SDK.
Untuk detail deskripsi setiap properti, lihat Azure IoT Hub sebagai sumber Event Grid.
Filter peristiwa
Event Grid memungkinkan pemfilteran pada jenis peristiwa, subjek, dan konten data. Saat membuat langganan Event Grid, Anda dapat memilih untuk berlangganan kejadian IoT yang dipilih.
- Jenis peristiwa: Untuk daftar jenis peristiwa IoT Hub, lihat Jenis peristiwa.
- Subjek: Untuk peristiwa IoT Hub, subjeknya adalah nama perangkat. Subjek mengikuti format
devices/{deviceId}. Anda dapat memfilter subjek berdasarkan kecocokan Begins With (prefiks) dan Ends With (akhiran). Filter menggunakan operatorAND, sehingga peristiwa yang memiliki subjek yang sesuai dengan awalan dan akhiran dikirimkan kepada subscriber. - Konten data: IoT Hub mengisi konten data menggunakan format pesan. Anda dapat memilih peristiwa apa yang dikirimkan berdasarkan konten pesan telemetri. Misalnya, lihat Pemfilteran tingkat lanjut. Untuk pemfilteran pada isi pesan telemetri, Anda harus mengatur contentType ke application/json dan contentEncoding ke UTF-8 di properti sistem pesan. Kedua properti ini tidak peka terhadap perbedaan huruf besar/kecil.
Untuk peristiwa telemetri perangkat, IoT Hub membuat rute pesan default yang disebut RouteToEventGrid berdasarkan langganan. Untuk memfilter pesan sebelum data telemetri dikirim, perbarui kueri perutean.
Batasan untuk peristiwa status koneksi perangkat
Peristiwa koneksi dan pemutusan koneksi perangkat tersedia untuk perangkat yang terhubung menggunakan protokol MQTT atau AMQP, atau menggunakan salah satu dari kedua protokol ini melalui koneksi WebSocket. Permintaan yang dibuat hanya dengan HTTPS tidak memicu pemberitahuan status koneksi perangkat.
Untuk informasi selengkapnya tentang memantau status perangkat dengan Event Grid, lihat Memantau status koneksi perangkat.
Interval status konektivitas perangkat
IoT Hub mencoba melaporkan setiap peristiwa perubahan status koneksi perangkat, tetapi beberapa mungkin terlewatkan. Minimal, IoT Hub melaporkan peristiwa perubahan status koneksi yang terjadi 60 detik terpisah satu sama lain. Perilaku ini dapat menyebabkan hasil seperti beberapa peristiwa koneksi perangkat yang dilaporkan tanpa peristiwa pemutusan sambungan perangkat di antara mereka.
Tips untuk menghadiri acara
Aplikasi yang menangani kejadian IoT Hub harus mengikuti praktik yang disarankan ini:
- Beberapa langganan dapat dikonfigurasi untuk merutekan kejadian ke penanganan aktivitas yang sama, sehingga jangan anggap kejadian berasal dari sumber tertentu. Selalu periksa topik pesan untuk memastikan bahwa itu berasal dari hub IoT yang Anda harapkan.
- Jangan berasumsi bahwa semua kejadian yang Anda terima adalah jenis yang Anda harapkan. Selalu periksa eventType sebelum memproses pesan.
- Pesan dapat diterima tidak sesuai urutan atau setelah penundaan. Gunakan bidang etag untuk memahami apakah informasi Anda tentang objek sudah diperbarui untuk peristiwa yang melibatkan pembuatan perangkat atau penghapusan perangkat.