Partage via


Schéma d’événement pour les messages routés MQTT

Les messages MQTT sont routés vers une rubrique Event Grid en tant que CloudEvents selon la logique suivante :

Pour les messages MQTT v3 ou les messages MQTT v5 au format de charge utile indicateur=0, la charge utile est transférée dans l’objet data_base64 et encodée en tant que chaîne de base 64 selon l’exemple de schéma suivant.

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

Pour les messages MQTT v5 de type de contenu = « application/json ; charset=utf-8 » ou d’un indicateur de format de charge utile=1, la charge utile est transférée dans l’objet de données et le message est sérialisé en tant que JSON (ou chaîne JSON si la charge utile n’est pas JSON). La définition du type de contenu et/ou de l’indicateur de format de charge utile vous permet de filtrer vos propriétés de charge utile telles qu’elles sont transférées dans le champ de données en l’état. En savoir plus sur le filtrage sur la charge utile du message.

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

Pour les messages MQTT v5 qui sont déjà enveloppés dans un CloudEvent conformément à la liaison de protocole MQTT pour CloudEvents, que ce soit en utilisant le mode de contenu binaire ou le mode de contenu structuré dans l’encodage JSON (utf-8), l’événement est transféré avec les attributs CloudEvents par défaut d’origine après enrichissements selon l’exemple de schéma suivant.

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

Étapes suivantes :

Pour en savoir plus sur le routage, lisez les articles suivants :

Démarrage rapide :

Concepts :