Condividi tramite


Struttura dei messaggi nelle pipeline di anteprima di Azure IoT Data Processor

Importante

Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.

Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

L'anteprima del processore di dati IoT di Azure elabora i messaggi in arrivo passandoli attraverso una serie di fasi della pipeline. Ogni fase della pipeline può trasformare il messaggio prima di passarlo alla fase successiva. Questo articolo descrive la struttura usata per rappresentare i messaggi durante lo spostamento nella pipeline. Comprendere la struttura dei messaggi è importante quando si configurano le fasi della pipeline per elaborare i messaggi di telemetria.

L'esempio seguente mostra la rappresentazione JSON di un messaggio letto dall'anteprima mq di Azure IoT da una 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
            }
        ] 
    } 
}

Tipo di dati

I messaggi del responsabile del trattamento dei dati supportano i tipi di dati seguenti:

  • Mapping
  • Matrice
  • Booleano
  • Integer - Dimensioni a 64 bit
  • Float - Dimensioni a 64 bit
  • String
  • Binario

Dati di sistema

Tutti i metadati a livello di sistema vengono inseriti nel systemProperties nodo:

Proprietà Descrizione Tipo Nota
timestamp Timestamp RFC3339 millisecondo UTC che rappresenta l'ora in cui il sistema ha ricevuto il messaggio. String Questo campo viene sempre aggiunto nella fase di input.
partitionId Partizione fisica del messaggio. Intero Questo campo viene sempre aggiunto nella fase di input.
partitionKey Chiave di partizione logica definita nella fase di input. String Questo campo viene aggiunto solo se è stata definita un'espressione di partizione.

Payload

La sezione payload contiene il contenuto principale del messaggio in arrivo. Il contenuto della payload sezione dipende dal formato scelto nella fase di input della pipeline:

  • Se si sceglie il Raw formato nella fase di input, il contenuto del payload è binario.
  • Se la fase di input analizza i dati, il contenuto del payload viene rappresentato di conseguenza.

Per impostazione predefinita, la pipeline non analizza il payload in ingresso. L'esempio precedente mostra i dati di input analizzati. Per altre informazioni, vedere Formati dei messaggi.

Metadati UFX

Tutti i metadati che non fanno parte dei dati primari diventano proprietà di primo livello all'interno del messaggio:

Proprietà Descrizione Tipo Nota
topic L'argomento da cui viene letto il messaggio. String Questo campo viene sempre aggiunto all'input.
qos Qualità del livello di servizio scelto nella fase di input. Intero Questo campo viene sempre aggiunto nella fase di input.
packetId ID pacchetto del messaggio. Intero Questo campo viene aggiunto solo se la qualità del servizio è 1 o 2.
properties Chiave di partizione logica definita nella fase di input. Mapping Il contenitore delle proprietà viene sempre aggiunto.
userProperties Proprietà definite dall'utente. Matrice Il contenitore delle proprietà viene sempre aggiunto. Il contenuto può essere vuoto se nel messaggio non sono presenti proprietà utente.