Partager via


Structure des messages dans les pipelines du processeur de données Azure IoT (préversion)

Important

Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Le processeur de données Azure IoT (préversion) traite les messages entrants en les passant par une série d’étapes de pipeline. Chaque étape du pipeline peut transformer le message avant de le transmettre à l'étape suivante. Cet article décrit la structure utilisée pour représenter les messages lors de leur déplacement dans le pipeline. Comprendre la structure des messages est importante lorsque vous configurez des étapes de pipeline pour traiter vos messages de télémétrie.

L’exemple suivant montre la représentation JSON d’un message lu à partir d’Azure IoT MQ Preview par un 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
            }
        ] 
    } 
}

Types de données

Les messages du processeur de données prennent en charge les types de données suivants :

  • Mappage
  • Tableau
  • Booléen
  • Entier – Taille 64 bits
  • Flottant – Taille 64 bits
  • Chaîne
  • Binary

Données système

Toutes les métadonnées au niveau du système sont placées dans le nœud systemProperties :

Propriété Description Type Remarque
timestamp Horodatage utc RFC3339 qui représente l’heure à laquelle le système a reçu le message. Chaîne Ce champ est toujours ajouté à l’étape d’entrée.
partitionId Partition physique du message. Entier Ce champ est toujours ajouté à l’étape d’entrée.
partitionKey Clé de partition logique définie à l’étape d’entrée. Chaîne Ce champ est ajouté uniquement si vous avez défini une expression de partition.

Charge utile

La section de charge utile contient le contenu principal du message entrant. Le contenu de la section payload dépend du format choisi à l’étape d’entrée du pipeline :

  • Si vous avez choisi le format Raw dans l’étape d’entrée, le contenu de la charge utile est binaire.
  • Si l’étape d’entrée analyse vos données, le contenu de la charge utile est représenté en conséquence.

Par défaut, le pipeline n’analyse pas la charge utile entrante. L’exemple précédent montre les données d’entrée analysées. Pour plus d’informations, consultez formats de message.

Métadonnées

Toutes les métadonnées qui ne font pas partie des données primaires deviennent des propriétés de niveau supérieur dans le message :

Propriété Description Type Remarque
topic La rubrique à partir de qui le message est lu. Chaîne Ce champ est toujours ajouté à l’entrée.
qos Qualité du niveau de service choisi à l’étape d’entrée. Entier Ce champ est toujours ajouté à l’étape d’entrée.
packetId ID de paquet du message. Entier Ce champ n’est ajouté que si la qualité du service est 1 ou 2.
properties Clé de partition logique définie à l’étape d’entrée. Mappage Le jeu de propriétés est toujours ajouté.
userProperties Propriétés définies par l’utilisateur. Tableau Le jeu de propriétés est toujours ajouté. Le contenu peut être vide si aucune propriété utilisateur n’est présente dans le message.