Partager via


Publier des données sur un MQTT broker à l’aide de la préversion d’Azure IoT Data Processor

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.

Utilisez la destination MQ pour publier des messages traités sur un MQTT broker, tel qu’une instance de préversion d’Azure IoT MQ, à la périphérie. Le processeur de données se connecte à un MQTT broker à l’aide de MQTT v5.0. La destination publie des messages sur le MQTT broker à mesure que l’index les reçoit. La destination MQ ne prend pas en charge le traitement par lots.

Prérequis

Pour configurer et utiliser une phase de pipeline de destination, vous avez besoin d’une instance déployée d’Azure IoT Data Processor (préversion) qui inclut le composant Data Processor facultatif.

Configuration de l’index de destination

La configuration JSON de l’index de destination MQ définit les détails de l’étape. Pour créer l’index, vous pouvez interagir avec l’interface utilisateur basée sur le formulaire ou fournir la configuration JSON sous l’onglet Advanced (Avancé) :

Champ Type Description Obligatoire Par défaut Exemple
Nom Chaîne Nom à afficher dans l’interface utilisateur du processeur de données. Oui - MQTT broker output
Description Chaîne Description conviviale de ce que fait l’index. Non Write to topic default/topic1
Service Broker Chaîne Adresse du répartiteur. Oui - mqtt://mqttEndpoint.cluster.local:1111
Authentification Chaîne Détails de l’authentification pour se connecter au MQTT broker. None/Username/Password/Service account token (SAT) Oui Service account token (SAT) Username/Password
Nom d’utilisateur Chaîne Nom d’utilisateur à utiliser quand Authentication est défini sur Username/Password. Non - myusername
Mot de passe Chaîne La référence secrète du mot de passe à utiliser lorsque Authentication est défini sur Username/Password. Non - mysecret
Rubrique Static/Dynamic Définition de la rubrique. Chaîne si le type est statique, chemin jq si le type est dynamique. Oui - ".topic"
Format de données 1 Chaîne Format vers laquelle sérialiser les messages. Oui - Raw
Propriétés de l’utilisateur Une liste de paires clé/valeur Liste des propriétés utilisateur personnalisées à définir sur chaque message MQTT. Peut inclure des informations statiques ou des données de chaque message. Non []

| Nouvelle tentative | Nouvelle tentative | La stratégie de nouvelles tentatives à utiliser. | Non | default | fixed |

1Format de données : utilisez le sérialiseur intégré du processeur de données pour sérialiser vos messages dans les Formats suivants avant de publier des messages dans le MQTT broker :

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

Sélectionnez Raw lorsque vous n’avez pas besoin de sérialisation. Raw envoie les données au MQTT broker dans son format actuel.

Exemple de configuration

L’exemple JSON suivant montre une configuration complète de l’index de destination MQ qui écrit l’intégralité du message dans la rubrique pipelineOutput MQ :

{
    "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 configuration définit ce qui suit :

  • L’authentification est effectuée à l’aide du jeton de compte de service.
  • La rubrique est une chaîne statique appelée pipelineOutput.
  • Le format de sortie est JSON.
  • Le chemin d’accès au format . consiste à s’assurer que l’ensemble du message du processeur de données est écrit dans MQ. Pour écrire uniquement la charge utile, remplacez le chemin d’accès par « .payload ».

Exemple

L’exemple suivant montre un exemple de message d’entrée à l’étape de destination 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"
}