Compartir vía


Publicación de datos en un agente MQTT mediante la versión preliminar del procesador de datos de Azure IoT

Importante

Operaciones de IoT de Azure, habilitado 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.

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.

Use el destino MQ para publicar mensajes procesados en un agente MQTT, como una instancia de Azure IoT MQ Preview, en el perímetro. El procesador de datos se conecta a un agente MQTT mediante MQTT v5.0. El destino publica mensajes en el agente MQTT a medida que la fase las recibe. El destino MQ no admite el procesamiento por lotes.

Requisitos previos

Para configurar y usar una fase de canalización de destino, necesita una instancia implementada de Azure IoT Data Processor Preview.

Configuración del conmutador de destino

La configuración JSON del conmutador de destino de MQ define los detalles de la fase. Para crear la fase, puede interactuar con la interfaz de usuario basada en formularios o proporcionar la configuración JSON en la pestaña Opciones avanzadas:

Campo Tipo Descripción Necesario Valor predeterminado Ejemplo
Nombre String Un nombre para mostrar en la interfaz de usuario del procesador de datos. - MQTT broker output
Descripción String Una descripción sencilla de lo que hace la fase. No Write to topic default/topic1
Agente String Dirección del agente. - mqtt://mqttEndpoint.cluster.local:1111
Autenticación String Los detalles de autenticación para conectarse al agente MQTT. None/Username/Password/Service account token (SAT) Service account token (SAT) Username/Password
Nombre de usuario String Nombre de usuario que se va a usar cuando Authentication se establece en Username/Password. No - myusername
Contraseña String La referencia secreta para la contraseña que se va a usar cuando Authentication se establezca en Username/Password. No - mysecret
Tema Estático/dinámico La definición del tema. Cadena si el tipo es estático, ruta de acceso jq si el tipo es dinámico. - ".topic"
Formato de datos1 String El formato para serializar mensajes. - Raw
Propiedades de usuario Lista de pares clave/valor Lista de propiedades de usuario personalizadas que se van a establecer en cada mensaje MQTT. Puede incluir información estática o datos de cada mensaje. No []

| Reintentar | Reintentar | Directiva de reintento que se va a usar. | No | default | fixed |

1Formato de datos: use el serializador integrado del procesador de datos para serializar los mensajes en los siguientes Formats antes de publicar mensajes en el agente MQTT:

  • Raw
  • JSON
  • JSONStream
  • CSV
  • Protobuf
  • MessagePack
  • CBOR

Seleccione Raw cuando no necesite serialización. Envía los datos sin procesar al agente MQTT en su formato actual.

Configuración de ejemplo

En el ejemplo JSON siguiente se muestra una configuración completa del conmutador de destino de MQ que escribe todo el mensaje en el tema MQ pipelineOutput :

{
    "displayName": "MQ - 67e929",
    "type": "output/mqtt@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 992
        }
    },
    "broker": "tls://aio-mq-dmqtt-frontend:8883",
    "qos": 1,
    "authentication": {
        "type": "serviceAccountToken"
    },
    "topic": {
        "type": "static",
        "value": "pipelineOutput"
    },
    "format": {
        "type": "json",
        "path": "."
    },
    "userProperties": [],
    "retry": {
        "type": "fixed",
        "interval": "20s",
        "maxRetries": 4
    }
}

La configuración define que:

  • La autenticación se realiza mediante el token de cuenta de servicio.
  • El tema es una cadena estática denominada pipelineOutput.
  • El formato de salida es JSON.
  • La ruta de acceso de formato se . para asegurarse de que todo el mensaje del procesador de datos se escribe en MQ. Para escribir solo la carga, cambie la ruta de acceso a "payload".

Ejemplo

En el ejemplo siguiente se muestra un mensaje de entrada de ejemplo en el conmutador de destino de MQ:

{
  "payload": {
    "Batch": 102,
    "CurrentTemperature": 7109,
    "Customer": "Contoso",
    "Equipment": "Boiler",
    "IsSpare": true,
    "LastKnownTemperature": 7109,
    "Location": "Seattle",
    "Pressure": 7109,
    "Timestamp": "2023-08-10T00:54:58.6572007Z",
    "assetName": "oven"
  },
  "qos": 0,
  "systemProperties": {
    "partitionId": 0,
    "partitionKey": "quickstart",
    "timestamp": "2023-11-06T23:42:51.004Z"
  },
  "topic": "quickstart"
}