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. | Sí | - | 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. | Sí | - | 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) |
Sí | 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. | Sí | - | ".topic" |
Formato de datos1 | String | El formato para serializar mensajes. | Sí | - | 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"
}