Schema eventi per i messaggi indirizzati MQTT
I messaggi MQTT vengono indirizzati a un argomento di Griglia di eventi come CloudEvents in base alla logica seguente:
Per i messaggi MQTT v3 o MQTT v5 di un formato di payload indicator=0, il payload verrà inoltrato nell'oggetto data_base64 e codificato come stringa di base 64 in base all'esempio di schema seguente.
{
"specversion": "1.0",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // unique id stamped by the service.
"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the service.
"type": "MQTT.EventPublished", // set type for all MQTT messages enveloped by the service.
"source": "testnamespace", // namespace name
"subject": "campus/buildings/building17", // topic of the MQTT publish request.
"data_base64":
{
IlRlbXAiOiAiNzAiLAoiaHVtaWRpdHkiOiAiNDAiCg==
}
}
Per i messaggi MQTT v5 di tipo di contenuto= "application/json; charset=utf-8" o di un indicatore di formato di payload=1, il payload verrà inoltrato nell'oggetto dati e il messaggio verrà serializzato come JSON (o una stringa JSON se il payload non è un JSON). L'impostazione del tipo di contenuto e/o dell'indicatore del formato del payload consente di filtrare le proprietà del payload man mano che il payload viene inoltrato all'interno del campo dati così come è. Altre informazioni sul filtro sul payload del messaggio.
{
"specversion": "1.0",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // unique id stamped by the service.
"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the service.
"type": "MQTT.EventPublished", // set type for all MQTT messages enveloped by the service.
"source": "testnamespace", // namespace name
"subject": "campus/buildings/building17", // topic of the MQTT publish request.
"data":
{
"Temp": 70,
"humidity": 40
}
}
Per i messaggi MQTT v5 già inseriti in un cloudEvent in base all'associazione al protocollo MQTT per CloudEvents se si usa il con binario con modalità tenda o il con strutturato modalità tenda nella codifica JSON (utf-8), l'evento verrà inoltrato con gli attributi CloudEvent predefiniti originali dopo gli arricchimenti in base all'esempio di schema seguente.
{
"specversion": "1.0",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e20", // original id stamped by the client.
"time": "2019-11-18T15:13:39.4589254Z", // timestamp when the message was received by the client
"type": "Custom.Type", // original type value stamped by the client.
"source": "Custom.Source", // original source value stamped by the client.
"subject": " Custom.Subject", // original subjectvalue stamped by the client.
"data":
{
"Temp": "70",
"humidity": "40"
}
}
Passaggi successivi:
Per altre informazioni sul routing, vedere gli articoli seguenti:
Avvio rapido:
- Esercitazione: Indirizzare i messaggi MQTT a Hub eventi di Azure usando gli argomenti dello spazio dei nomi
- Esercitazione: Indirizzare i messaggi MQTT a Funzioni di Azure usando argomenti personalizzati