Configuración de puntos de conexión de flujo de datos MQTT
Importante
Versión preliminar de operaciones de Azure IoT: habilitada por Azure Arc está actualmente en versión preliminar. No se debería usar este software en versión preliminar en entornos de producción.
Deberá implementar una nueva instalación de Azure IoT Operations cuando esté disponible una versión general. No podrá actualizar una instalación de versión preliminar.
Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.
Los puntos de conexión de flujo de datos MQTT se usan para orígenes y destinos MQTT. Puede configurar los valores de punto de conexión, la seguridad de la capa de transporte (TLS), la autenticación y otras opciones.
Requisitos previos
- Una instancia de la versión preliminar de Operaciones de IoT de Azure
- Un perfil de flujo de datos configurado
Corredor MQTT local de Operaciones de IoT de Azure
Operaciones de IoT de Azure proporciona un corredor MQTT local integrado que puede usar con flujos de datos. Puede usar el corredor MQTT como origen para recibir mensajes de otros sistemas o como destino para enviar mensajes a otros sistemas.
Punto de conexión predeterminado
Al implementar Operaciones de IoT de Azure, se crea un punto de conexión de flujo de datos del corredor MQTT denominado "default" con la configuración predeterminada. Puede usar este punto de conexión como origen o destino para flujos de datos.
Importante
El punto de conexión predeterminado siempre debe usarse como origen o destino en cada flujo de datos. Para más información al respecto, consulte Los flujos de datos deben usar el punto de conexión del corredor MQTT local.
El punto de conexión predeterminado usa la siguiente configuración:
- Host:
aio-broker:18883
a través del cliente de escucha del corredor MQTT predeterminado - Autenticación: token de cuenta de servicio (SAT) a través del recurso BrokerAuthentication predeterminado
- TLS: habilitado
- Certificado de entidad de certificación de confianza: el certificado de entidad de certificación predeterminado
azure-iot-operations-aio-ca-trust-bundle
de la entidad de certificación raíz predeterminada
Precaución
No elimine el punto de conexión predeterminado. Si elimina el punto de conexión predeterminado, debe volver a crearlo con la misma configuración.
Para ver o editar la configuración predeterminada del punto de conexión del corredor MQTT:
En la experiencia de operaciones, seleccione los Puntos de conexión de flujo de datos.
Seleccione el punto de conexión predeterminado para ver o editar la configuración.
Crear nuevo punto de conexión
También puede crear nuevos puntos de conexión del corredor MQTT locales con la configuración personalizada. Por ejemplo, puede crear un nuevo punto de conexión de corredor MQTT mediante otro puerto, autenticación o configuración de autorización. Sin embargo, siempre debe usar el punto de conexión predeterminado como origen o destino en cada flujo de datos, incluso si crea nuevos puntos de conexión.
En la experiencia de operaciones, seleccione los Puntos de conexión de flujo de datos.
En Crear nuevo punto de conexión de flujo de datos, seleccione MQTT local de Operaciones de IoT de Azure>Nuevo.
Escriba la siguiente configuración para el punto de conexión:
Configuración Descripción Nombre Nombre del punto de conexión de flujo de datos. Host El nombre de host y el puerto del corredor MQTT. Utilice el formato <hostname>:<port>
Método de autenticación El método usado para la autenticación. Elija Token de cuenta de servicioo certificado X509 Audiencia del servicio Audiencia del token de la cuenta de servicio. Obligatorio si se usa el Token de la cuenta de servicio. Certificado de cliente X509 El certificado de cliente X.509 usado para la autenticación. Obligatorio si se usa el certificado X509. Clave de cliente X509 Clave privada correspondiente al certificado de cliente X.509. Obligatorio si se usa el certificado X509. Certificados intermedios X509 Los certificados intermedios para la cadena de certificados de cliente X.509. Obligatorio si se usa el certificado X509.
Azure Event Grid
Azure Event Grid proporciona un corredor MQTT totalmente administrado que funciona con flujos de datos de Operaciones de IoT de Azure. Para configurar un punto de conexión del corredor MQTT de Azure Event Grid, se recomienda usar la identidad administrada para la autenticación.
Configurar el espacio de nombres de Event Grid
Si aún no lo ha hecho, cree primero el espacio de nombres de Event Grid.
Habilitación de MQTT
Una vez que tenga un espacio de nombres de Event Grid, vaya a Configuración y compruebe lo siguiente:
- Habilitar MQTT: active la casilla.
- Número máximo de sesiones de cliente por nombre de autenticación establezca en 3 o más
La opción de sesiones cliente máximas es importante para que los flujos de datos puedan escalar verticalmente y seguir pudiendo conectarse. Para más información, consulte Compatibilidad con varias sesiones de MQTT de Event Grid.
Creación de un espacio de temas
Para que los flujos de datos envíen o reciban mensajes al corredor MQTT de Event Grid, debe crear al menos un espacio de temas en el espacio de nombres de Event Grid. Puede crear un espacio de temas en el espacio de nombres de Event Grid seleccionando Espacios de temas>Nuevo espacio de temas.
Para empezar y probar rápidamente, puede crear un espacio de temas con el tema genérico #
como plantilla de tema.
Asignación de permisos a la identidad administrada
Ahora que se crea el espacio de temas, debe asignar la identidad administrada de la extensión de Operaciones de IoT de Azure Arc al espacio de nombres o al espacio de temas de Event Grid.
En Azure Portal, ve al clúster de Kubernetes conectado a Arc y seleccione Configuración>Extensiones. En la lista de extensiones, busque el nombre de la extensión de Azure IoT Operations. Copie el nombre de la extensión.
A continuación, vaya al espacio de nombres de Event Grid >Control de acceso (IAM)>Agregar asignación de roles. Asigne la identidad administrada de la extensión de Operaciones de IoT de Azure Arc con un rol adecuado, como EventGrid TopicSpaces Publisher
o EventGrid TopicSpaces Subscriber
. Esto proporciona a la identidad administrada los permisos necesarios para enviar o recibir mensajes para todos los espacios de temas del espacio de nombres.
Como alternativa, puede asignar el rol en el nivel de espacio del tema. Vaya al espacio del tema >Control de acceso (IAM)>Agregar asignación de roles. Asigne la identidad administrada de la extensión de Operaciones de IoT de Azure Arc con un rol adecuado, como EventGrid TopicSpaces Publisher
o EventGrid TopicSpaces Subscriber
. Esto proporciona a la identidad administrada los permisos necesarios para enviar o recibir mensajes para el espacio de tema específico.
Creación de un punto de conexión de flujo de datos
Una vez configurado el espacio de nombres de Event Grid, puede crear un punto de conexión de flujo de datos para el corredor MQTT de Event Grid.
En la experiencia de operaciones, seleccione la pestaña Puntos de conexión de flujo de datos.
En Crear nuevo punto de conexión de flujo de datos, seleccione MQTT de Azure Event Grid>Nuevo.
Escriba la siguiente configuración para el punto de conexión:
Configuración Descripción Nombre Nombre del punto de conexión de flujo de datos. Host Nombre de host y puerto del corredor MQTT de Event Grid. Utilice el formato <NAMESPACE>.<REGION>-1.ts.eventgrid.azure.net:8883
Método de autenticación El método usado para la autenticación. Elija Identidad administrada asignada por el sistema Seleccione Aplicar para aprovisionar el punto de conexión.
Una vez creado el punto de conexión, puede usarlo en un flujo de datos para conectarse al corredor MQTT de Event Grid como origen o destino. Los temas de MQTT se configuran en el flujo de datos.
Uso de la autenticación de certificados X.509 con Event Grid
Se recomienda usar la identidad administrada para la autenticación. También puede usar la autenticación de certificados X.509 con el corredor MQTT de Event Grid.
Si utiliza la autenticación X.509 con el agente MQTT de Event Grid, vaya al espacio de nombres >Configuración de Event Grid y compruebe estos ajustes:
- Habilitar MQTT: active la casilla.
- Habilitar orígenes de nombres de autenticación de cliente alternativos: active la casilla.
- Nombre del firmante del certificado: seleccione esta opción en la lista desplegable.
- Número máximo de sesiones de cliente por nombre de autenticación establezca en 3 o más
Las opciones de autenticación de cliente alternativa y sesiones de cliente máximas permiten que los flujos de datos utilicen el nombre de sujeto del certificado del cliente para la autenticación en lugar de MQTT CONNECT Username
. Esta funcionalidad es importante para que los flujos de datos puedan generar múltiples instancias y seguir siendo capaces de conectarse. Para más información, consulte Soporte multisesión de autenticación de certificado de cliente MQTT de Event Grid.
A continuación, siga los pasos descritos en certificado X.509 para configurar el punto de conexión con la configuración del certificado X.509.
Limitación de la suscripción compartida de Event Grid
El corredor MQTT de Azure Event Grid no admite suscripciones compartidas, lo que significa que no se puede establecer el instanceCount
en más de 1
en el perfil de flujo de datos si Event Grid se usa como origen (donde el flujo de datos se suscribe a mensajes) para un flujo de datos. En este caso, si establece instanceCount
mayor que 1
, el flujo de datos no se puede iniciar.
Corredores MQTT personalizados
Para otros agentes MQTT, puede configurar el punto de conexión, TLS, autenticación y otros ajustes según sea necesario.
En la experiencia de operaciones, seleccione la pestaña Puntos de conexión de flujo de datos.
En Crear nuevo punto de conexión de flujo de datos, seleccione Corredor MQTT personalizado>Nuevo.
Escriba la siguiente configuración para el punto de conexión:
Configuración Descripción Nombre El nombre del punto de conexión de flujo de datos Host El nombre de host del punto de conexión del corredor MQTT con el formato <hostname>.<port>
.Método de autenticación El método usado para la autenticación. Elija identidad administrada asignada por el sistema, identidad administrada asignada por el usuario o Token de cuenta de servicio. Audiencia del servicio Audiencia del token de la cuenta de servicio. Obligatorio si se usa el token de la cuenta de servicio. Id. de cliente Id. de cliente de la identidad administrada asignada por el usuario. Obligatorio si se usa Identidad administrada asignada por el usuario. Id. de inquilino El id. de inquilino de la identidad administrada asignada por el usuario. Obligatorio si se usa Identidad administrada asignada por el usuario. Nombre del secreto del token de acceso Nombre del secreto de Kubernetes que contiene el token de SAS. Obligatorio si se usa token de acceso. Seleccione Aplicar para aprovisionar el punto de conexión.
Para personalizar la configuración del punto de conexión de MQTT, consulte las secciones siguientes para obtener más información.
Métodos de autenticación disponibles
Los siguientes métodos de autenticación están disponibles para puntos de conexión de flujo de datos del corredor MQTT. Para más información sobre cómo habilitar la configuración segura mediante la configuración de Azure Key Vault y la habilitación de identidades de carga de trabajo, consulte Habilitar la configuración segura en la implementación de la versión preliminar de operaciones de IoT de Azure.
Certificado X.509
Muchos agentes MQTT, como Event Grid, admiten la autenticación X.509. Los flujos de datos pueden presentar un certificado de cliente X.509 y negociar la comunicación TLS.
En la página de configuración del punto de conexión del flujo de datos de experiencia de operaciones, seleccione la pestaña Básico y, después, elija Método de autenticación>Certificado X509.
Escriba la siguiente configuración para el punto de conexión:
Configuración | Descripción |
---|---|
Certificado de cliente X509 | El certificado de cliente X.509 usado para la autenticación. |
Certificados intermedios X509 | Los certificados intermedios para la cadena de certificados de cliente X.509. |
Clave de cliente X509 | Clave privada correspondiente al certificado de cliente X.509. |
Identidad administrada asignada por el sistema
Para usar la identidad administrada asignada por el sistema para la autenticación, no es necesario crear un secreto. La identidad administrada asignada por el sistema se usa para autenticarse con el corredor MQTT.
Antes de configurar el punto de conexión, asegúrese de que la identidad administrada de Operaciones de IoT de Azure tiene los permisos necesarios para conectarse al corredor MQTT.
- En Azure Portal, vaya a la instancia de Operaciones de IoT de Azure y seleccione Información general.
- Copie el nombre de la extensión que se muestra después de la extensión de Arc de Operaciones de IoT de Azure. Por ejemplo, azure-iot-operations-xxxx7.
- Busque la identidad administrada en el Azure Portal utilizando el nombre de la extensión. Por ejemplo, busque azure-iot-operations-xxxx7.
- Asigne un rol a la identidad administrada de la extensión Azure IoT Operations Arc que conceda permiso para conectarse al agente MQTT. Por ejemplo, con el corredor MQTT de Azure Event Grid, asigne la identidad administrada al espacio de nombres o al espacio de temas de Event Grid con un rol adecuado, como o .
- Configure el punto de conexión con la configuración de identidad administrada asignada por el sistema.
En la página de configuración del punto de conexión del flujo de datos de experiencia de operaciones, seleccione la pestaña Básico y, después, elija Método de autenticación>Identidad administrada asignada por el sistema.
En la mayoría de los casos cuando se usa con Event Grid, puede dejar la configuración vacía como se muestra. Esto establece la audiencia de identidad administrada en la audiencia común de Event Grid https://eventgrid.azure.net
. Si necesita establecer una audiencia diferente, puede especificarla en la configuración.
No admitida.
Identidad administrada asignada por el usuario
Para usar la identidad administrada por el usuario para la autenticación, primero debe implementar Operaciones de IoT de Azure con la configuración segura habilitada. Para obtener más información, consulte Habilitación de la configuración segura en la implementación de Operaciones de IoT de Azure (versión preliminar).
A continuación, especifique el método de autenticación de identidad administrada asignada por el usuario junto con el identificador de cliente y el identificador de inquilino de la identidad administrada.
En la página de configuración del punto de conexión del flujo de datos de experiencia de operaciones, seleccione la pestaña Básico y, después, elija Método de autenticación>Identidad administrada asignada por el usuario.
Aquí, el ámbito es opcional y tiene como valor predeterminado https://eventgrid.azure.net/.default
, que funciona para todos los espacios de nombres de Azure Event Grid. Si necesita establecer un ámbito diferente, puede especificarlo en la configuración a través de Bicep o Kubernetes.
Token de cuenta de servicio de Kubernetes (SAT)
Para usar el token de cuenta de servicio de Kubernetes (SAT) para la autenticación, no es necesario crear un secreto. El SAT se usa para autenticarse con el corredor MQTT mediante la coincidencia con la audiencia.
En la página de configuración del punto de conexión del flujo de datos de la experiencia de operaciones, seleccione la pestaña Básico y, después, elija Método de autenticación>Token de cuenta de servicio.
Escriba el público del servicio.
Anónimas
Para usar la autenticación anónima, establezca el método de autenticación en Anonymous
.
Todavía no se admite en la experiencia de operaciones. Vea Problemas conocidos.
Configuración avanzada
Puede establecer la configuración avanzada para el punto de conexión de flujo de datos del corredor MQTT, como TLS, certificado de entidad de certificación de confianza, configuración de mensajería de MQTT y CloudEvents. Puede establecer esta configuración en el punto de conexión de flujo de datos de la pestaña del portal Avanzado, dentro del recurso personalizado del punto de conexión de flujo de datos.
En la experiencia de operaciones, seleccione el punto de conexión del flujo de datos de la pestaña Avanzado.
Configuración de TLS
Modo de TLS
Para habilitar o deshabilitar TLS para el punto de conexión de Kafka, actualice la configuración de mode
en la configuración de TLS.
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use la casilla situada junto a Modo TLS habilitado.
El modo TLS se puede establecer en Enabled
o Disabled
. Si el modo se establece en Enabled
, el flujo de datos usa una conexión segura al agente de Kafka. Si el modo se establece en Disabled
, el flujo de datos usa una conexión no segura al agente de Kafka.
Certificado de firma de confianza
Configure el certificado de entidad de certificación de confianza para el punto de conexión de MQTT para establecer una conexión segura con el corredor MQTT. Esta configuración es importante si el corredor MQTT usa un certificado autofirmado o un certificado firmado por una entidad de certificación personalizada que no es de confianza de forma predeterminada.
En la página de configuración del punto de conexión del flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el Mapa de configuración del certificado de entidad de certificación de confianza para especificar el ConfigMap que contiene el certificado de entidad de certificación de confianza.
Este ConfigMap debe contener el certificado de firma en formato PEM. ConfigMap debe estar en el mismo espacio de nombres que el recurso de flujo de datos de MQTT. Por ejemplo:
kubectl create configmap client-ca-configmap --from-file root_ca.crt -n azure-iot-operations
Sugerencia
Al conectarse al corredor MQTT de Event Grid, el certificado de firma no es necesario porque el servicio Event Hubs usa un certificado firmado por una entidad de certificación pública de confianza de forma predeterminada.
Prefijo de id. de cliente
Puede establecer un prefijo de identificador de cliente para el cliente MQTT. El identificador de cliente se genera anexando el nombre de la instancia del flujo de datos al prefijo.
Precaución
La mayoría de las aplicaciones no deben modificar el prefijo de identificador de cliente. No modifique esto después de una implementación inicial de operaciones de IoT. Cambiar el prefijo de identificador de cliente después de la implementación podría provocar la pérdida de datos.
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo de Prefijo de id. de cliente para especificar el prefijo.
QoS
Puede establecer el nivel calidad de servicio (QoS) para los mensajes MQTT en 1 o 0. El valor predeterminado es 1.
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo Quality of service (QoS) para especificar el nivel de QoS.
Retain
Use la configuración retain
para especificar si el flujo de datos debe mantener la marca de retención en los mensajes MQTT. El valor predeterminado es Keep
.
Establecer este campo en Keep
es útil para asegurarse de que el corredor remoto tiene los mismos mensajes retenidos que el corredor local, lo que puede ser importante para escenarios de espacio de nombres unificado (UNS).
Si se establece en Never
, la marca de retención se quita de los mensajes MQTT. Esto puede ser útil cuando no desea que el corredor remoto conserve ningún mensaje o si el corredor remoto no admite la retención.
Para configurar las opciones de retención:
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo de Conservar para especificar la configuración de retención.
La configuración conservar solo surte efecto si el flujo de datos usa el punto de conexión MQTT como origen y destino. Por ejemplo, en un escenario de puente MQTT.
Importante
El corredor MQTT de Azure Event Grid no admite actualmente la marca de retención. Esto significa que si establece la marca de retención en Keep
para un punto de conexión del corredor MQTT de Event Grid y se está usando como destino, los mensajes se rechazan. Para evitar esto, establezca la marca de retención en Never
al usar el corredor MQTT de Event Grid como destino.
Expiración de la sesión
Puede establecer el intervalo de expiración de la sesión para el cliente MQTT del flujo de datos. El intervalo de expiración de la sesión es el tiempo máximo que se mantiene una sesión MQTT si el cliente de flujo de datos se desconecta. El valor predeterminado es 3600 segundos. Para configurar el intervalo de expiración de la sesión:
En la página de configuración del punto de conexión de flujo de datos de experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo Expiración de sesión para especificar el intervalo de expiración de la sesión.
Protocolo MQTT o WebSockets
De forma predeterminada, WebSockets no está habilitado. Para usar MQTT sobre WebSockets, establezca el campo protocol
en WebSockets
.
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo de Protocolo para especificar el protocolo.
Número máximo de mensajes en curso
Puede establecer el número máximo de mensajes en curso que puede tener el corredor MQTT del flujo de datos. El valor predeterminado es 100.
En la página de configuración del punto de conexión del flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo Número máximo de mensajes en curso para especificar el número máximo de mensajes en curso.
Para suscribirse cuando se usa el punto de conexión MQTT como origen, este es el máximo de recepción. Para publicar cuando se usa el punto de conexión MQTT como destino, este es el número máximo de mensajes que se van a enviar antes de esperar una confirmación.
Mantener conexión
Puede establecer el intervalo de mantenimiento activo para el cliente MQTT del flujo de datos. El intervalo de mantenimiento activo es el tiempo máximo que el cliente de flujo de datos puede estar inactivo antes de enviar un mensaje PINGREQ al corredor. El valor predeterminado es 60 segundos.
En la página de configuración del punto de conexión de flujo de datos de experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo Mantener conexión para especificar el intervalo de mantenimiento de conexión.
CloudEvents
CloudEvents son una manera de describir los datos de eventos de una manera común. La configuración de CloudEvents se usa para enviar o recibir mensajes en el formato CloudEvents. Puede usar CloudEvents para arquitecturas controladas por eventos en las que distintos servicios necesitan comunicarse entre sí en los mismos o diferentes proveedores de nube.
Las opciones CloudEventAttributes
son Propagate
o CreateOrRemap
. Para configurar CloudEvents:
En la página de configuración del punto de conexión de flujo de datos de la experiencia de operaciones, seleccione la pestaña Avanzado y, a continuación, use el campo Atributos de eventos en la nube para especificar la configuración de CloudEvents.
En las secciones siguientes se proporciona más información sobre la configuración de CloudEvents.
Propagación de la configuración
Las propiedades de CloudEvent se pasan a través de los mensajes que contienen las propiedades necesarias. Si el mensaje no contiene las propiedades necesarias, el mensaje se pasa tal como está.
Nombre | Obligatorio | Valor de ejemplo | Valor de salida |
---|---|---|---|
specversion |
Sí | 1.0 |
Pasó a través tal y como está |
type |
Sí | ms.aio.telemetry |
Pasó a través tal y como está |
source |
Sí | aio://mycluster/myoven |
Pasó a través tal y como está |
id |
Sí | A234-1234-1234 |
Pasó a través tal y como está |
subject |
No | aio/myoven/telemetry/temperature |
Pasó a través tal y como está |
time |
No | 2018-04-05T17:31:00Z |
Pasó a través tal y como está. No se ha vuelto a marcar. |
datacontenttype |
No | application/json |
Se ha cambiado al tipo de contenido de datos de salida después de la fase de transformación opcional. |
dataschema |
No | sr://fabrikam-schemas/123123123234234234234234#1.0.0 |
Si se proporciona un esquema de transformación de datos de salida en la configuración de transformación, dataschema se cambia al esquema de salida. |
Configuración CreateOrRemap
Las propiedades de CloudEvent se pasan a través de los mensajes que contienen las propiedades necesarias. Si el mensaje no contiene las propiedades necesarias, se generan las propiedades.
Nombre | Obligatorio | Valor generado si falta |
---|---|---|
specversion |
Sí | 1.0 |
type |
Sí | ms.aio-dataflow.telemetry |
source |
Sí | aio://<target-name> |
id |
Sí | UUID generado en el cliente de destino |
subject |
No | Tema de salida en el que se envía el mensaje |
time |
No | Generado como RFC 3339 en el cliente de destino |
datacontenttype |
No | Se ha cambiado al tipo de contenido de datos de salida después de la fase de transformación opcional |
dataschema |
No | Esquema definido en el registro de esquemas |
Pasos siguientes
Para obtener más información sobre los flujos de datos, consulte Creación de un flujo de datos.