Titik akhir Azure IoT Hub

Azure IoT Hub memaparkan berbagai titik akhir untuk mendukung perangkat dan layanan yang berinteraksi dengannya.

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.

Nama IoT Hub

Anda dapat menemukan nama host hub IoT di portal Azure, di panel kerja Gambaran Umum hub IoT Anda. Secara default, nama DNS hub IoT terlihat seperti contoh berikut:

{your iot hub name}.azure-devices.net

Titik akhir IoT Hub untuk pengembangan dan manajemen

Azure IoT Hub adalah layanan multipenyewa yang mengekspos fungsionalitasnya ke berbagai aktor. Diagram berikut menunjukkan berbagai titik akhir yang diekspos IoT Hub.

Diagram memperlihatkan daftar titik akhir IoT Hub build-in.

Daftar berikut ini menjelaskan titik akhir:

  • Penyedia sumber daya: antarmuka Azure Resource Manager . Antarmuka ini memungkinkan pemilik langganan Azure membuat dan menghapus IoT Hub, dan memperbarui properti IoT Hub. Properti IoT Hub mengatur kebijakan akses bersama tingkat hub, dibandingkan dengan kontrol akses tingkat perangkat, dan opsi fungsional untuk pesan cloud-ke-perangkat dan perangkat-ke-cloud. Penyedia sumber IoT Hub juga memungkinkan Anda mengekspor identitas perangkat.

  • Manajemen identitas perangkat: sekumpulan titik akhir HTTPS REST untuk mengelola identitas perangkat (membuat, mengambil, memperbarui, dan menghapus). Identitas perangkat digunakan untuk autentikasi perangkat dan kontrol akses.

  • Manajemen kembar perangkat: sekumpulan titik akhir HTTPS REST yang menghadap layanan untuk mengkueri dan memperbarui kembar perangkat (memperbarui tag dan properti).

  • Manajemen pekerjaan: sekumpulan titik akhir HTTPS REST yang menghadap layanan untuk mengkueri dan mengelola pekerjaan.

  • Titik akhir perangkat: sekumpulan titik akhir untuk setiap perangkat di registri identitas. Kecuali jika disebutkan, titik akhir ini diekspos menggunakan protokol MQTT v3.1.1, HTTPS 1.1, dan AMQP 1.0. AMQP dan MQTT juga tersedia melalui WebSocket di port 443. Titik akhir perangkat ini meliputi:

    • Mengirim pesan perangkat ke cloud

    • Menerima pesan cloud-ke-perangkat

    • Memulai unggahan file

    • Mengambil dan memperbarui properti kembar perangkat (HTTPS tidak didukung)

    • Menerima permintaan metode langsung (HTTPS tidak didukung)

  • Titik akhir layanan: sekumpulan titik akhir untuk back end solusi Anda untuk berkomunikasi dengan perangkat Anda. Dengan satu pengecualian, titik akhir ini hanya diekspos menggunakan AMQP dan AMQP melalui protokol WebSockets. Titik akhir pemanggilan metode langsung diekspos melalui protokol HTTPS.

    • Menerima pesan perangkat ke cloud: Titik akhir ini adalah titik akhir bawaan yang dibahas dalam konsep perutean pesan. Layanan back-end dapat menggunakannya untuk membaca pesan perangkat-ke-cloud yang dikirim oleh perangkat Anda. Anda dapat membuat titik akhir kustom di IoT Hub Anda selain titik akhir bawaan ini.

    • Mengirim pesan cloud-ke-perangkat dan menerima pengakuan pengiriman

    • Menerima pemberitahuan unggahan file

    • Memanggil metode langsung

Artikel Azure IoT Hub SDK menjelaskan berbagai cara untuk mengakses titik akhir ini.

Semua titik akhir IoT Hub menggunakan protokol TLS, dan tidak ada titik akhir yang pernah diekspos pada saluran yang tidak terenkripsi/tidak aman.

Penting

Fungsionalitas berikut untuk perangkat yang menggunakan autentikasi otoritas sertifikat (CA) X.509 belum tersedia secara umum, dan mode pratinjau harus diaktifkan:

  • HTTPS, MQTT melalui WebSocket, dan AMQP melalui protokol WebSockets.
  • Unggahan file (semua protokol).

Fitur ini umumnya tersedia di perangkat yang menggunakan autentikasi thumbprint X.509. Untuk mempelajari selengkapnya tentang autentikasi X.509 dengan IoT Hub, lihat Sertifikat X.509 yang didukung.

Titik akhir kustom untuk perutean pesan

Anda dapat menautkan layanan Azure yang ada di langganan Azure ke IoT Hub Anda untuk bertindak sebagai titik akhir untuk perutean pesan. Titik akhir ini bertindak sebagai titik akhir layanan dan digunakan sebagai sink untuk rute pesan. Perangkat tidak dapat menulis langsung ke titik akhir ini. Untuk informasi selengkapnya tentang perutean pesan, lihat Menggunakan perutean pesan IoT Hub untuk mengirim pesan perangkat ke cloud ke titik akhir yang berbeda.

IoT Hub saat ini mendukung layanan Azure berikut sebagai titik akhir kustom:

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

Untuk batas titik akhir per hub, lihat Kuota dan pembatasan.

Titik Akhir bawaan

Anda dapat menggunakan Integrasi Azure Event Hubs dan SDK standar untuk menerima pesan perangkat ke cloud dari titik akhir bawaan (pesan/peristiwa). Setelah rute dibuat, data berhenti mengalir ke titik akhir bawaan kecuali rute dibuat ke titik akhir tersebut. Bahkan jika tidak ada rute yang dibuat, rute fallback harus diaktifkan untuk mengarahkan pesan ke titik akhir bawaan. Fallback diaktifkan secara default jika Anda membuat hub Menggunakan portal atau CLI.

Azure Storage sebagai titik akhir perutean

Ada dua layanan penyimpanan IoT Hub yang dapat merutekan pesan ke: akun Azure Blob Storage dan Azure Data Lake Storage Gen2 (ADLS Gen2). Keduanya menggunakan blob untuk penyimpanan.

IoT Hub mendukung penulisan data ke Azure Storage dalam format Apache Avro dan format JSON. Defaultnya adalah AVRO. Untuk menggunakan pengodean JSON, atur properti contentType ke properti application/json dan contentEncoding ke UTF-8 di properti sistem pesan. Kedua nilai ini tidak sensitif huruf besar/kecil. Jika pengodean konten tidak diatur, maka IoT Hub menulis pesan dalam format berkode base 64.

Format pengodean hanya dapat diatur ketika titik akhir penyimpanan blob dikonfigurasi; tidak dapat diedit untuk titik akhir yang ada.

IoT Hub mengelompokkan pesan dan menulis data ke penyimpanan setiap kali kumpulan mencapai ukuran tertentu atau waktu tertentu telah berlalu. IoT Hub default ke konvensi penamaan file berikut: {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}.

Anda dapat menggunakan konvensi penamaan file apa pun, tetapi Anda harus menggunakan semua token yang tercantum. IoT Hub menulis ke blob kosong jika tidak ada data untuk ditulis.

Sebaiknya cantumkan blob atau file lalu iterasi di atasnya, untuk memastikan bahwa semua blob atau file dibaca tanpa membuat asumsi partisi. Rentang partisi berpotensi berubah selama kegagalan yang dimulai Microsoft atau failover manual IoT Hub. Anda dapat menggunakan Daftar API Blob untuk menghitung daftar blob atau Daftar ADLS Gen2 API untuk daftar file. Contohnya:

public void ListBlobsInContainer(string containerName, string iothub)
{
    var storageAccount = CloudStorageAccount.Parse(this.blobConnectionString);
    var cloudBlobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference(containerName);
    if (cloudBlobContainer.Exists())
    {
        var results = cloudBlobContainer.ListBlobs(prefix: $"{iothub}/");
        foreach (IListBlobItem item in results)
        {
            Console.WriteLine(item.Uri);
        }
    }
}

Untuk membuat akun penyimpanan yang kompatibel dengan Azure Data Lake Gen2, buat akun penyimpanan V2 baru dan pilih Aktifkan namespace hierarkis dari bagian Data Lake Storage Gen2 dari tab Tingkat Lanjut , seperti yang ditunjukkan pada gambar berikut:

Cuplikan layar yang memperlihatkan cara memilih penyimpanan Azure Date Lake Gen2.

Bus Layanan antrean dan topik Bus Layanan sebagai titik akhir perutean

Antrean Bus Layanan dan topik yang digunakan sebagai titik akhir IoT Hub tidak boleh mengaktifkan Sesi atau Deteksi Duplikat. Jika salah satu dari opsi tersebut diaktifkan, titik akhir akan muncul sebagai Tidak dapat dijangkau di portal Azure.

Azure Event Hubs sebagai titik akhir perutean

Terlepas dari titik akhir yang kompatibel dengan Azure Event Hubs bawaan, Anda juga dapat merutekan data ke titik akhir khusus dari Azure Event Hubs jenis.

Azure Cosmos DB sebagai titik akhir perutean

Anda dapat mengirim data langsung ke Azure Cosmos DB dari IoT Hub. IoT Hub mendukung penulisan ke Cosmos DB di JSON (jika ditentukan dalam jenis konten pesan) atau sebagai biner yang dikodekan base 64.

Untuk mendukung skenario skala tinggi, Anda dapat mengaktifkan kunci partisi sintetis untuk titik akhir Cosmos DB. Karena Cosmos DB adalah penyimpanan data hyperscale, semua data/dokumen yang ditulis ke dalamnya harus berisi bidang yang mewakili partisi logis. Setiap partisi logis memiliki ukuran maksimum 20 GB. Anda dapat menentukan nama properti kunci partisi dalam nama kunci Partisi. Nama properti kunci partisi ditentukan pada tingkat kontainer dan tidak dapat diubah setelah ditetapkan.

Anda dapat mengonfigurasi nilai kunci partisi sintetis dengan menentukan templat dalam templat kunci Partisi berdasarkan perkiraan volume data Anda. Misalnya, dalam skenario manufaktur, partisi logis Anda mungkin diharapkan mendekati batas maksimum 20 GB dalam sebulan. Dalam hal ini, Anda dapat menentukan kunci partisi sintetis sebagai kombinasi ID perangkat dan bulan. Nilai kunci partisi yang dihasilkan secara otomatis ditambahkan ke properti kunci partisi untuk setiap rekaman Cosmos DB baru, memastikan partisi logis dibuat setiap bulan untuk setiap perangkat.

Perhatian

Jika Anda menggunakan identitas terkelola yang ditetapkan sistem untuk mengautentikasi ke Cosmos DB, Anda harus menggunakan Azure CLI atau Azure PowerShell untuk menetapkan definisi peran bawaan Kontributor Data Bawaan Cosmos DB ke identitas. Penetapan peran untuk Cosmos DB saat ini tidak didukung dari portal Azure. Untuk informasi selengkapnya tentang berbagai peran, lihat Mengonfigurasi akses berbasis peran untuk Azure Cosmos DB. Untuk memahami penetapan peran melalui CLI, lihat Mengelola sumber daya peran Azure Cosmos DB SQL.

Kesehatan Titik Akhir

Anda dapat menggunakan REST API Dapatkan Kesehatan Titik Akhir untuk mendapatkan status kesehatan titik akhir. Sebaiknya gunakan metrik perutean Azure IoT Hub yang terkait dengan latensi pesan perutean untuk mengidentifikasi dan men-debug kesalahan ketika kesehatan titik akhir mati atau tidak sehat, karena kami mengharapkan latensi menjadi lebih tinggi ketika titik akhir berada di salah satu kondisi bagian tersebut. Untuk mempelajari selengkapnya tentang penggunaan metrik Azure IoT Hub, lihat Pantau Azure IoT Hub.

Status Kesehatan Deskripsi
sehat Titik akhir menerima pesan seperti yang diharapkan.
tidak sehat Titik akhir tidak menerima pesan dan Azure IoT Hub mencoba mengirim pesan ke titik akhir ini.
unknown Azure IoT Hub belum mencoba mengirimkan pesan ke titik akhir ini.
diturunkan Titik akhir menerima pesan lebih lambat dari yang diharapkan atau pulih dari keadaan tidak sehat.
mati Azure IoT Hub tidak lagi mengirimkan pesan ke titik akhir ini. Upaya untuk mengirim pesan ke titik akhir ini gagal.

Langkah berikutnya

Pelajari selengkapnya tentang topik-topik ini: