Menggunakan perutean pesan IoT Hub untuk mengirim pesan perangkat ke cloud ke layanan Azure

Perutean pesan memungkinkan Anda mengirim pesan dari perangkat Anda ke layanan cloud secara otomatis, dapat diskalakan, dan andal. Perutean pesan dapat digunakan untuk:

  • Kirim pesan telemetri perangkat dan peristiwa ke titik akhir bawaan dan titik akhir kustom. Peristiwa yang dapat dirutekan termasuk peristiwa siklus hidup perangkat, peristiwa perubahan kembar perangkat, peristiwa perubahan kembar digital, dan peristiwa status koneksi perangkat.

  • Filter data sebelum merutekannya dengan menerapkan kueri kaya. Perutean pesan memungkinkan Anda untuk menanyakan properti pesan dan isi pesan serta tag kembar perangkat dan properti kembar perangkat. Untuk informasi selengkapnya, lihat kueri dalam perutean pesan.

IoT Hub mendefinisikan format umum untuk semua olahpesan perangkat ke cloud untuk interoperabilitas lintas protokol. Untuk informasi selengkapnya, lihat Membuat dan membaca pesan IoT Hub.

Catatan

Beberapa fitur yang disebutkan dalam artikel ini, seperti pesan cloud-ke-perangkat, kembar perangkat, dan manajemen perangkat, hanya tersedia di tingkat standar IoT Hub. Untuk informasi selengkapnya tentang tingkat IoT Hub dasar dan standar/gratis, lihat Memilih tingkat IoT Hub yang tepat untuk solusi Anda.

Titik akhir perutean

Setiap hub IoT memiliki titik akhir perutean default yang disebut pesan/peristiwa yang kompatibel dengan Azure Event Hubs. Anda juga dapat membuat titik akhir kustom yang menunjuk ke layanan lain di langganan Azure Anda.

IoT Hub saat ini mendukung titik akhir berikut untuk perutean pesan:

  • Titik Akhir bawaan
  • Kontainer Storage
  • Antrean Microsoft Azure Service Bus
  • Topik Microsoft Azure Service Bus
  • Event Hubs
  • Cosmos DB

Untuk informasi selengkapnya tentang masing-masing titik akhir ini, lihat Titik akhir IoT Hub.

Setiap pesan dirutekan ke semua titik akhir yang kueri peruteannya cocok, yang berarti bahwa pesan dapat dirutekan ke beberapa titik akhir. Namun, jika pesan cocok dengan beberapa rute yang menunjuk ke titik akhir yang sama, IoT Hub mengirimkan pesan ke titik akhir tersebut hanya sekali.

IoT Hub memerlukan akses tulis ke titik akhir layanan ini agar perutean pesan berfungsi. Jika Anda mengonfigurasi titik akhir Anda melalui portal Azure, izin yang diperlukan ditambahkan untuk Anda. Jika Anda mengonfigurasi titik akhir menggunakan PowerShell atau Azure CLI, Anda perlu memberikan izin akses tulis.

Untuk mempelajari cara membuat titik akhir, lihat artikel berikut ini:

Pastikan Anda mengonfigurasi layanan untuk mendukung throughput yang diharapkan. Misalnya, jika Anda menggunakan Azure Event Hubs sebagai titik akhir kustom, Anda harus mengonfigurasi unit throughput untuk hub peristiwa tersebut sehingga dapat menangani masuknya peristiwa yang anda rencanakan untuk dikirim melalui perutean pesan IoT Hub. Demikian pula, saat menggunakan antrean Bus Layanan sebagai titik akhir, Anda harus mengonfigurasi ukuran maksimum untuk memastikan antrean dapat menahan semua data yang masuk, sampai keluar oleh konsumen. Saat pertama kali mengonfigurasi solusi IoT, Anda mungkin perlu memantau titik akhir lain dan membuat penyesuaian yang diperlukan untuk beban aktual.

Jika titik akhir khusus Anda memiliki konfigurasi firewall, pertimbangkan untuk menggunakan pengecualian pihak pertama tepercaya Microsoft.

Merutekan ke titik akhir di langganan lain

Jika sumber daya titik akhir berada dalam langganan yang berbeda dari hub IoT Anda, Anda perlu mengonfigurasi hub IoT Anda sebagai layanan Microsoft tepercaya sebelum membuat titik akhir kustom. Saat Anda membuat titik akhir kustom, atur jenis Autentikasi ke identitas yang ditetapkan pengguna.

Untuk informasi selengkapnya, lihat Konektivitas keluar dari IoT Hub ke sumber daya Azure lainnya.

Kueri perutean

Perutean pesan IoT Hub menyediakan kemampuan kueri untuk memfilter data sebelum merutekannya ke titik akhir. Setiap kueri perutean yang Anda konfigurasikan memiliki properti berikut:

Properti Deskripsi
Nama Nama unik yang mengidentifikasi kueri.
Sumber Asal aliran data yang akan ditindaklanjuti. Misalnya, telemetri perangkat.
Kondisi Ekspresi kueri untuk kueri perutean yang dijalankan terhadap properti aplikasi pesan, properti sistem, isi pesan, tag kembar perangkat, dan properti kembar perangkat untuk menentukan apakah cocok dengan titik akhir.
Endpoint Nama titik akhir tempat IoT Hub mengirim pesan yang cocok dengan kueri. Kami menyarankan agar Anda memilih titik akhir di wilayah yang sama dengan IoT Hub Anda.

Satu pesan mungkin cocok dengan kondisi pada beberapa kueri perutean, dalam hal ini IoT Hub mengirimkan pesan ke titik akhir yang terkait dengan setiap kueri yang cocok. IoT Hub juga secara otomatis mendeduplikasi pengiriman pesan, jadi jika pesan cocok dengan beberapa kueri yang memiliki tujuan yang sama, pesan hanya ditulis sekali ke tujuan tersebut.

Untuk informasi selengkapnya, lihat Sintaks kueri perutean pesan IoT Hub.

Membaca data yang telah dirutekan

Gunakan artikel berikut untuk mempelajari cara membaca pesan dari titik akhir.

Rute fallback

Rute fallback mengirimkan semua pesan yang tidak memenuhi kondisi kueri pada salah satu rute yang ada ke titik akhir bawaan (pesan/peristiwa), yang kompatibel dengan Azure Event Hubs. Jika perutean pesan diaktifkan, Anda dapat mengaktifkan kemampuan rute fallback. Setelah rute dibuat, data berhenti mengalir ke titik akhir bawaan, kecuali rute dibuat ke titik akhir tersebut. Jika tidak ada rute ke titik akhir bawaan dan rute fallback yang diaktifkan, hanya pesan yang tidak cocok dengan kondisi kueri apa pun pada rute yang akan dikirim ke titik akhir bawaan. Bahkan jika semua rute yang ada dihapus, kemampuan rute fallback harus diaktifkan untuk menerima semua data di titik akhir bawaan.

Anda dapat mengaktifkan atau menonaktifkan rute fallback di portal Azure pada bilah Perutean pesan. Anda juga dapat menggunakan Azure Resource Manager untuk FallbackRouteProperties untuk menggunakan titik akhir kustom untuk rute fallback.

Kejadian non-telemetri

Selain telemetri perangkat, perutean pesan juga memungkinkan pengiriman peristiwa non-telemetri, termasuk:

  • Kejadian perubahan kembar perangkat
  • Kejadian siklus hidup perangkat
  • Peristiwa siklus hidup pekerjaan perangkat
  • Kejadian perubahan digital ganda
  • Kejadian status koneksi perangkat

Misalnya, jika rute dibuat dengan sumber data yang diatur ke Peristiwa Perubahan Kembar Perangkat, IoT Hub mengirim pesan ke titik akhir yang berisi perubahan pada perangkat kembar. Demikian pula, jika rute dibuat dengan sumber data yang diatur ke Peristiwa Siklus Hidup Perangkat, IoT Hub mengirimkan pesan yang menunjukkan apakah perangkat atau modul dihapus atau dibuat. Untuk informasi selengkapnya tentang peristiwa siklus hidup perangkat, lihat Pemberitahuan siklus hidup perangkat dan modul.

Saat menggunakan Azure IoT Plug and Play, pengembang dapat membuat rute dengan sumber data yang diatur ke Peristiwa Perubahan Kembar Digital dan IoT Hub mengirim pesan setiap kali properti kembar digital diatur atau diubah, kembar digital diganti, atau ketika peristiwa perubahan terjadi untuk perangkat kembar yang mendasar. Terakhir, jika rute dibuat dengan sumber data diatur ke Peristiwa Status Koneksi ion Perangkat, IoT Hub mengirimkan pesan yang menunjukkan apakah perangkat tersambung atau terputus.

IoT Hub juga terintegrasi dengan Azure Event Grid untuk menerbitkan peristiwa perangkat guna mendukung integrasi waktu nyata dan otomatisasi alur kerja berdasarkan peristiwa ini. Lihat perbedaan utama antara perutean pesan dan Azure Event Grid untuk mempelajari mana yang paling sesuai untuk skenario Anda.

Batasan untuk peristiwa status sambungan perangkat

Peristiwa status koneksi perangkat tersedia untuk perangkat yang terhubung menggunakan protokol MQTT atau AMQP, atau menggunakan salah satu dari protokol ini melalui WebSockets. Permintaan yang dibuat hanya dengan HTTPS tidak akan memicu pemberitahuan status koneksi perangkat. Agar IoT Hub mulai mengirim peristiwa status koneksi perangkat, setelah membuka koneksi, perangkat harus memanggil operasi pesan yang diterima cloud-to-device atau operasi telemetri kirim perangkat-ke-cloud. Di luar SDK Azure IoT, di MQTT operasi ini sama dengan operasi SUBSCRIBE atau PUBLISH pada topik pesan yang sesuai. Melalui AMQP, operasi ini sama dengan melampirkan atau mentransfer pesan pada jalur tautan yang sesuai. Untuk informasi lebih lanjut, baca artikel berikut:

IoT Hub tidak melaporkan setiap peristiwa koneksi dan pemutusan perangkat individual, melainkan menerbitkan status koneksi saat ini yang diambil pada rekam jepret berkala 60 detik. Menerima peristiwa status koneksi yang sama dengan nomor urutan yang berbeda atau peristiwa status koneksi yang berbeda berarti bahwa ada perubahan dalam status koneksi perangkat selama jendela 60 detik.

Menguji rute

Saat Anda membuat rute baru atau mengedit rute yang sudah ada, Anda harus menguji kueri rute dengan pesan sampel. Anda dapat menguji rute individu atau menguji semua rute sekaligus dan tidak ada pesan yang dirutekan ke titik akhir selama pengujian. portal Azure, Azure Resource Manager, Azure PowerShell, dan Azure CLI dapat digunakan untuk pengujian. Hasil membantu mengidentifikasi apakah pesan sampel cocok atau tidak cocok dengan kueri, atau jika pengujian tidak dapat dijalankan karena contoh pesan atau sintaks kueri salah. Untuk mempelajari lebih lanjut, lihat Menguji Rute dan Menguji Semua Rute.

Latensi

Saat Anda merutekan pesan telemetri perangkat ke cloud, ada sedikit peningkatan latensi end-to-end setelah pembuatan rute pertama.

Dalam kebanyakan kasus, peningkatan rata-rata latensi kurang dari 500 milidetik. Tetapi, latensi yang Anda alami dapat bervariasi dan dapat lebih tinggi bergantung pada tingkat IoT hub dan arsitektur solusi Anda. Anda dapat memantau latensi menggunakan metrik Perutean: latensi pesan untuk pesan/peristiwa atau d2c.endpoints.latency.builtIn.events IoT Hub. Membuat atau menghapus rute apa pun setelah rute pertama tidak memengaruhi latensi end-to-end.

Pecahkan masalah

IoT Hub menyediakan beberapa metrik yang terkait dengan perutean dan titik akhir untuk memberi Anda ringkasan tentang kesehatan hub dan pesan yang dikirim. Anda juga dapat melacak kesalahan yang terjadi selama evaluasi kueri perutean dan kesehatan titik akhir seperti yang dirasakan oleh IoT Hub dengan kategori rute di log sumber daya IoT Hub. Untuk mempelajari selengkapnya tentang menggunakan metrik dan log sumber daya dengan IoT Hub, lihat Memantau Azure IoT Hub.

Anda dapat menggunakan REST API Get Endpoint Health untuk mendapatkan status kesehatan titik akhir.

Gunakan panduan pemecahan masalah untuk perutean untuk detail lebih lanjut dan dukungan untuk pemecahan masalah perutean.