Share via


Publicera data till en MQTT-koordinator med azure IoT Data Processor Preview

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Använd MQ-målet för att publicera bearbetade meddelanden till en MQTT-koordinator, till exempel en Azure IoT MQ Preview-instans, på gränsen. Dataprocessorn ansluter till en MQTT-koordinator med hjälp av MQTT v5.0. Målet publicerar meddelanden till MQTT-koordinatorn när fasen tar emot dem. MQ-målet stöder inte batchbearbetning.

Förutsättningar

För att konfigurera och använda en målpipelinefas behöver du en distribuerad instans av Azure IoT Data Processor Preview.

Konfigurera målfasen

JSON-konfigurationen för MQ-målsteget definierar detaljerna för fasen. Om du vill skapa fasen kan du antingen interagera med det formulärbaserade användargränssnittet eller ange JSON-konfigurationen på fliken Avancerat :

Fält Type Beskrivning Obligatoriskt Standardvärde Exempel
Name String Ett namn som ska visas i användargränssnittet för dataprocessorn. Ja - MQTT broker output
beskrivning String En användarvänlig beskrivning av vad fasen gör. Nej Write to topic default/topic1
Broker String Asynkron adress. Ja - mqtt://mqttEndpoint.cluster.local:1111
Autentisering String Autentiseringsinformationen för att ansluta till MQTT-asynkron meddelandekö. None/Username/Password/Service account token (SAT) Ja Service account token (SAT) Username/Password
Username String Användarnamnet som ska användas när Authentication är inställt på Username/Password. Nej - myusername
Lösenord String Den hemliga referensen för lösenordet som ska användas när Authentication är inställt på Username/Password. Nej - mysecret
Område Statisk/dynamisk Ämnesdefinitionen. Sträng om typen är statisk, jq sökväg om typen är dynamisk. Ja - ".topic"
Dataformat1 String Formatet som meddelanden ska serialiseras till. Ja - Raw
Användaregenskaper En lista över nyckel/värde-par Lista över anpassade användaregenskaper som ska anges för varje MQTT-meddelande. Kan innehålla statisk information eller data från varje meddelande. Nej []

| Försök igen | Försök igen | Den återförsöksprincip som ska användas. | Nej | default | fixed |

1Dataformat: Använd dataprocessorns inbyggda serialiserare för att serialisera dina meddelanden till följande format innan den publicerar meddelanden till MQTT-koordinatorn:

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

Välj Raw när du inte behöver serialisering. Raw skickar data till MQTT-koordinatorn i dess aktuella format.

Exempelkonfiguration

I följande JSON-exempel visas en fullständig MQ-målfaskonfiguration som skriver hela meddelandet till MQ-ämnet pipelineOutput :

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

Konfigurationen definierar att:

  • Autentiseringen utförs med hjälp av tjänstkontotoken.
  • Ämnet är en statisk sträng med namnet pipelineOutput.
  • Utdataformatet är JSON.
  • Formatsökvägen är . att se till att hela databehandlingsmeddelandet skrivs till MQ. Om du bara vill skriva nyttolasten ändrar du sökvägen till ''.payload'.

Exempel

I följande exempel visas ett exempel på ett indatameddelande till MQ-målsteget:

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