Gebeurtenisschema voor door MQTT gerouteerde berichten
MQTT-berichten worden gerouteerd naar een Event Grid-onderwerp als CloudEvents volgens de volgende logica:
Voor MQTT v3-berichten of MQTT v5-berichten van een indicator voor de nettoladingnotatie=0, wordt de nettolading doorgestuurd in het data_base64-object en gecodeerd als een base 64-tekenreeks volgens het volgende schemavoorbeeld.
{
"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==
}
}
Voor MQTT v5-berichten van inhoudstype= "application/json; charset=utf-8" of van een payload format indicator=1, de nettolading wordt doorgestuurd in het gegevensobject en het bericht wordt geserialiseerd als een JSON (of een JSON-tekenreeks als de nettolading geen JSON is). Als u het inhoudstype en/of de indicator voor de nettoladingnotatie instelt, kunt u filteren op de eigenschappen van uw nettolading wanneer de nettolading wordt doorgestuurd in het gegevensveld. Meer informatie over filteren op de nettolading van het bericht.
{
"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
}
}
Voor MQTT v5-berichten die al zijn gehuld in een CloudEvent volgens de MQTT-protocolbinding voor CloudEvents, ongeacht of de binaire con tentmodus of de gestructureerde con tentmodus in JSON-codering (utf-8) worden gebruikt, wordt de gebeurtenis doorgestuurd met de oorspronkelijke standaardkenmerken van CloudEvents na verrijkingen volgens het volgende schemavoorbeeld.
{
"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"
}
}
Volgende stappen:
Gebruik de volgende artikelen voor meer informatie over routering:
Quickstart:
- Zelfstudie: MQTT-berichten routeren naar Azure Event Hubs met behulp van naamruimteonderwerpen
- Zelfstudie: MQTT-berichten routeren naar Azure Functions met behulp van aangepaste onderwerpen
Concepten:
- Routering
- Routeringsfilters
- Routeringsverrijkingen