Skema Peristiwa untuk Pesan Rute MQTT
Pesan MQTT dirutekan ke topik Event Grid sebagai CloudEvents sesuai dengan logika berikut:
Untuk pesan MQTT v3 atau pesan MQTT v5 dari format payload indicator=0, payload akan diteruskan dalam objek data_base64 dan dikodekan sebagai string dasar 64 sesuai dengan sampel skema berikut.
{
"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==
}
}
Untuk pesan MQTT v5 jenis konten= "application/json; charset=utf-8" atau dari indikator format payload=1, payload akan diteruskan dalam objek data, dan pesan akan diserialisasikan sebagai JSON (atau string JSON jika payload bukan JSON). Mengatur jenis konten dan/atau indikator format payload memungkinkan Anda memfilter properti payload saat payload diteruskan dalam bidang data apa adanya. Pelajari selengkapnya tentang pemfilteran pada payload pesan.
{
"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
}
}
Untuk pesan MQTT v5 yang sudah diselimuti di CloudEvent sesuai dengan Pengikatan Protokol MQTT untuk CloudEvents baik menggunakan kon biner mode tenda atau con terstruktur mode tenda dalam pengodean JSON (utf-8), peristiwa akan diteruskan dengan atribut CloudEvents default asli setelah pengayaan sesuai dengan sampel skema berikut.
{
"specversion": "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"
}
}
Langkah berikutnya:
Gunakan artikel berikut untuk mempelajari selengkapnya tentang perutean:
Mulai Cepat:
- Tutorial: Merutekan pesan MQTT ke Azure Event Hubs menggunakan topik namespace layanan
- Tutorial: Merutekan pesan MQTT ke Azure Functions menggunakan topik kustom
Konsep:
- Perutean
- Pemfilteran Perutean
- Pengayaan Perutean