Share via


Publicar dados em um corretor MQTT usando o Azure IoT Data Processor Preview

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Use o destino MQ para publicar mensagens processadas para um corretor MQTT, como uma instância de pré-visualização do Azure IoT MQ, no limite. O processador de dados conecta-se a um agente MQTT usando MQTT v5.0. O destino publica mensagens no agente MQTT conforme o estágio as recebe. O destino do MQ não dá suporte ao envio em lote.

Pré-requisitos

Para configurar e usar um estágio de pipeline de destino, você precisa de uma instância implantada do Azure IoT Data Processor Preview.

Configurar o estágio de destino

A configuração JSON do estágio de destino do MQ define os detalhes do estágio. Para criar o estágio, você pode interagir com a interface do usuário baseada em formulário ou fornecer a configuração JSON na guia Avançado :

Campo Type Descrição Obrigatório Padrão Exemplo
Nome String Um nome a ser mostrado na interface do usuário do Processador de Dados. Sim - MQTT broker output
Descrição Cadeia de caracteres Uma descrição fácil de entender do que a fase faz. Não Write to topic default/topic1
Agente String O endereço do agente. Sim - mqtt://mqttEndpoint.cluster.local:1111
Autenticação String Os detalhes de autenticação a serem conectados ao agente MQTT. None/Username/Password/Service account token (SAT) Sim Service account token (SAT) Username/Password
Nome de Usuário String O nome de usuário a ser usado quando Authentication for definida como Username/Password. Não - myusername
Senha String A referência do segredo da senha a ser usada quando Authentication for definida como Username/Password. Não - mysecret
Tópico Estático/dinâmico A definição do tópico. Cadeia de caracteres se o tipo for estático, caminho jq se o tipo for dinâmico. Sim - ".topic"
Formato de dados 1 String O formato para o qual serializar mensagens. Sim - Raw
Propriedades do usuário Uma lista de pares chave-valor Lista de propriedades de usuário personalizadas a serem definidas em cada mensagem MQTT. Pode incluir informações estáticas ou dados de cada mensagem. Não []

| Repetição | Repetição | A política de repetição a ser usada. | Não | default | fixed |

1Formato de dados 1: use o serializador interno do Processador de Dados para serializar as mensagens nos seguintes formatos antes de publicá-las no agente MQTT:

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

Selecione Raw quando você não precisar de serialização. O Raw envia os dados para o agente MQTT em seu formato atual.

Exemplo de configuração

O exemplo JSON a seguir mostra uma configuração completa do estágio de destino do MQ que grava a mensagem inteira no tópico do 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
    }
}

A configuração define que:

  • A autenticação é feita usando o token da conta de serviço.
  • O tópico é uma cadeia de caracteres estática chamada pipelineOutput.
  • O formato de saída é JSON.
  • O caminho do formato é . para garantir que toda a mensagem do processador de dados seja gravada no MQ. Para gravar apenas o conteúdo, altere o caminho para ``.payload`.

Exemplo

O exemplo a seguir mostra uma mensagem de entrada de exemplo para o estágio de destino do 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"
}