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