Bagikan melalui


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 titik akhir streaming IoT Hub yang bertindak sebagai proksi antara perangkat Anda dan titik akhir layanan. Pengaturan ini, digambarkan dalam diagram di bawah, sangat berguna ketika perangkat berada di belakang firewall jaringan atau berada di dalam jaringan pribadi. 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 akan 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. Hal 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. Ini berarti bahwa berbagai protokol berpemilik serta berbasis standar dapat memanfaatkan fitur ini.

  • Kemudahan penggunaan dalam penyiapan jaringan pribadi: Layanan dapat berkomunikasi dengan perangkat dengan merujuk ID perangkatnya, bukan alamat IP perangkat. Ini berguna dalam situasi di mana perangkat terletak di dalam jaringan pribadi dan memiliki alamat IP pribadi, 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 aliran perangkat secara terprogram menggunakan SDK melibatkan langkah-langkah berikut, yang juga digambarkan dalam gambar di bawah ini:

  1. 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.

  2. Program sisi layanan memulai aliran perangkat bila diperlukan dengan memberikan ID perangkat (bukan alamat IP).

  3. IoT hub memberi tahu program sisi perangkat dengan memanggil panggilan balik yang terdaftar di langkah 1. Perangkat dapat menerima atau menolak permintaan inisiasi streaming. Logika ini bisa spesifik untuk skenario aplikasi Anda. Jika permintaan streaming ditolak oleh perangkat, IoT Hub menginformasikan layanan yang sesuai; jika tidak, ikuti langkah-langkah di bawah ini.

  4. Perangkat membuat koneksi TCP keluar yang aman ke titik akhir streaming melalui port 443 dan meningkatkan koneksi ke WebSocket. URL titik akhir streaming serta kredensial yang digunakan untuk mengautentikasi keduanya disediakan ke perangkat oleh IoT Hub sebagai bagian dari permintaan yang dikirim pada langkah 3.

  5. 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 memerlukan konektivitas keluar ke titik akhir utama IoT Hub serta 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). Hal ini dapat terjadi secara sukarela dengan menutup WebSocket pada perangkat atau program layanan, atau secara tidak sengaja jika terjadi waktu habis konektivitas jaringan atau kegagalan proses. Setelah penghentian koneksi perangkat atau layanan ke titik akhir streaming, koneksi TCP lainnya juga akan (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. Hal ini membutuhkan konektivitas keluar melalui port 443 ke titik akhir ini. Nama host yang terkait dengan titik akhir ini dapat ditemukan di tab Ringkasan di IoT Hub, seperti yang ditunjukkan pada gambar di bawah ini:

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>

Outputnya 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. Hal ini bisa sangat membantu dalam skenario pemecahan masalah.

Ikuti langkah-langkah di bawah ini untuk membuat pengaturan diagnostik guna mengirim log aliran perangkat untuk IoT Hub Anda ke Azure Monitor Logs:

  1. Di portal Microsoft Azure, navigasikan ke IoT hub Anda. Di panel kiri, di bawah Pemantauan, pilih Pengaturan diagnostik. Kemudian pilih Tambahkan setelan diagnostik.

  2. 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.

    Enable device streams logs

  3. 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 akan muncul di tabel AzureDiagnostics dan memiliki Category=DeviceStreams. Ketahuilah bahwa mungkin diperlukan beberapa menit setelah pengoperasian agar log muncul di tabel.

    Seperti yang ditunjukkan di bawah ini, identitas perangkat target dan hasil pengoperasian 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.

Langkah berikutnya

Gunakan tautan di bawah untuk mempelajari lebih lanjut tentang aliran perangkat.