Udostępnij za pośrednictwem


Miejsca tematów w funkcji brokera MQTT usługi Azure Event Grid

Obszar tematu reprezentuje wiele tematów za pomocą zestawu szablonów tematów. Szablony tematów to rozszerzenie filtrów MQTT, które obsługują zmienne wraz z symbolami wieloznacznymi MQTT. Każde miejsce tematu reprezentuje tematy MQTT, których ten sam zestaw klientów musi używać do komunikacji.

Przestrzenie tematów służą do upraszczania zarządzania kontrolą dostępu, umożliwiając przyznawanie dostępu publikowania lub subskrybowania do grupy tematów jednocześnie zamiast zarządzania dostępem dla każdego pojedynczego tematu. Aby opublikować lub zasubskrybować dowolny temat MQTT, musisz:

  1. Utwórz zasób klienta dla każdego klienta, który musi komunikować się za pośrednictwem protokołu MQTT.
  2. Utwórz grupę klientów zawierającą klientów, którzy potrzebują dostępu do publikowania lub subskrybowania tego samego tematu MQTT.
  3. Utwórz przestrzeń tematu zawierającą szablon tematu, który reprezentuje zamierzony filtr tematu/tematu.
  4. Utwórz powiązanie uprawnień, aby udzielić grupie klienta dostępu do publikowania lub subskrybowania obszaru tematu.

Filtr tematu MQTT:

Filtr tematu MQTT jest tematem MQTT, który może zawierać symbole wieloznaczne dla co najmniej jednego segmentu, co umożliwia dopasowanie wielu tematów MQTT. Służy do upraszczania żądań subskrypcji, ponieważ jeden filtr tematu może być zgodny z wieloma tematami.

Broker MQTT obsługuje wszystkie symbole wieloznaczne MQTT zdefiniowane przez specyfikację MQTT w następujący sposób:

  • +: który pasuje do pojedynczego segmentu.
    • Na przykład filtr tematu: "machines/+/alert" jest zgodny z następującymi tematami:
      • maszyny/temp/alert
      • maszyny/wilgotność/alert
  • #: który pasuje do zera lub większej liczby segmentów na końcu tematu.
    • Na przykład filtr tematu: "machines/#" jest zgodny z następującymi tematami:
      • Maszyny
      • maszyny/temp
      • maszyny/wilgotność
      • maszyny/temp/alert itp.

Aby uzyskać więcej informacji na temat symboli wieloznacznych, zobacz Temat Symbole wieloznaczne w specyfikacji MQTT.

Szablony tematów

Szablony tematów to rozszerzenie filtrów MQTT, które obsługują zmienne wraz z symbolami wieloznacznymi MQTT. Konfiguracja obszarów tematów zapewnia również szczegółową kontrolę dostępu, umożliwiając kontrolowanie autoryzacji każdego klienta w grupie klienta w celu publikowania lub subskrybowania własnego tematu. Dowiedz się więcej o tym, jak szablony tematów zapewniają szczegółową kontrolę dostępu.

Konfiguracja obszaru tematu:

Miejsca do tematów mogą grupować maksymalnie 10 szablonów tematów. Szablony tematów obsługują symbole wieloznaczne MQTT (+ i #) oraz następujące zmienne:

  • ${client.authenticationName}: ta zmienna reprezentuje nazwę uwierzytelniania klienta. Dowiedz się więcej o nazwach uwierzytelniania klientów.
  • ${client.attributes.x}: ta zmienna reprezentuje przypisany atrybut do klienta podczas tworzenia/aktualizowania klienta, taki jak "x", byłby równy dokładnemu ciągowi klucza atrybutu. Na przykład jeśli klient ma atrybut, szablon tematu "area/${client.attributes.area}/telemetry" włącza tylko klientów z atrybutem> klienta "area:section1" do opublikowania w temacie MQTT "area/section1/telemetry". Dowiedz się więcej o atrybutach klienta.

Uwaga:

  • Tematy rozpoczynające się od $ są zarezerwowane do użytku wewnętrznego.

  • Zmienna może reprezentować część segmentu lub całego segmentu, ale nie może obejmować więcej niż jednego segmentu. Na przykład szablon tematu może zawierać ciąg "machines/${client.authenticationName|. factory1}/temp" pasuje do tematów "machines/machine1.factory1/temp", "machines/machine2.factory1/temp" itp.

  • Szablony tematów używają znaków specjalnych $ i | i muszą one zostać inaczej uniknięte w zależności od używanej powłoki. W programie PowerShell $ można uciec za pomocą pojazdów/${dollar}telemetrii/#. Jeśli używasz programu PowerShell, możesz użyć tych znaków specjalnych, jak pokazano w poniższych przykładach:

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

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

Konfiguracja witryny Azure Portal:

Aby utworzyć obszar tematu, wykonaj następujące kroki:

  • Przejdź do przestrzeni nazw w witrynie Azure Portal.
  • W obszarze Miejsca do tematów wybierz pozycję +Obszar tematu.
  • Przypisz nazwę do obszaru tematu.

Uwaga

  • Nazwa obszaru tematu może mieć długość od 3 do 50 znaków.
  • Nazwa obszaru tematu może zawierać alfanumeryczne, łączniki(-) i bez spacji.
  • Dodaj co najmniej jeden szablon tematu, wybierając pozycję +Dodaj szablon tematu.
  • Wybierz pozycję Utwórz.

Zrzut ekranu przedstawiający konfigurację obszaru tematu.

Konfiguracja interfejsu wiersza polecenia platformy Azure:

Użyj następujących poleceń, aby utworzyć obszar tematu:

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

Uwaga

Propagacja aktualizacji konfiguracji obszaru tematu może potrwać kilka minut.

Następne kroki:

Dowiedz się więcej o autoryzacji i uwierzytelnianiu:

Szybki start:

Pojęcia: