Bagikan melalui


Ruang Topik di fitur broker MQTT Azure Event Grid

Ruang topik mewakili beberapa topik melalui serangkaian templat topik. Templat topik adalah ekstensi filter MQTT yang mendukung variabel, bersama dengan wildcard MQTT. Setiap ruang topik mewakili topik MQTT yang perlu digunakan set klien yang sama untuk berkomunikasi.

Ruang topik digunakan untuk menyederhanakan manajemen kontrol akses dengan memungkinkan Anda memberikan akses penerbitan atau berlangganan ke sekelompok topik sekaligus alih-alih mengelola akses untuk setiap topik individu. Untuk menerbitkan atau berlangganan topik MQTT apa pun, Anda perlu:

  1. Buat sumber daya klien untuk setiap klien yang perlu berkomunikasi melalui MQTT.
  2. Buat grup klien yang menyertakan klien yang memerlukan akses untuk menerbitkan atau berlangganan topik MQTT yang sama.
  3. Buat ruang topik yang menyertakan templat topik yang mewakili filter topik/topik yang dimaksudkan.
  4. Buat pengikatan izin untuk memberikan akses grup klien untuk menerbitkan atau berlangganan ruang topik.

Filter Topik MQTT:

Filter topik MQTT adalah topik MQTT yang dapat menyertakan kartubebas untuk satu atau beberapa segmennya, memungkinkannya untuk mencocokkan beberapa topik MQTT. Ini digunakan untuk menyederhanakan permintaan langganan karena satu filter topik dapat cocok dengan beberapa topik.

Broker MQTT mendukung semua wildcard MQTT yang ditentukan oleh spesifikasi MQTT sebagai berikut:

  • +: yang cocok dengan satu segmen.
    • Misalnya, filter topik: "machines/+/alert" cocok dengan topik berikut:
      • machines/temp/alert
      • mesin/kelembaban/pemberitahuan
  • #: yang cocok dengan nol atau lebih segmen di akhir topik.
    • Misalnya, filter topik: "machines/#" cocok dengan topik berikut:
      • machines
      • machines/temp
      • mesin/kelembaban
      • mesin/sementara/pemberitahuan dll.

Untuk informasi selengkapnya tentang wildcard, lihat Topik Wildcard dalam spesifikasi MQTT.

Templat topik

Templat topik adalah ekstensi filter MQTT yang mendukung variabel, bersama dengan wildcard MQTT. Konfigurasi ruang topik juga menyediakan kontrol akses terperinci dengan memungkinkan Anda mengontrol otorisasi setiap klien dalam grup klien untuk menerbitkan atau berlangganan topiknya sendiri. Pelajari selengkapnya tentang cara templat topik menyediakan kontrol akses terperinci.

Konfigurasi Ruang Topik:

Ruang Topik dapat mengelompokkan hingga 10 templat topik. Templat topik mendukung kartubebas MQTT (+ dan #) dan variabel berikut:

  • ${client.authenticationName}: variabel ini mewakili nama autentikasi klien. Pelajari selengkapnya tentang nama autentikasi klien.
  • ${client.attributes.x}: variabel ini mewakili atribut yang ditetapkan ke klien selama pembuatan/pembaruan klien, seperti "x" akan sama dengan string yang tepat dari kunci atribut. Misalnya, jika klien memiliki atribut , templat topik "area/${client.attributes.area}/telemetri" hanya memungkinkan klien dengan atribut> klien "area:section1" untuk menerbitkan topik MQTT "area/section1/telemetry". Pelajari selengkapnya tentang atribut klien.

Catatan:

  • Topik yang dimulai dengan $ dicadangkan untuk penggunaan internal.

  • Variabel dapat mewakili sebagian segmen atau seluruh segmen tetapi tidak dapat mencakup lebih dari satu segmen. Misalnya, templat topik dapat mencakup "machines/${client.authenticationName|. factory1}/temp" cocok dengan topik "machines/machine1.factory1/temp", "machines/machine2.factory1/temp", dll.

  • Templat topik menggunakan karakter khusus $ dan | dan ini perlu diloloskan secara berbeda berdasarkan shell yang digunakan. Di PowerShell, $ dapat diloloskan dengan kendaraan/${dollar}telemetri/#. Jika Anda menggunakan PowerShell, Anda dapat menghindari karakter khusus ini seperti yang ditunjukkan dalam contoh berikut:

    • "vehicles/${client.authenticationName|dollar}/#"

    • vehicles/${client.authenticationName"|"dollar}/#

konfigurasi portal Azure:

Gunakan langkah-langkah berikut untuk membuat ruang topik:

  • Buka namespace Anda di portal Azure.
  • Di bawah Ruang Topik, pilih +Ruang Topik.
  • Tetapkan Nama ke ruang topik Anda.

Catatan

  • Nama spasi topik panjangnya bisa 3-50 karakter.
  • Nama ruang topik dapat mencakup alfanumerik, tanda hubung(-) dan, tanpa spasi.
  • Tambahkan setidaknya satu templat topik dengan memilih +Tambahkan templat topik.
  • Pilih Buat.

Cuplikan layar konfigurasi ruang topik.

Konfigurasi Azure CLI:

Gunakan perintah berikut untuk membuat ruang topik:

az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]

Catatan

Pembaruan konfigurasi ruang topik mungkin memerlukan waktu beberapa menit untuk disebarluaskan.

Langkah berikutnya:

Pelajari lebih lanjut otorisasi dan autentikasi:

Mulai Cepat:

Konsep: