Händelseschema för MQTT-dirigerade meddelanden
MQTT-meddelanden dirigeras till ett Event Grid-ämne som CloudEvents enligt följande logik:
För MQTT v3-meddelanden eller MQTT v5-meddelanden med en nyttolastformatindikator=0 vidarebefordras nyttolasten i objektet data_base64 och kodas som en bas 64-sträng enligt följande schemaexempel.
{
"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==
}
}
För MQTT v5-meddelanden av innehållstyp= "application/json; charset=utf-8" eller en indikator för nyttolastformat=1, nyttolasten vidarebefordras i dataobjektet och meddelandet serialiseras som en JSON (eller en JSON-sträng om nyttolasten inte är en JSON). Om du anger innehållstypen och/eller indikatorn för nyttolastformat kan du filtrera på nyttolastegenskaperna när nyttolasten vidarebefordras i datafältet som den är. Läs mer om filtrering på meddelandets nyttolast.
{
"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
}
}
För MQTT v5-meddelanden som redan är omslutna i en CloudEvent enligt MQTT-protokollbindningen för CloudEvents, oavsett om du använder binärkon tältläge eller den strukturerade con tältläge i JSON-kodning (utf-8), vidarebefordras händelsen med de ursprungliga CloudEvents-standardattributen efter berikningar enligt följande schemaexempel.
{
"specverion": "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"
}
}
Nästa steg:
Använd följande artiklar för att lära dig mer om routning:
Snabbstart:
- Självstudie: Dirigera MQTT-meddelanden till Azure Event Hubs med hjälp av namnområdesämnen
- Självstudie: Dirigera MQTT-meddelanden till Azure Functions med hjälp av anpassade ämnen
Koncept:
- Routning
- Routningsfiltrering
- Routningsberikningar