Gegevens publiceren naar een MQTT-broker met behulp van Azure IoT Data Processor Preview
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Gebruik de MQ-bestemming om verwerkte berichten te publiceren naar een MQTT-broker, zoals een Azure IoT MQ Preview-exemplaar, aan de rand. De gegevensprocessor maakt verbinding met een MQTT-broker met behulp van MQTT v5.0. De bestemming publiceert berichten naar de MQTT-broker wanneer de fase ze ontvangt. De MQ-bestemming biedt geen ondersteuning voor batchverwerking.
Vereisten
Als u een doelpijplijnfase wilt configureren en gebruiken, hebt u een geïmplementeerd exemplaar van Azure IoT Data Processor Preview nodig.
De doelfase configureren
De JSON-configuratie van de MQ-doelfase definieert de details van de fase. Als u de fase wilt ontwerpen, kunt u communiceren met de gebruikersinterface op basis van formulieren of de JSON-configuratie opgeven op het tabblad Geavanceerd :
Veld | Type | Beschrijving | Vereist | Standaardinstelling | Opmerking |
---|---|---|---|---|---|
Naam | String | Een naam die moet worden weergegeven in de gebruikersinterface van de gegevensverwerker. | Ja | - | MQTT broker output |
Beschrijving | String | Een gebruiksvriendelijke beschrijving van wat de fase doet. | Nee | Write to topic default/topic1 |
|
Broker | String | Het adres van de broker. | Ja | - | mqtt://mqttEndpoint.cluster.local:1111 |
Verificatie | String | De verificatiegegevens om verbinding te maken met MQTT-broker. None /Username/Password /Service account token (SAT) |
Ja | Service account token (SAT) |
Username/Password |
Username | String | De gebruikersnaam die moet worden gebruikt wanneer Authentication is ingesteld op Username/Password . |
Nee | - | myusername |
Wachtwoord | String | De geheime verwijzing voor het wachtwoord dat moet worden gebruikt wanneer Authentication is ingesteld op Username/Password . |
Nee | - | mysecret |
Onderwerp | Statisch/dynamisch | De onderwerpdefinitie. Tekenreeks als het type statisch is, jq-pad als het type dynamisch is. | Ja | - | ".topic" |
Gegevensindeling1 | String | De indeling voor het serialiseren van berichten naar. | Ja | - | Raw |
Gebruikerseigenschappen | Een lijst met sleutel-/waardeparen | Lijst met aangepaste gebruikerseigenschappen die moeten worden ingesteld voor elk MQTT-bericht. Kan statische informatie of gegevens uit elk bericht bevatten. | Nee | [] |
| Opnieuw proberen | Opnieuw proberen | Het beleid voor opnieuw proberen dat moet worden gebruikt. | Nee | default
| fixed
|
1Gegevensindeling: Gebruik de ingebouwde serializer van de gegevensprocessor om uw berichten te serialiseren naar de volgende indelingen voordat berichten naar de MQTT-broker worden gepubliceerd:
Raw
JSON
JSONStream
CSV
Protobuf
MessagePack
CBOR
Selecteer Raw
deze optie wanneer u geen serialisatie nodig hebt. Raw verzendt de gegevens naar de MQTT-broker in de huidige indeling.
Voorbeeldconfiguratie
In het volgende JSON-voorbeeld ziet u een volledige configuratie van de MQ-doelfase waarmee het hele bericht naar het MQ-onderwerp pipelineOutput
wordt geschreven:
{
"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
}
}
De configuratie definieert dat:
- Verificatie wordt uitgevoerd met behulp van het token van het serviceaccount.
- Het onderwerp is een statische tekenreeks met de naam
pipelineOutput
. - De uitvoerindeling is
JSON
. - Het indelingspad is
.
om ervoor te zorgen dat het volledige bericht van de gegevensverwerker naar MQ wordt geschreven. Als u alleen de nettolading wilt schrijven, wijzigt u het pad in '.payload'.
Opmerking
In het volgende voorbeeld ziet u een voorbeeldinvoerbericht voor de MQ-doelfase:
{
"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"
}