Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przestrzeń tematyczna reprezentuje wiele tematów poprzez zestaw szablonów tematów. Szablony tematów rozszerzają filtry tematów w MQTT o obsługę zmiennych, oprócz standardowych znaków wieloznacznych MQTT. Każda przestrzeń tematyczna reprezentuje tematy MQTT, z których korzysta ten sam zestaw klientów do komunikacji.
Przestrzenie tematyczne upraszczają kontrolę dostępu, pozwalając na jednoczesne publikowanie lub subskrypcję dostępu do grupy tematów, zamiast zarządzać dostępem dla każdego tematu osobno. Model kontroli dostępu łączy cztery zasoby, aby przyznać grupie klientów dostęp do publikowania lub subskrypcji przestrzeni tematycznej:
- Klient: Reprezentuje urządzenie lub aplikację komunikującą się przez MQTT.
- Grupa klientów: Grupuje klientów, którzy potrzebują tego samego dostępu do tego samego zestawu tematów MQTT.
- Przestrzeń tematyczna: Grupuje jeden lub więcej szablonów tematów reprezentujących zamierzone tematy lub filtry tematyczne.
- Powiązanie uprawnień: Przyznaje grupie klientów dostęp do publikowania lub subskrypcji w przestrzeni tematów.
Więcej informacji można znaleźć w artykule Kontrola dostępu dla klientów MQTT.
Ten artykuł wyjaśnia, jak filtry tematów MQTT, szablony tematów oraz konfiguracja przestrzeni tematycznej współgrają ze sobą, abyś mógł grupować powiązane tematy i efektywnie zarządzać dostępem klienta.
Filtry tematów MQTT
Filtr tematu MQTT to temat MQTT, który może zawierać symbole wieloznaczne w co najmniej jednym ze swoich segmentów, dzięki czemu pasuje do wielu tematów MQTT. Filtry tematyczne upraszczają prośby o subskrypcję, ponieważ jeden filtr tematyczny może pasować do wielu tematów.
Broker MQTT obsługuje wszystkie dzikie karty MQTT zdefiniowane przez specyfikację MQTT:
-
+odpowiada jednemu segmentowi. Na przykład filtrmachines/+/alerttematów odpowiada tym tematom:machines/temp/alertmachines/humidity/alert
-
#dopasowuje zero lub więcej segmentów na końcu tematu. Na przykład filtrmachines/#tematów odpowiada tym tematom:machinesmachines/tempmachines/humiditymachines/temp/alert
Więcej informacji o symbolach wieloznacznych można znaleźć w sekcji Symbole wieloznaczne tematów w specyfikacji MQTT.
Szablony tematów
Szablony topików rozszerzają filtry topików MQTT o obsługę zmiennych, poza symbolami wieloznacznymi MQTT. Konfiguracja przestrzeni tematycznej zapewnia również szczegółową kontrolę dostępu, pozwalając kontrolować autoryzację każdego klienta w grupie klienta do publikowania lub subskrypcji własnego tematu. Więcej informacji znajdziesz w tym, jak szablony tematów zapewniają szczegółową kontrolę dostępu.
Konfiguracja przestrzeni tematycznej
Przestrzeń tematyczna może grupować do 10 szablonów tematów. Szablony tematów obsługują dzikie karty MQTT (+ i #) oraz następujące zmienne:
-
${client.authenticationName}: Reprezentuje nazwę uwierzytelniającą klienta. Więcej informacji można znaleźć w kluczowych terminach metadanych klientów. -
${client.attributes.x}: Reprezentuje atrybut przypisany klientowi podczas jego tworzenia lub aktualizacji, gdziexjest dokładnym ciągiem klucza atrybutu. Na przykład, jeśli klient posiada atrybutarea:section1, szablonarea/${client.attributes.area}/telemetrytematu pozwala publikować tylko klientom z tym atrybutem na temaciearea/section1/telemetryMQTT . Więcej informacji można znaleźć w artykule o klientach MQTT.
Uwaga / Notatka
- Tematy, które zaczynają się od tego,
$są zarezerwowane dla użytku wewnętrznego. - Zmienna może reprezentować część segmentu lub cały segment, ale nie może obejmować więcej niż jednego segmentu. Na przykład szablon
machines/${client.authenticationName|.factory1}/temptematu odpowiada takim jakmachines/machine1.factory1/tempimachines/machine2.factory1/temp. - Szablony tematów używają znaków
$specjalnych i|, które możesz potrzebować uniknąć, w zależności od używanej powłoki. Na przykład w programie PowerShell poprzedź te znaki znakiem ucieczki, jak pokazano w poniższych przykładach:"vehicles/${client.authenticationName|dollar}/#"vehicles/${client.authenticationName"|"dollar}/#
Aby utworzyć przestrzeń tematyczną w portalu Azure lub za pomocą Azure CLI, zobacz Publikuj i subskrybuj komunikaty MQTT. Nazywając przestrzeń tematyczną, stosuj następujące zasady:
- Nazwa przestrzeni tematycznej może mieć od 3 do 50 znaków.
- Nazwa przestrzeni tematu może zawierać znaki alfanumeryczne i łączniki (
-), bez spacji.
Poniższy przykład Azure CLI tworzy przestrzeń tematyczną, która ma dwa szablony tematów:
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 / Notatka
Aktualizacje konfiguracji w przestrzeni tematycznej mogą trwać kilka minut, by się rozprzestrzenić.