Ereignisschema für weitergeleitete MQTT-Nachrichten
MQTT-Nachrichten werden gemäß der folgenden Logik als CloudEvents an ein Event Grid-Thema weitergeleitet:
Bei MQTT v3-Nachrichten oder MQTT v5-Nachrichten mit einem Nutzdatenformatindikator = 0 werden die Nutzdaten im data_base64-Objekt weitergeleitet und gemäß dem folgenden Schemabeispiel als Base64-Zeichenfolge codiert.
{
"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-Nachrichten mit dem Inhaltstyp = „application/json; charset=utf-8“ oder mit einem Nutzdatenformatindikator = 1 werden die Nutzdaten im Datenobjekt weitergeleitet, und die Nachricht wird als JSON serialisiert (oder als JSON-Zeichenfolge, wenn die Nutzdaten kein JSON sind). Wenn Sie den Inhaltstyp und/oder den Nutzdatenformatindikator festlegen, können Sie nach Ihren Nutzdateneigenschaften filtern, da die Nutzdaten unverändert im Datenfeld weitergeleitet werden. Erfahren Sie mehr über das Filtern nach den Nutzdaten der Nachricht.
{
"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-Nachrichten, die bereits in ein CloudEvent gemäß MQTT-Protokollbindung für CloudEvents eingebunden sind, wird das Ereignis mit den ursprünglichen CloudEvents-Standardattributen nach Anreicherung gemäß dem folgenden Schemabeispiel weitergeleitet, und zwar unabhängig davon, ob der binäre Inhaltsmodus oder der strukturierte Inhaltsmodus in JSON-Codierung (UTF-8) verwendet wird.
{
"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ächste Schritte:
In den folgenden Artikeln erfahren Sie mehr über Routing:
Schnellstart:
- Lernprogramm: Weiterleiten von MQTT-Nachrichten an Azure Event Hubs mithilfe von Namespacethemen
- Lernprogramm: Weiterleiten von MQTT-Nachrichten an Azure Functions mithilfe von benutzerdefinierten Themen