Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja filtrowania subskrypcji usługi Event Grid umożliwia filtrowanie trasowanych komunikatów MQTT.
Filtrowanie tematów
Możesz filtrować tematy MQTT komunikatów za pomocą filtrowania właściwości "temat" w schemacie zdarzeń w chmurze. Subskrypcje usługi Event Grid obsługują bezpłatne proste filtrowanie tematów przez określenie wartości początkowej lub końcowej dla tematu. Na przykład:
- Jeśli każdy pojazd publikuje swoją lokalizację we własnym temacie (pojazdy/pojazd1/gps, pojazdy/pojazd2/gps itp.), możesz użyć filtru: temat kończy się "gps", aby kierować tylko wszystkie wiadomości lokalizacji.
- Jeśli maszyny z każdej sekcji każdej fabryki publikują w tematach, które naśladują hierarchię fabryki (na przykład factory1/area2/machine4/telemetria), możesz użyć filtru: temat zaczyna się od "factory1/area2/", aby kierować tylko komunikaty należące do fabryki1 i obszaru 2 do określonego punktu końcowego. Tę konfigurację można replikować w celu kierowania komunikatów z innych fabryk/obszarów do różnych punktów końcowych.
Możesz również skorzystać z zaawansowanego filtrowania subskrypcji zdarzeń w celu filtrowania na podstawie tematu MQTT przez filtrowanie właściwości podmiotu w schemacie zdarzeń w chmurze. Filtry zaawansowane umożliwiają ustawianie bardziej złożonych filtrów przez określenie operatora porównania, klucza i wartości.
Filtrowanie ładunków
W przypadku komunikatów MQTT v5 typu zawartości = "application/json; charset=utf-8" lub wskaźnik formatu ładunku=1, ładunek zostanie przekazany w obiekcie danych, a komunikat zostanie serializowany jako kod JSON (lub ciąg JSON, jeśli ładunek nie jest plikiem JSON). Ustawienie typu zawartości i/lub wskaźnika formatu ładunku umożliwia filtrowanie właściwości ładunku w taki sposób, jak jest przekazywane w polu danych.
Ładunek JSON
Jeśli wyślesz ładunek JSON, zostanie on serializowany jako odpowiedni kod JSON i będzie można filtrować poszczególne właściwości w formacie JSON przy użyciu zaawansowanego filtrowania subskrypcji zdarzeń.
Na przykład: jeśli wyślesz następujący ładunek:
{
"Temp": 70,
"humidity": 40
}
Możesz użyć następującego filtru, aby filtrować wszystkie komunikaty z wartością temperatury powyżej 100:
"advancedFilters": [{
"operatorType": "NumberGreaterThan",
"key": "data.Temp",
"value": 100
}]
Ładunek inny niż JSON
Jeśli wyślesz ładunek inny niż JSON, który nadal jest UFT-8, zostanie serializowany jako ciąg JSON. Jeśli na przykład wyślesz następujący ładunek:
{
Hello Contoso.
}
Możesz użyć następującego filtru, aby filtrować wszystkie komunikaty zawierające słowo "Contoso":
"advancedFilters": [{
"operatorType": "StringContains",
"key": "data",
"value": "Contoso"
}]
Filtrowanie wzbogacania
Wzbogacania są dodawane do atrybutów usługi CloudEvent kierowanych i można je filtrować przy użyciu zaawansowanego filtrowania subskrypcji zdarzeń.
Jeśli na przykład dodano następujące wzbogacanie:
{
"key": "clienttype",
"value": "${client.attributes.type}"
}
Możesz użyć następującego filtru, aby filtrować wszystkie komunikaty pochodzące z klientów typu "sensor":
"advancedFilters": [{"
operatorType": "StringContains",
"key": "clienttype",
"value": "sensor"
}]
Następne kroki:
Aby dowiedzieć się więcej na temat routingu, skorzystaj z następujących artykułów:
Szybki start:
- Samouczek: kierowanie komunikatów MQTT do usługi Azure Event Hubs przy użyciu tematów przestrzeni nazw
- Samouczek: kierowanie komunikatów MQTT do usługi Azure Functions przy użyciu tematów niestandardowych