Share via


Estrutura de mensagens em pipelines na Versão Prévia do Processador de Dados da Internet das Coisas do Azure

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.

O Processador de Dados da Internet das Coisas do Azure Versão Prévia processa mensagens de entrada passando-as por uma série de estágios de pipeline. Cada estágio no pipeline pode transformar a mensagem antes de passá-la para o próximo estágio. Este artigo descreve a estrutura usada para representar as mensagens à medida que elas se movem pelo pipeline. Entender a estrutura de mensagens é importante quando você configura estágios de pipeline para processar suas mensagens de telemetria.

O exemplo a seguir mostra a representação JSON de uma mensagem que foi lida do MQ da Internet das Coisas do Azure Versão prévia por um pipeline:

{
    "systemProperties":{
        "partitionKey":"foo",
        "partitionId":5,
        "timestamp":"2023-01-11T10:02:07Z"
    },
    "qos":1,
    "topic":"/assets/foo/tags/bar",
    "properties":{
        "responseTopic":"outputs/foo/tags/bar",
        "contentType": "application/json",
        "payloadFormat":1,
        "correlationData":"base64::Zm9v",
        "messageExpiry":412
    },
    "userProperties":[
        {
            "key":"prop1",
            "value":"value1"
        },
        {
            "key":"prop2",
            "value":"value2"
        }
    ],
    "payload":
    { 
        "values":[ 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"temperature", 
                "numVal":250
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"pressure", 
                "numVal":30 
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"humidity", 
                "numVal":10
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"runningStatus", 
                "boolVal":true
            }
        ] 
    } 
}

Tipos de dados

As mensagens do Processador de Dados dão suporte aos seguintes tipos de dados:

  • Mapeamento
  • Array
  • Boolean
  • Inteiro – tamanho de 64 bits
  • Float – tamanho de 64 bits
  • String
  • Binário

Dados do sistema

Todos os metadados no nível do sistema são colocados no nó systemProperties:

Propriedade Descrição Tipo Observação
timestamp Um carimbo de data/hora UTC em milissegundos no formato RFC3339 que representa a hora em que o sistema recebeu a mensagem. String Esse campo sempre é adicionado no estágio de entrada.
partitionId A partição física da mensagem. Inteiro Esse campo sempre é adicionado no estágio de entrada.
partitionKey A chave de partição lógica definida no estágio de entrada. String Esse campo só será adicionado se você definiu uma expressão de partição.

Conteúdo

A seção de conteúdo contém o conteúdo primário da mensagem de entrada. O conteúdo da seção payload depende do formato escolhido no estágio de entrada do pipeline:

  • Se você escolheu o formato Raw no estágio de entrada, o conteúdo da carga será binário.
  • Se o estágio de entrada analisar seus dados, o conteúdo da carga será representado adequadamente.

Por padrão, o pipeline não analisa o conteúdo de entrada. O exemplo anterior mostra os dados de entrada analisados. Para saber mais, confira Formatos de mensagem.

Metadados

Todos os metadados que não fazem parte dos dados primários se tornam propriedades de nível superior dentro da mensagem:

Propriedade Descrição Tipo Observação
topic O tópico do qual a mensagem é lida. String Esse campo sempre é adicionado na entrada.
qos A qualidade do nível de serviço escolhido no estágio de entrada. Inteiro Esse campo sempre é adicionado no estágio de entrada.
packetId A ID do pacote da mensagem. Inteiro Esse campo só será adicionado se a qualidade do serviço for 1 ou 2.
properties A chave de partição lógica definida no estágio de entrada. Mapeamento O recipiente de propriedades sempre é adicionado.
userProperties Propriedades definidas pelo usuário. Array O recipiente de propriedades sempre é adicionado. O conteúdo poderá estar vazio se nenhuma propriedade do usuário estiver presente na mensagem.