Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um espaço temático representa múltiplos tópicos por meio de um conjunto de modelos de tópicos. Modelos de tópicos estendem os filtros de tópicos do MQTT com suporte a variáveis, além dos curingas padrão do MQTT. Cada espaço de tópicos representa os tópicos MQTT que o mesmo conjunto de clientes usa para se comunicar.
Os espaços de tópicos simplificam o controle de acesso ao permitir que você conceda, publique ou assine acesso a um grupo de tópicos ao mesmo tempo, em vez de gerenciar o acesso para cada tema individual. O modelo de controle de acesso combina quatro recursos para conceder a um grupo cliente acesso para publicar ou assinar um espaço temático:
- Cliente: Representa um dispositivo ou aplicação que se comunica via MQTT.
- Grupo cliente: Agrupa os clientes que precisam do mesmo acesso ao mesmo conjunto de tópicos MQTT.
- Espaço de tópicos: Agrupa um ou mais modelos de tópicos que representam os tópicos pretendidos ou filtros de tópicos.
- Vinculação de permissões: Concede a um grupo cliente acesso a publicar ou assinar a um espaço temático.
Para mais informações, veja Controle de acesso para clientes MQTT.
Este artigo explica como filtros de tópicos MQTT, modelos de tópicos e configuração do espaço de tópicos funcionam juntos, para que você possa agrupar tópicos relacionados e gerenciar o acesso dos clientes de forma eficiente.
Filtros de tópicos MQTT
Um filtro de tópico MQTT é um tópico MQTT que pode incluir curingas para um ou mais de seus segmentos, de modo que corresponda a múltiplos tópicos MQTT. Filtros de tópicos simplificam os pedidos de assinatura, porque um filtro de tópico pode corresponder a vários tópicos.
O broker MQTT oferece suporte a todos os caracteres curinga do MQTT definidos pela especificação MQTT:
-
+Corresponde a um único segmento. Por exemplo, o filtromachines/+/alertde tópicos corresponde a estes tópicos:machines/temp/alertmachines/humidity/alert
-
#corresponde a zero ou mais segmentos ao final do tópico. Por exemplo, o filtromachines/#de tópicos corresponde a estes tópicos:machinesmachines/tempmachines/humiditymachines/temp/alert
Para saber mais sobre curingas, consulte Curingas de tópico na especificação MQTT.
Modelos de tópicos
Modelos de tópicos estendem os filtros de tópicos do MQTT com suporte a variáveis, além dos curingas do MQTT. A configuração em espaço de tópicos também oferece controle de acesso granular, permitindo que você controle a autorização de cada cliente dentro de um grupo cliente para publicar ou assinar seu próprio tema. Para mais informações, veja como os modelos de tópicos fornecem controle de acesso granular.
Configuração do espaço tópico
Um espaço de tópicos pode agrupar até 10 modelos de tópicos. Os modelos de tópicos suportam os curingas do MQTT (+ e #) e as seguintes variáveis:
-
${client.authenticationName}: Representa o nome de autenticação do cliente. Para mais informações, veja termos-chave dos metadados do cliente. -
${client.attributes.x}: Representa um atributo atribuído a um cliente quando o cliente é criado ou atualizado, ondexé a string exata da chave de atributo. Por exemplo, se um cliente possui o atributoarea:section1, o modeloarea/${client.attributes.area}/telemetryde tópico permite que apenas clientes com esse atributo publiquem sobre o temaarea/section1/telemetryMQTT . Para mais informações, veja clientes MQTT.
Observação
- Tópicos que começam
$são reservados para uso interno. - Uma variável pode representar uma porção de um segmento ou um segmento inteiro, mas não pode cobrir mais de um segmento. Por exemplo, o modelo
machines/${client.authenticationName|.factory1}/tempde tópico corresponde a tópicos comomachines/machine1.factory1/tempemachines/machine2.factory1/temp. - Os modelos de tópicos usam os caracteres especiais
$e|, que talvez seja necessário escapar, dependendo do shell que você usa. Por exemplo, no PowerShell, escape estes caracteres conforme mostrado nos exemplos a seguir:"vehicles/${client.authenticationName|dollar}/#"vehicles/${client.authenticationName"|"dollar}/#
Para criar um espaço de tópico no portal do Azure ou com a CLI do Azure, consulte Publicar e assinar mensagens MQTT. Ao nomear um espaço de tópico, use estas regras:
- O nome de um espaço de tópico pode ter de 3 a 50 caracteres.
- O nome de um espaço de tópico pode incluir caracteres alfanuméricos e hífens (
-), sem espaços.
O exemplo a seguir do CLI do Azure cria um espaço de tópicos que possui dois templates de tópico:
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Observação
Atualizações de configuração em espaço de tópicos podem levar alguns minutos para serem propagadas.