Az MQTT által átirányított üzenetek szűrése
Az Event Grid-előfizetés szűrési funkciójával szűrheti az irányított MQTT-üzeneteket.
Témakörszűrés
Az üzenetek MQTT-témaköreire a Cloud Event séma "tárgy" tulajdonságára való szűréssel szűrhet. Az Event Grid-előfizetések a tárgy kezdő vagy záró értékének megadásával támogatják az ingyenes egyszerű tárgyszűréseket. Például:
- Ha minden jármű saját témában teszi közzé a tartózkodási helyét (járművek/jármű1/gps, járművek/jármű2/gps stb.), a szűrőt használhatja: a tárgy "gps" végződésű, hogy csak az összes helyüzenetet irányozza.
- Ha az egyes gyárak egyes szakaszainak gépei olyan témakörökben tesznek közzé közzétételeket, amelyek a gyári hierarchiát utánozzák (például factory1/area2/machine4/telemetria), használhatja a szűrőt: a tárgy "factory1/area2/" kezdetű, így csak a facotry1 és a 2. területhez tartozó üzeneteket irányíthatja egy adott végpontra. Ezt a konfigurációt replikálhatja úgy, hogy más gyárakból/területekről különböző végpontokra irányíthassa az üzeneteket.
Az esemény-előfizetés speciális szűrését is kihasználhatja az MQTT-témakör alapján történő szűréshez a felhőbeli eseményséma tárgytulajdonságára való szűréssel. A speciális szűrők lehetővé teszik összetettebb szűrők beállítását összehasonlító operátor, kulcs és érték megadásával.
Hasznos adatok szűrése
Tartalomtípusú MQTT v5-üzenetek esetén: "application/json; charset=utf-8" vagy payload format indicator=1, a hasznos adatok továbbítva lesznek az adatobjektumban, és az üzenet JSON-ként lesz szerializálva (vagy JSON-sztringként, ha a hasznos adat nem JSON). A tartalomtípus és/vagy a hasznos adatformátum-jelző beállítása lehetővé teszi, hogy az adatmezőn belül továbbított hasznos adattulajdonságokra szűrjön.
JSON hasznos adatok
Ha JSON-hasznos adatokat küld, az megfelelő JSON-ként lesz szerializálva, és az Esemény-előfizetés speciális szűrésével szűrhet a JSON minden tulajdonságára.
Ha például a következő hasznos adatokat küldi el:
{
"Temp": 70,
"humidity": 40
}
A következő szűrővel szűrheti az összes, 100-nál magasabb hőmérsékleti értékkel rendelkező üzenetet:
"advancedFilters": [{
"operatorType": "NumberGreaterThan",
"key": "data.Temp",
"value": 100
}]
Nem JSON hasznos adatok
Ha olyan nem JSON-hasznos adatokat küld, amely még mindig UFT-8, az JSON-sztringként lesz szerializálva. Ha például a következő hasznos adatokat küldi el:
{
Hello Contoso.
}
Az alábbi szűrővel szűrheti a "Contoso" szót tartalmazó összes üzenetet:
"advancedFilters": [{
"operatorType": "StringContains",
"key": "data",
"value": "Contoso"
}]
Bővítési szűrés
A bővítmények hozzáadódnak az irányított CloudEvent attribútumaihoz, és az Esemény-előfizetés speciális szűrésével szűrheti őket.
Ha például a következő bővítést adta hozzá:
{
"key": "clienttype",
"value": "${client.attributes.type}"
}
Az alábbi szűrővel szűrheti a "sensor" típusú ügyfelektől érkező összes üzenetet:
"advancedFilters": [{"
operatorType": "StringContains",
"key": "clienttype",
"value": "sensor"
}]
Következő lépések:
Az útválasztásról az alábbi cikkekben olvashat bővebben:
Gyorsútmutató:
- Oktatóanyag: MQTT-üzenetek átirányítása az Azure Event Hubsba névtértémák használatával
- Oktatóanyag: MQTT-üzenetek átirányítása az Azure Functionsbe egyéni témakörök használatával