Teilen über


Veröffentlichen von Daten an einem MQTT-Broker mithilfe des Datenauftragsverarbeiters

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Azure IoT Operations-Installation bereitstellen, wenn eine allgemein verfügbare Version verfügbar ist, können Sie keine Vorschauinstallation aktualisieren.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Verwenden Sie das MQ-Ziel , um verarbeitete Nachrichten an einem MQTT-Broker zu veröffentlichen, z. B. eine MQTT-Brokerinstanz am Rand. Der Datenverarbeiter stellt mithilfe von MQTT v5.0 eine Verbindung mit einem MQTT-Broker in Verbindung. Das Ziel veröffentlicht Nachrichten an den MQTT-Broker, während die Phase sie empfängt. Das MQ-Ziel unterstützt keine Batchverarbeitung.

Voraussetzungen

Um eine Zielpipelinestufe zu konfigurieren und zu verwenden, benötigen Sie eine bereitgestellte Instanz des Datenauftragsverarbeiters, die die optionale Datenverarbeitungskomponente enthält.

Konfigurieren der Zielstufe

Die JSON-Konfiguration der MQ-Zielstufe definiert die Details der Phase. Um die Phase zu erstellen, können Sie entweder mit der formularbasierten Benutzeroberfläche interagieren oder die JSON-Konfiguration auf der Registerkarte Erweitert bereitstellen:

Feld Typ Beschreibung Erforderlich Standard Beispiel
Name String Ein Name, der in der Datenverarbeitungsoberfläche angezeigt werden soll. Ja - MQTT broker output
Beschreibung String Eine benutzerfreundliche Beschreibung der Funktionsweise der Stufe. Nein Write to topic default/topic1
Broker String Die Brokeradresse. Ja - mqtt://mqttEndpoint.cluster.local:1111
Authentifizierung String Die Authentifizierungsdetails zum Herstellen einer Verbindung mit dem MQTT-Broker. None/Username/Password/Service account token (SAT) Ja Service account token (SAT) Username/Password
Benutzername String Der Benutzername, der verwendet werden soll, wenn Authentication auf Username/Password festgelegt ist. Nein - myusername
Kennwort String Der Geheimnisverweis für das Kennwort, das verwendet werden soll, wenn Authentication auf Username/Password festgelegt ist. Nein - mysecret
Thema Static/Dynamic Die Themendefinition. Zeichenfolge, wenn der Typ statisch ist, jq Pfad, wenn der Typ dynamisch ist. Ja - ".topic"
Datenformat1 String Das Format, in dem Nachrichten serialisiert werden. Ja - Raw
Benutzereigenschaften Eine Liste von Schlüssel-Wert-Paaren Liste der benutzerdefinierten Benutzereigenschaften, die für jede MQTT-Nachricht festgelegt werden sollen. Kann statische Informationen oder Daten aus jeder Nachrichtenthalten. No []

| Wiederholen | Wiederholen | Die zu verwendende Wiederholungsrichtlinie. | Nein | default | fixed |

1Datenformat: Verwenden Sie den integrierten Serialisierer des Datenauftragsverarbeiters, um Ihre Nachrichten in die folgenden Formate zu serialisieren, bevor sie Nachrichten an den MQTT-Broker veröffentlicht:

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

Wählen Sie Raw aus, wenn Sie keine Serialisierung erfordern. Raw sendet die Daten in seinem aktuellen Format an den MQTT-Broker.

Beispielkonfiguration

Das folgende JSON-Beispiel zeigt eine vollständige MQ-Zielstufenkonfiguration, die die gesamte Nachricht in das MQ- pipelineOutput Thema schreibt:

{
    "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
    }
}

Die Konfiguration definiert Folgendes:

  • Die Authentifizierung erfolgt mithilfe des Dienstkontotokens.
  • Das Thema ist eine statische Zeichenfolge namens pipelineOutput.
  • Das Ausgabeformat ist JSON.
  • Der Formatpfad wird ., um sicherzustellen, dass die gesamte Datenverarbeitungsnachricht in MQ geschrieben wird. Wenn Sie nur die Nutzlast schreiben möchten, ändern Sie den Pfad in „.payload“.

Beispiel

Das folgende Beispiel zeigt eine Beispieleingabenachricht an die MQ-Zielstufe:

{
  "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"
}