Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un espacio temático representa múltiples temas a través de un conjunto de plantillas temáticas. Las plantillas de temas amplían los filtros de temas MQTT admitiendo variables, además de los comodines estándar de MQTT. Cada espacio temático representa los temas MQTT que el mismo conjunto de clientes utiliza para comunicarse.
Los espacios temáticos simplifican el control de acceso permitiéndote conceder o suscribirte el acceso a un grupo de temas a la vez, en lugar de gestionar el acceso para cada tema individual. El modelo de control de acceso combina cuatro recursos para otorgar a un grupo cliente acceso a publicar o suscribirse a un espacio temático:
- Cliente: Representa un dispositivo o aplicación que se comunica a través de MQTT.
- Grupo cliente: Agrupa a los clientes que necesitan el mismo acceso al mismo conjunto de temas MQTT.
- Espacio temático: Agrupa una o más plantillas de temas que representan los temas o filtros temáticos previstos.
- Vinculación de permisos: Concede a un grupo cliente acceso a publicar o suscribirse a un espacio temático.
Para más información, consulte Control de acceso para clientes MQTT.
Este artículo explica cómo los filtros de temas, las plantillas de temas y la configuración del espacio temático de MQTT funcionan juntos, para que puedas agrupar temas relacionados y gestionar el acceso de clientes de forma eficiente.
Filtros temáticos MQTT
Un filtro de temas MQTT es un tema MQTT que puede incluir comodines para uno o más de sus segmentos, de modo que coincida con varios temas MQTT. Los filtros temáticos simplifican las solicitudes de suscripción, porque un filtro de tema puede coincidir con varios temas.
El broker de MQTT admite todos los comodines MQTT definidos por la especificación de MQTT:
-
+coincide con un solo segmento. Por ejemplo, el filtromachines/+/alertde temas coincide con estos temas:machines/temp/alertmachines/humidity/alert
-
#coincide con cero o más segmentos al final del tema. Por ejemplo, el filtromachines/#de temas coincide con estos temas:machinesmachines/tempmachines/humiditymachines/temp/alert
Para más información sobre comodines, consulte comodines de tema en la especificación MQTT.
Plantillas de tema
Las plantillas de tópicos amplían los filtros de tópico de MQTT al admitir variables, además de los comodines de MQTT. La configuración en espacio temático también proporciona un control de acceso granular al permitirte controlar la autorización de cada cliente dentro de un grupo cliente para publicar o suscribirse a su propio tema. Para más información, consulta cómo las plantillas temáticas proporcionan un control de acceso granular.
Configuración del espacio de temas
Un espacio temático puede agrupar hasta 10 plantillas de temas. Las plantillas de temas soportan los comodines MQTT (+ y #) y las siguientes variables:
-
${client.authenticationName}: Representa el nombre de autenticación del cliente. Para más información, véase términos clave de los metadatos del cliente. -
${client.attributes.x}: Representa un atributo asignado a un cliente cuando se crea o actualiza el cliente, dondexes la cadena exacta de la clave de atributo. Por ejemplo, si un cliente tiene el atributoarea:section1, la plantillaarea/${client.attributes.area}/telemetryde tema permite que solo los clientes con ese atributo publiquen sobre el temaarea/section1/telemetryMQTT . Para más información, consulte clientes MQTT.
Nota:
- Los temas que empiezan
$están reservados para uso interno. - Una variable puede representar una porción de un segmento o un segmento completo, pero no puede cubrir más de un segmento. Por ejemplo, la plantilla
machines/${client.authenticationName|.factory1}/tempde tema coincide con temas comomachines/machine1.factory1/tempymachines/machine2.factory1/temp. - Las plantillas de temas usan los caracteres
$especiales y|, que puede que necesites escapar dependiendo del shell que utilices. Por ejemplo, en PowerShell, escapa estos caracteres como se muestra en los siguientes ejemplos:"vehicles/${client.authenticationName|dollar}/#"vehicles/${client.authenticationName"|"dollar}/#
Para crear un espacio temático en el portal de Azure o con la CLI de Azure, consulte Publicar y suscribirse a mensajes MQTT. Cuando nombres un espacio temático, usa estas reglas:
- El nombre de un espacio temático puede tener entre 3 y 50 caracteres.
- El nombre de un espacio temático puede incluir caracteres alfanuméricos y guiones (
-), sin espacios.
El siguiente ejemplo de CLI de Azure crea un espacio temático que tiene dos plantillas de temas:
az eventgrid namespace topic-space create -g myRG --namespace-name myNS -n myTopicSpace --topic-templates ['segment1/+/segment3/${client.authenticationName}', "segment1/${client.attributes.attribute1}/segment3/#"]
Nota:
Las actualizaciones de configuración en espacio temático pueden tardar un par de minutos en propagarse.