Bagikan melalui


Penerbitan HTTP pesan MQTT dengan Azure Event Grid (pratinjau)

AZURE Event Grid MQTT Broker HTTP Publish API memberdayakan pelanggan untuk menerbitkan pesan Message Queuing Telemetry Transport (MQTT) dengan menggunakan permintaan HTTP standar. Kemampuan ini melengkapi koneksi klien MQTT langsung. Ini menyediakan opsi sederhana dan dapat diskalakan untuk sistem sisi server yang lebih memilih HTTP untuk perintah dan kontrol server-ke-perangkat, pembaruan, atau manajemen pesan yang dipertahankan.

Nota

Fitur ini masih dalam mode pratinjau.

Manfaat utama:

  • Memungkinkan layanan back-end mengirim pesan MQTT tanpa membuka sesi MQTT persisten.
  • Membantu melindungi stabilitas broker dengan membatasi sesi MQTT per klien.
  • Memastikan pemrosesan yang konsisten untuk pesan yang berasal dari MQTT dan HTTP.

Kapan menggunakan PENERBITAN HTTP

Pertimbangkan untuk menggunakan HTTP Publish saat:

  • Layanan back-end Anda adalah HTTP asli dan perlu mengirim perintah perangkat atau pembaruan melalui MQTT.
  • Anda ingin mengelola pesan yang dipertahankan tanpa membuka koneksi MQTT.
  • Anda perlu meningkatkan kapasitas penerbitan tanpa menghabiskan batas sesi.

Cara kerjanya

  1. Klien HTTP mengeluarkan permintaan HTTP POST dengan detail Terbitkan MQTT.
  2. Event Grid memetakan bagian permintaan HTTP ke properti paket MQTT PUBLISH standar.
  3. Pesan mengalir melalui alur perutean dan pengayaan Event Grid, yang memastikan jaminan pengiriman dan menerapkan pengayaan atau transformasi apa pun.

Contoh: MQTT Publish setara

PUBLISH Topic Name: devices/CXa-23112/prompt  
QoS: 1  
RETAIN: 0  
Response Topic: devices/CXa-23112/reply  
Correlation Data: >U±¶¶»/  
User Property: Urgency = alert  
User Property: RequestId = 55f4a7ee-b0b4-4d7f-8eb5-2edba2ced5d7  
Payload: Please accept terms of licensing and agreement

Contoh: Permintaan Penerbitan HTTP

POST /mqtt/messages?topic=devices%2FCXa-23112%2Fprompt&api-version=2025-02-15-preview HTTP/1.1  
Host: nsname.westus3-1.ts.eventgrid.azure.net  
Authorization: Bearer <ENTRA_TOKEN_HERE>  
mqtt-qos: 1  
mqtt-retain: 0  
mqtt-response-topic: devices%2FCXa-23112%2Freply  
mqtt-correlation-data: PlXCscK2wrbCuy8=  
mqtt-user-properties: W3siVXJnZW5jeSI6ImFsZXJ0In0seyJSZXF1ZXN0SWQiOiI1NWY0YTdlZS1iMGI0LTRkN2YtOGViNS0yZWRiYTJjZWQ1ZDcifV0=  
Content-Type: text/plain;charset=UTF-8  
Date: Sun, 06 Nov 1994 08:49:37 GMT  
Content-Length: 46  

Please accept terms of licensing and agreement

Parameter permintaan tersebut

Tabel berikut ini menjelaskan bagaimana bagian permintaan HTTP memetakan ke properti paket MQTT PUBLISH. Lihat dokumentasi asli untuk detail selengkapnya.

Bagian Terbitkan MQTT Jenis/Nilai Lokasi Diperlukan Description
Nama topik String yang dikodekan persen Kueri topic Ya Topik MQTT untuk dipublikasikan
QoS 0 atau 1 Kueri qos atau header mqtt-qos Tidak [default = 1] Tingkat Kualitas Layanan (QoS)
RETAIN bendera 0 atau 1 Kueri retain atau header mqtt-retain Tidak [default = 0] Apakah akan mempertahankan pesan
Topik respons String yang dikodekan persen Header mqtt-response-topic Tidak. Topik respons jika diperlukan
Data korelasi String Base64 Header mqtt-correlation-data Tidak. Data tambahan untuk pelacakan
Properti pengguna Array JSON Base64 Judul mqtt-user-properties Tidak. Properti pengguna kustom
Jenis konten string Header content-type Tidak. Jenis payload
Interval kedaluwarsa pesan Bilangan bulat tidak ditandatangani Header mqtt-message-expiry Tidak. Periode retensi dalam hitungan detik
Indikator format payload 0 atau 1 Header mqtt-payload-format-indicator Tidak [default = 0] Indikator format
Payload Bita Isi HTTP Tidak. Isi pesan

Notes:

  • Nilai parameter kueri mengambil alih nilai header jika keduanya ada.
  • Pengodean persen diperlukan untuk topik dan topik respons.
  • Data korelasi harus dikodekan Base64.

Langkah-langkah tingkat tinggi untuk menggunakan HTTP Publish

  1. Siapkan token pembawa ID Microsoft Entra Anda untuk autentikasi.
  2. Buat permintaan HTTP POST Anda ke titik akhir broker Event Grid MQTT Anda.
  3. Sertakan parameter kueri yang diperlukan, seperti topik.
  4. Tambahkan header opsional untuk QoS, RETAIN bendera, topik respons, dan properti pengguna.
  5. Tambahkan payload Anda sebagai isi HTTP.
  6. Kirim permintaan.
  7. Konfirmasi pengiriman melalui log dan metrik di portal Event Grid.

Autentikasi dan otorisasi

  • PENERBITAN HTTP menggunakan ID Microsoft Entra untuk autentikasi.
  • Token pembawa diperlukan di header otorisasi.
  • ID Objek Microsoft Entra menjadi ID klien MQTT.
  • Model AuthN/AuthZ selaras dengan koneksi MQTT standar.

Perutean dan pengamatan

Metrik dan log meliputi:

  • Protokol: http-publish
  • Nomor ID Permintaan
  • Topik
  • Alamat IP Sumber
  • Perwakilan otorisasi

Praktik terbaik

  • Gunakan tombol header huruf kecil jika memungkinkan. Kunci header HTTP/2 tidak peka huruf besar/kecil.
  • Pantau throughput karena pesan HTTP cenderung lebih besar dari pesan MQTT langsung.
  • Amati bahwa HTTP Publish berbagi batas throughput dengan pesan langsung yang diterbitkan MQTT.

Pengendalian kecepatan

HTTP Publish menghitung kuota throughput MQTT Anda secara keseluruhan. Pantau penggunaan Anda untuk menghindari melebihi batas.