Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Event Grid pozwala przesyłać wiadomości MQTT do usług Azure lub webhooków w celu dalszego przetwarzania. Przekierowując te dane, możesz tworzyć kompleksowe rozwiązania, które wykorzystują dane IoT do analizy, przechowywania i wizualizacji.
Ten artykuł wyjaśnia, kiedy należy używać routingu i pokazuje, jak skonfigurować routowanie zarówno do tematu przestrzeni nazw Event Grid, jak i do tematu niestandardowego.
Kiedy używać routingu
Kierowanie wiadomości od klientów do usługi Azure lub niestandardowego endpointu pozwala maksymalnie wykorzystać korzyści z tych danych. Poniższa lista opisuje niektóre z wielu zastosowań tej funkcji:
- Analiza danych: Wyodrębnij i przeanalizuj przesyłane wiadomości od klientów, aby zoptymalizować swoje rozwiązanie. Na przykład przeanalizuj telemetrię swoich urządzeń, aby przewidzieć, kiedy zaplanować konserwację przed awarią, aby uniknąć opóźnień i dalszych uszkodzeń.
- Aplikacje bezserwerowe: Uruchamiaj funkcję bezserwerową na podstawie wiadomości kierowanych od klientów. Na przykład gdy czujnik ruchu wykryje ruch, wyślij powiadomienie do ochrony, aby zajęła się sytuacją.
- Wizualizacje danych: Twórz wizualizacje danych przekazywanych klientom do reprezentacji i zrozumienia, a także podkreślania trendów i wartości odstających.
Konfigurowanie routingu
Konfiguracja routingu pozwala wysyłać wszystkie wiadomości MQTT od klientów do tematu przestrzeni nazw Event Grid lub do tematu niestandardowego Event Grid. Gdy komunikaty znajdują się w temacie, można skonfigurować subskrypcję zdarzeń, aby pobierać komunikaty z tematu. Aby osiągnąć tę konfigurację, wykonaj następujące ogólne kroki:
- Temat przestrzeni nazw jako miejsce docelowe routingu:
- Stwórz temat przestrzeni nazw Event Grid , gdzie Event Grid kieruje wszystkie wiadomości MQTT.
- Stwórz subskrypcję zdarzeń typu push, aby przekierować te wiadomości do jednej z obsługiwanych usług Azure lub niestandardowego webhooka, albo utworzyć subskrypcję zdarzeń typu kolejka, aby pobierać wiadomości bezpośrednio z tematu przestrzeni nazw przez aplikację.
- Ustaw konfigurację routingu odnoszącą się do tematu, który stworzyłeś w pierwszym kroku.
- Temat niestandardowy jako miejsce docelowe routingu:
- Stwórz niestandardowy temat Event Grid , w którym Event Grid kieruje wszystkie komunikaty MQTT. Ten temat musi spełniać wymagania dotyczące routingu dla tematu niestandardowego usługi Event Grid.
- Utwórz subskrypcję zdarzeń usługi Event Grid w celu kierowania tych komunikatów do jednej z obsługiwanych usług platformy Azure lub niestandardowego punktu końcowego.
- Ustaw konfigurację routingu odnoszącą się do tematu, który stworzyłeś w pierwszym kroku.
Uwaga / Notatka
Wyłączenie dostępu do sieci publicznej w przestrzeni nazw powoduje awarię routingu MQTT.
Różnica między tematami przestrzeni nazw a tematami niestandardowymi jako celami routingu
W poniższej tabeli przedstawiono różnicę między tematami przestrzeni nazw a tematami niestandardowymi jako miejscem docelowym routingu. Szczegółowy podział tego, które kwoty i limity obejmuje każdy zasób Siatki Zdarzeń, zobacz Kwoty i limity.
| Punkt porównania | Temat przestrzeni nazw | Temat niestandardowy |
|---|---|---|
| Przepustowość | Wysoki, do 40 MB/s (ruch przychodzący) i 80 MB/s (ruch wychodzący) | Niskie, do 5 MB/s (przepływ danych przychodzących i wychodzących) |
| Dostarczanie na żądanie | Yes | No |
| Dostarczanie push do usługi Event Hubs | Yes | Yes |
| Dostarczanie wypychane do usług platformy Azure (funkcje, elementy webhook, kolejki i tematy usługi Service Bus, połączenia hybrydowe przekaźnika i kolejki magazynu) | No | Yes |
| Przechowywanie komunikatów | 7 dni | 1 dzień |
| Wymaganie przypisania roli | Nie jest to konieczne, ponieważ broker MQTT i temat przestrzeni nazw znajdują się w tej samej przestrzeni nazw | Wymagane, ponieważ przestrzeń nazw hostująca funkcjonalność brokera MQTT i niestandardowy temat to różne zasoby |
Wymagania dotyczące tematu niestandardowego usługi Event Grid na potrzeby routingu
Niestandardowy temat Event Grid, którego używasz do routingu, musi spełniać następujące wymagania:
- Musi korzystać ze schematu CloudEvents v1.0.
- Musi znajdować się w tym samym regionie co namespace.
- Musisz przypisać rolę Nadawcy danych Event Grid do siebie lub do wybranej tożsamości zarządzanej w temacie niestandardowym Event Grid, zanim zastosujesz konfigurację routingu. Aby przypisać rolę:
- W portalu przejdź do zasobu tematu Event Grid, który stworzyłeś.
- W menu kontroli dostępu (IAM) wybierz Dodaj przypisanie roli.
- Na zakładce Rola wybierz Nadawcę danych siatki zdarzeń, a następnie wybierz Następny.
- Na zakładce Członkowie wybierz Wybierz członków, a następnie wpisz swoją nazwę użytkownika Microsoft Entra w polu Select,
user@contoso.comktóre pojawia się (na przykład ). - Wybierz nazwę użytkownika Microsoft Entra, a następnie wybierz Przeglądaj + przypisz.
Konfiguracja witryny Azure Portal
Aby skonfigurować trasowanie:
- Przejdź do przestrzeni nazw w witrynie Azure Portal.
- W sekcji Routing wybierz Włącz routing.
- Dla typu Tematu wybierz Temat przestrzeni nazw lub Temat niestandardowy.
- W polu Topic wybierz utworzony temat, do którego są kierowane wszystkie komunikaty MQTT.
- W przypadku tematów niestandardowych lista pokazuje tylko te tematy, które spełniają wymagania dotyczące niestandardowych tematów Event Grid dla routingu.
- Jeśli wybierzesz niestandardowy temat, pojawi się sekcja Tożsamość zarządzana na potrzeby dostarczania. Wybierz jedną z poniższych opcji tożsamości używanej do uwierzytelniania brokera MQTT podczas dostarczania wiadomości MQTT do niestandardowego tematu:
- Brak: Przypisz sobie rolę Nadawcy danych z siatki zdarzeń w temacie niestandardowym.
- Tożsamość przypisana przez system: Włącz tożsamość przypisaną przez system dla przestrzeni nazw jako wymaganie wstępne i przypisz rolę Event Grid Data Sender do tożsamości przypisanej przez system dla tematu niestandardowego.
- Tożsamość przypisana przez użytkownika: Włącz tożsamość przypisaną przez użytkownika w przestrzeni nazw jako warunek wstępny i przypisz rolę Nadawcy danych Event Grid do wybranej tożsamości w niestandardowym temacie. Jeśli wybierzesz Tożsamość przypisaną przez użytkownika, pojawia się rozwijane menu, aby wybrać tę tożsamość.
- Wybierz opcję Zastosuj.
Aby uzyskać instrukcje konfiguracji wzbogacania, przejdź do konfiguracji portalu wzbogacania.
Konfiguracja interfejsu wiersza polecenia platformy Azure
az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --api-version 2023-06-01-preview --properties @./resources/NS.json
NS.json
{
"properties": {
"inputSchema": "CloudEventSchemaV1_0",
"topicSpacesConfiguration": {
"state": "Enabled",
"routeTopicResourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/topics/<Event Grid topic name>",
"routingIdentityInfo": {
"type": "UserAssigned",
"userAssignedIdentity": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<User-assigned identity>"
}
}
}
}
W routingIdentityInfo element None akceptuje SystemAssigned, UserAssigned lub type. Ustaw userAssignedIdentity tylko wtedy, gdy type ma wartość UserAssigned.
Aby uzyskać instrukcje konfiguracji wzbogacania, przejdź do konfiguracji interfejsu wiersza polecenia wzbogacania.
Zachowanie trasowania komunikatów MQTT
Podczas routingu komunikatów MQTT do tematów niestandardowych, usługa Event Grid zapewnia trwałe dostarczanie, ponieważ próbuje dostarczyć każdy komunikat co najmniej raz natychmiast. Jeśli dojdzie do awarii, usługa Event Grid albo ponawia próbę dostarczenia, albo odrzuca komunikat przeznaczony do trasowania. Usługa Event Grid nie gwarantuje kolejności dostarczania zdarzeń, więc subskrybenci mogą je otrzymywać w przypadkowej kolejności.
W poniższej tabeli opisano zachowanie routingu komunikatów MQTT na podstawie różnych błędów.
| Błąd | Opis błędu | Zachowanie |
|---|---|---|
| BłądNieznalezieniaTematu | Niestandardowy temat skonfigurowany do odbierania wszystkich wiadomości kierowanych przez MQTT został usunięty. | Event Grid odrzuca komunikat MQTT przeznaczony do trasowania. |
| AuthenticationError | Rola Nadawcy danych w Event Grid dla niestandardowego tematu, który został skonfigurowany jako cel dla komunikatów przesyłanych za pomocą MQTT, została usunięta. | Event Grid odrzuca komunikat MQTT przeznaczony do trasowania. |
| Za dużo żądań | Liczba komunikatów kierowanych przez MQTT na sekundę przekracza limit publikowania dla tematu niestandardowego. | Usługa Event Grid ponawia próbę kierowania komunikatu MQTT. |
| Błąd usługi | Nieoczekiwany błąd serwera z powodów operacyjnych serwera. | Usługa Event Grid ponawia próbę kierowania komunikatu MQTT. |
Usługa Event Grid używa polityki wycofywania wykładniczego przy ponownym próbowaniu dla routingu komunikatów MQTT podczas ponownych prób. Usługa Event Grid ponawia próbę dostarczenia zgodnie z następującym harmonogramem w miarę możliwości.
- 10 sekund
- 30 sekund
- 1 minuta
- 5 minut
- 10 minut
- 30 minut
- 1 godzina
- 3 godziny
- 6 godz.
- Co 12 godzin
Jeśli przekazana wiadomość MQTT w kolejce do ponownego dostarczenia zakończy się sukcesem, Event Grid próbuje usunąć tę wiadomość z kolejki powtórek na zasadzie najlepszych starań, ale nadal możesz otrzymać duplikaty.