Condividi tramite


Pubblicare dati in un broker MQTT usando l'anteprima del responsabile del trattamento dei dati di Azure IoT

Importante

Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.

Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Usare la destinazione MQ per pubblicare messaggi elaborati in un broker MQTT, ad esempio un'istanza di anteprima MQ di Azure IoT, sul perimetro. Il responsabile del trattamento dei dati si connette a un broker MQTT usando MQTT v5.0. La destinazione pubblica i messaggi nel broker MQTT durante la ricezione della fase. La destinazione MQ non supporta l'invio in batch.

Prerequisiti

Per configurare e usare una fase della pipeline di destinazione, è necessaria un'istanza distribuita di Azure IoT Data Processor Preview che include il componente facoltativo Responsabile del trattamento dei dati.

Configurare la fase di destinazione

La configurazione JSON della fase di destinazione MQ definisce i dettagli della fase. Per creare la fase, è possibile interagire con l'interfaccia utente basata su form o specificare la configurazione JSON nella scheda Avanzate :

Campo Tipo Descrizione Richiesto Valore predefinito Esempio
Nome string Nome da visualizzare nell'interfaccia utente del responsabile del trattamento dei dati. - MQTT broker output
Descrizione Stringa Descrizione descrittiva delle operazioni della fase. No Write to topic default/topic1
Gestore String Indirizzo broker. - mqtt://mqttEndpoint.cluster.local:1111
Autenticazione String Dettagli di autenticazione da connettere al broker MQTT. None/Username/Password/Service account token (SAT) Service account token (SAT) Username/Password
Username String Nome utente da usare quando Authentication è impostato su Username/Password. No - myusername
Password String Riferimento al segreto per la password da usare quando Authentication è impostato su Username/Password. No - mysecret
Argomento Statico/dinamico Definizione dell'argomento. Stringa se il tipo è statico, percorso jq se il tipo è dinamico. - ".topic"
Formatodati 1 String Formato in cui serializzare i messaggi. - Raw
Proprietà utente Elenco di coppie chiave/valore Elenco delle proprietà utente personalizzate da impostare in ogni messaggio MQTT. Può includere informazioni statiche o dati da ogni messaggio. No []

| Riprova | Riprova | Criterio di ripetizione dei tentativi da usare. | No | default | fixed |

1Formato dati: utilizzare il serializzatore predefinito del responsabile del trattamento dei dati per serializzare i messaggi nei formati seguenti prima di pubblicare i messaggi nel broker MQTT:

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

Selezionare Raw quando non è necessaria la serializzazione. Raw invia i dati al broker MQTT nel formato corrente.

Configurazione di esempio

L'esempio JSON seguente illustra una configurazione completa della fase di destinazione MQ che scrive l'intero messaggio nell'argomento MQ 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
    }
}

La configurazione definisce che:

  • L'autenticazione viene eseguita usando il token dell'account del servizio.
  • L'argomento è una stringa statica denominata pipelineOutput.
  • Il formato di output è JSON.
  • Il percorso del formato consiste . nel garantire che l'intero messaggio del responsabile del trattamento dei dati venga scritto in MQ. Per scrivere solo il payload, modificare il percorso in ''.payload'.

Esempio

L'esempio seguente mostra un messaggio di input di esempio nella fase di destinazione MQ:

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