Delen via


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