Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda Event Grid-prenumerationens filtreringsfunktion för att filtrera de dirigerade MQTT-meddelandena.
Ämnesfiltrering
Du kan filtrera på meddelandenas MQTT-ämnen genom filtrering på egenskapen "ämne" i cloud event-schemat. Event Grid-prenumerationer stöder kostnadsfri enkel ämnesfiltrering genom att ange ett start- eller slutvärde för ämnet. Ett exempel:
- Om varje fordon publicerar sin plats på sitt eget ämne (fordon/fordon1/gps, fordon/fordon2/gps osv.), kan du använda filtret: ämnet slutar med "gps" för att dirigera endast alla platsmeddelanden.
- Om datorer från varje avsnitt i varje fabrik publicerar ämnen som efterliknar fabrikshierarkin (till exempel factory1/area2/machine4/telemetri) kan du använda filtret: ämne börjar med "factory1/area2/" för att dirigera endast meddelanden som tillhör factory1 och område 2 till en specifik slutpunkt. Du kan replikera den här konfigurationen för att dirigera meddelanden från andra fabriker/områden till olika slutpunkter.
Du kan också dra nytta av händelseprenumerationens avancerade filtrering för att filtrera baserat på MQTT-ämnet genom filtrering på ämnesegenskapen i molnhändelseschemat. Med avancerade filter kan du ange mer komplexa filter genom att ange en jämförelseoperator, nyckel och värde.
Nyttolastfiltrering
För MQTT v5-meddelanden av innehållstyp= "application/json; charset=utf-8" eller en indikator för nyttolastformat=1, nyttolasten vidarebefordras i dataobjektet och meddelandet serialiseras som en JSON (eller en JSON-sträng om nyttolasten inte är en JSON). Om du anger innehållstypen och/eller indikatorn för nyttolastformat kan du filtrera på dina nyttolastegenskaper som vidarebefordras i datafältet som det är.
JSON-nyttolast
Om du skickar en JSON-nyttolast serialiseras den som en korrekt JSON och du kan filtrera på varje egenskap i din JSON med hjälp av händelseprenumerationens avancerade filtrering.
Exempel: om du skickar följande nyttolast:
{
"Temp": 70,
"humidity": 40
}
Du kan använda följande filter för att filtrera alla meddelanden med temperaturvärde över 100:
"advancedFilters": [{
"operatorType": "NumberGreaterThan",
"key": "data.Temp",
"value": 100
}]
Nyttolast som inte är JSON
Om du skickar en icke-JSON-nyttolast som fortfarande är UFT-8 serialiseras den som en JSON-sträng. Om du till exempel skickar följande nyttolast:
{
Hello Contoso.
}
Du kan använda följande filter för att filtrera alla meddelanden som innehåller ordet "Contoso":
"advancedFilters": [{
"operatorType": "StringContains",
"key": "data",
"value": "Contoso"
}]
Berikningsfiltrering
Berikanden läggs till i dina routade CloudEvent-attribut och du kan filtrera på dem med hjälp av händelseprenumerationens avancerade filtrering.
Om du till exempel har lagt till följande berikning:
{
"key": "clienttype",
"value": "${client.attributes.type}"
}
Du kan använda följande filter för att filtrera alla meddelanden som kommer från dina klienter av typen "sensor":
"advancedFilters": [{"
operatorType": "StringContains",
"key": "clienttype",
"value": "sensor"
}]
Nästa steg:
Använd följande artiklar för att lära dig mer om routning:
Snabbstart:
- Självstudie: Dirigera MQTT-meddelanden till Azure Event Hubs med hjälp av namnområdesämnen
- Självstudie: Dirigera MQTT-meddelanden till Azure Functions med hjälp av anpassade ämnen