Compartir a través de


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

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:

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:

  1. En la experiencia de operaciones, seleccione los Puntos de conexión de flujo de datos.

  2. Seleccione el punto de conexión predeterminado para ver o editar la configuración.

    Captura de pantalla que usa la experiencia de operaciones para ver el punto de conexión de flujo de datos de MQTT predeterminado.

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.

  1. En la experiencia de operaciones, seleccione los Puntos de conexión de flujo de datos.

  2. En Crear nuevo punto de conexión de flujo de datos, seleccione MQTT local de Operaciones de IoT de Azure>Nuevo.

    Recorte de pantalla del uso de la experiencia de operaciones para crear un nuevo punto de conexión de flujo de datos de MQTT local.

    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.

  1. En la experiencia de operaciones, seleccione la pestaña Puntos de conexión de flujo de datos.

  2. En Crear nuevo punto de conexión de flujo de datos, seleccione MQTT de Azure Event Grid>Nuevo.

    Captura de pantalla que usa la experiencia de operaciones para crear un punto de conexión de Azure Event Grid.

    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
  3. 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.

  1. En la experiencia de operaciones, seleccione la pestaña Puntos de conexión de flujo de datos.

  2. En Crear nuevo punto de conexión de flujo de datos, seleccione Corredor MQTT personalizado>Nuevo.

    Recorte de pantalla de uso de la experiencia de operaciones para crear un punto de conexión del corredor MQTT personalizado.

  3. 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.
  4. 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.

  1. En Azure Portal, vaya a la instancia de Operaciones de IoT de Azure y seleccione Información general.
  2. 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.
  3. Busque la identidad administrada en el Azure Portal utilizando el nombre de la extensión. Por ejemplo, busque azure-iot-operations-xxxx7.
  4. 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 .
  5. 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 1.0 Pasó a través tal y como está
type ms.aio.telemetry Pasó a través tal y como está
source aio://mycluster/myoven Pasó a través tal y como está
id 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 1.0
type ms.aio-dataflow.telemetry
source aio://<target-name>
id 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.