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:

Concepten: