Aliran Perangkat Azure IoT Hub (pratinjau)
Aliran perangkat Azure IoT Hub memfasilitasi pembuatan terowongan TCP dua arah yang aman untuk berbagai skenario komunikasi cloud-ke-perangkat. Aliran perangkat dimediasi oleh IoT Hub *titik akhir streaming, yang bertindak sebagai proksi antara perangkat dan titik akhir layanan Anda. Penyiapan ini, yang digambarkan dalam diagram, sangat berguna ketika perangkat berada di belakang firewall jaringan atau berada di dalam jaringan privat. Dengan demikian, aliran perangkat IoT Hub membantu memenuhi kebutuhan pelanggan untuk menjangkau perangkat IoT dengan cara yang ramah firewall dan tanpa perlu membuka port firewall jaringan masuk atau keluar secara luas.
Dengan menggunakan aliran perangkat IoT Hub, perangkat tetap aman dan hanya perlu membuka koneksi TCP keluar ke titik akhir streaming Azure IoT hub melalui port 443. Setelah aliran dibuat, aplikasi sisi layanan dan sisi perangkat masing-masing memiliki akses terprogram ke objek klien WebSocket untuk mengirim dan menerima byte mentah satu sama lain. Keandalan dan jaminan pemesanan yang disediakan oleh terowongan ini setara dengan TCP.
Keuntungan
Aliran perangkat IoT Hub memberikan manfaat berikut:
Konektivitas aman yang ramah firewall: Perangkat IoT dapat dijangkau dari titik akhir layanan tanpa membuka port firewall masuk di perangkat atau perimeter jaringan (hanya konektivitas keluar ke IoT Hub yang diperlukan melalui port 443).
Autentikasi: Kedua sisi perangkat dan layanan tunnel perlu diautentikasi dengan IoT Hub menggunakan kredensial yang sesuai.
Enkripsi: Secara default, aliran perangkat IoT Hub menggunakan koneksi berkemampuan TLS. Faktor ini memastikan bahwa lalu lintas selalu dienkripsi terlepas dari apakah aplikasi menggunakan enkripsi atau tidak.
Kesederhanaan konektivitas: Dalam banyak kasus, penggunaan aliran perangkat menghilangkan kebutuhan untuk penyiapan Jaringan Pribadi Virtual yang rumit untuk mengaktifkan konektivitas ke perangkat IoT.
Kompatibilitas dengan tumpukan TCP/IP: Aliran perangkat IoT Hub dapat mengakomodasi lalu lintas aplikasi TCP/IP. Pendekatan ini berarti bahwa berbagai protokol eksklusif dan berbasis standar dapat menggunakan fitur ini.
Kemudahan penggunaan dalam penyiapan jaringan pribadi: Layanan dapat berkomunikasi dengan perangkat dengan merujuk ID perangkatnya, bukan alamat IP perangkat. Fakta ini berguna dalam situasi di mana perangkat terletak di dalam jaringan privat dan memiliki alamat IP privat, atau alamat IP-nya ditetapkan secara dinamis dan tidak diketahui oleh sisi layanan.
Alur kerja aliran perangkat
Aliran perangkat dimulai ketika layanan meminta untuk terhubung ke perangkat dengan memberikan ID perangkatnya. Alur kerja ini sangat cocok dengan model komunikasi klien/server, termasuk SSH dan RDP, di mana pengguna bermaksud untuk terhubung dari jarak jauh ke server SSH atau RDP yang berjalan di perangkat menggunakan program klien SSH atau RDP.
Proses pembuatan aliran perangkat melibatkan negosiasi antara perangkat, layanan, IoT hub utama, dan titik akhir streaming. Sementara titik akhir utama hub IoT mengatur pembuatan aliran perangkat, titik akhir streaming menangani lalu lintas yang mengalir antara layanan dan perangkat.
Alur pembuatan aliran perangkat
Pembuatan terprogram aliran perangkat menggunakan SDK melibatkan langkah-langkah berikut, yang juga digambarkan dalam gambar:
Aplikasi perangkat mendaftarkan panggilan balik terlebih dahulu untuk diberi tahu saat aliran perangkat baru dimulai ke perangkat. Langkah ini biasanya terjadi saat perangkat melakukan booting dan terhubung ke IoT Hub.
Program sisi layanan memulai aliran perangkat bila diperlukan dengan memberikan ID perangkat (bukan alamat IP).
IoT hub memberi tahu program sisi perangkat dengan memanggil panggilan balik yang terdaftar di langkah 1. Perangkat mungkin menerima atau menolak permintaan inisiasi aliran. Logika ini bisa spesifik untuk skenario aplikasi Anda. Jika perangkat menolak permintaan streaming, IoT Hub akan menginformasikan layanan yang sesuai; jika tidak, langkah-langkah berikut terjadi.
Perangkat membuat koneksi TCP keluar yang aman ke titik akhir streaming melalui port 443 dan meningkatkan koneksi ke WebSocket. URL titik akhir streaming dan kredensial yang akan digunakan untuk mengautentikasi keduanya disediakan untuk perangkat oleh IoT Hub sebagai bagian dari permintaan yang dikirim di langkah 3.
Layanan diberi tahu tentang hasil perangkat yang menerima aliran dan melanjutkan untuk membuat klien WebSocketnya sendiri ke titik akhir streaming. Demikian pula, ini menerima URL titik akhir streaming dan informasi autentikasi dari IoT Hub.
Dalam proses jabat tangan di atas:
Proses jabat tangan harus selesai dalam waktu 60 detik (langkah 2 hingga 5), jika tidak, jabat tangan akan gagal dengan batas waktu dan layanan akan diberi tahu.
Setelah alur pembuatan streaming di atas selesai, titik akhir streaming akan bertindak sebagai proxy dan akan mentransfer lalu lintas antara layanan dan perangkat melalui masing-masing WebSockets.
Perangkat dan layanan keduanya membutuhkan konektivitas keluar ke titik akhir utama IoT Hub dan titik akhir streaming melalui port 443. URL titik akhir ini tersedia di tab Ikhtisar di portal Azure IoT Hub.
Keandalan dan jaminan pemesanan dari aliran yang mapan setara dengan TCP.
Semua koneksi ke IoT Hub dan titik akhir streaming menggunakan TLS dan dienkripsi.
Aliran pemutusan
Aliran yang ditetapkan berakhir ketika salah satu koneksi TCP ke gateway terputus (oleh layanan atau perangkat). Tindakan ini dapat berlangsung secara sukarela dengan menutup WebSocket pada perangkat atau program layanan, atau tanpa sadar jika batas waktu konektivitas jaringan atau kegagalan proses. Setelah penghentian koneksi perangkat atau layanan ke titik akhir streaming, koneksi TCP lainnya juga (secara paksa) dihentikan dan layanan dan perangkat bertanggung jawab untuk membuat ulang aliran, jika diperlukan.
Persyaratan konektivitas
Perangkat dan sisi layanan aliran perangkat harus mampu membuat koneksi berkemampuan TLS ke IoT Hub dan titik akhir streamingnya. Situasi ini memerlukan konektivitas keluar melalui port 443 ke titik akhir ini. Nama host yang terkait dengan titik akhir ini dapat ditemukan di tab Gambaran Umum IoT Hub, seperti yang ditunjukkan pada gambar:
Alternatif lain, informasi titik akhir dapat diambil menggunakan Azure CLI di bawah bagian properti hub, khususnya, kunci property.hostname
dan property.deviceStreams
.
az iot hub devicestream show --name <YourIoTHubName>
Output adalah objek JSON dari semua titik akhir yang mungkin perlu disambungkan oleh perangkat dan layanan hub Anda untuk membuat aliran perangkat.
{
"streamingEndpoints": [
"https://<YourIoTHubName>.<region-stamp>.streams.azure-devices.net"
]
}
Catatan
Pastikan Anda telah memasang Azure CLI versi 2.0.57 atau yang lebih baru. Anda dapat mengunduh versi terbaru dari laman Pasang Azure CLI.
Izinkan konektivitas keluar ke titik akhir streaming perangkat
Seperti yang disebutkan di awal artikel ini, perangkat Anda membuat koneksi keluar ke titik akhir streaming IoT Hub selama proses inisiasi aliran perangkat. Firewall Anda di perangkat atau jaringannya harus mengizinkan konektivitas keluar ke gateway streaming melalui port 443 (perhatikan bahwa komunikasi terjadi melalui koneksi WebSocket yang dienkripsi menggunakan TLS).
Nama host titik akhir streaming perangkat dapat ditemukan di portal Azure IoT Hub di bawah tab Gambaran Umum.
Alternatif lain, Anda dapat menemukan informasi ini menggunakan Azure CLI:
az iot hub devicestream show --name <YourIoTHubName>
Catatan
Pastikan Anda telah memasang Azure CLI versi 2.0.57 atau yang lebih baru. Anda dapat mengunduh versi terbaru dari laman Pasang Azure CLI.
Memecahkan masalah melalui log sumber daya Aliran Perangkat
Anda dapat menyiapkan Azure Monitor untuk mengumpulkan log sumber daya untuk aliran perangkat yang dipancarkan oleh Azure IoT Hub Anda. Pendekatan ini dapat membantu dalam skenario pemecahan masalah.
Ikuti langkah-langkah ini untuk membuat pengaturan diagnostik untuk mengirim log aliran perangkat untuk IoT Hub Anda ke Log Azure Monitor:
Di portal Microsoft Azure, navigasikan ke IoT hub Anda. Di panel kiri, di bawah Pemantauan, pilih Pengaturan diagnostik. Kemudian pilih Tambahkan setelan diagnostik.
Berikan nama untuk pengaturan diagnostik Anda dan pilih DeviceStreams dari daftar log. Kemudian, pilih Kirim ke Analitik Log. Anda akan dipandu untuk memilih ruang kerja Analitik Log yang ada atau membuat yang baru.
Setelah Anda membuat pengaturan diagnostik untuk mengirim log aliran perangkat ke ruang kerja Analitik Log, Anda dapat mengakses log dengan memilih Log di bawah Pemantauan di panel kiri IoT hub Anda di porta Azure. Log aliran perangkat muncul dalam
AzureDiagnostics
tabel dan memilikiCategory=DeviceStreams
. Mungkin perlu waktu beberapa menit setelah operasi agar log muncul dalam tabel.Seperti yang ditunjukkan di sini, identitas perangkat target dan hasil operasi juga tersedia di log.
Untuk mempelajari lebih lanjut tentang menggunakan Azure Monitor dengan IoT Hub, lihat Memantau IoT Hub. Untuk informasi tentang semua log sumber daya, metrik, dan tabel yang tersedia untuk IoT Hub, lihat Memantau referensi data Azure IoT Hub.
Ketersediaan regional
Selama pratinjau publik, aliran perangkat IoT Hub tersedia di wilayah US Tengah, EUAP US Timur, Eropa Utara, dan Asia Tenggara. Pastikan Anda membuat hub di salah satu wilayah ini.
Ketersediaan SDK
Dua sisi dari setiap aliran (di sisi perangkat dan layanan) menggunakan IoT Hub SDK untuk membuat terowongan. Selama pratinjau publik, pelanggan dapat memilih dari bahasa SDK berikut:
Perangkat pendukung C dan C# SDK mengalir di sisi perangkat.
NodeJS dan C# SDK mendukung aliran perangkat di sisi layanan.