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.
Usługa Azure Event Grid umożliwia klientom usługi telemetrii kolejkowania komunikatów (MQTT) komunikowanie się ze sobą i z usługami platformy Azure w celu obsługi rozwiązań Internetu rzeczy (IoT). Aby wykonać następujące scenariusze, możesz użyć funkcji brokera MQTT usługi Event Grid. Aby zapoznać się z przykładami kodu, które demonstrują te scenariusze, zobacz to repozytorium.
- Pozyskiwanie danych telemetrycznych przy użyciu wzorca obsługi komunikatów wiele do jednego. Ten wzorzec umożliwia aplikacji odciążenie obciążenia związanego z zarządzaniem dużą liczbą połączeń z urządzeniami z usługą Event Grid.
- Kontrolowanie klientów MQTT przy użyciu wzorca obsługi komunikatów typu żądanie-odpowiedź (jeden do jednego). Ten wzorzec umożliwia każdemu klientowi komunikowanie się z żadnym innym klientem bez ograniczeń, niezależnie od ról klientów.
- Emituj alerty do floty klientów przy użyciu wzorca obsługi komunikatów jeden do wielu. Ten wzorzec umożliwia aplikacji publikowanie tylko jednego komunikatu replikowanego przez usługę dla każdego zainteresowanego klienta.
- Integruj dane z klientów MQTT, rozsyłając komunikaty MQTT do usług platformy Azure i elementów webhook za pośrednictwem funkcji dostarczania wypychania HTTP. Ta integracja z usługami platformy Azure umożliwia tworzenie potoków danych rozpoczynających się od pozyskiwania danych z urządzeń IoT.
Broker MQTT jest idealny do wdrożenia między innymi scenariuszy motoryzacyjnych, mobilnych i produkcyjnych. Aby dowiedzieć się, jak tworzyć bezpieczne i skalowalne rozwiązania do łączenia milionów klientów MQTT z chmurą przy użyciu usług azure messaging i data analytics, zobacz architektury referencyjne dotyczące branży motoryzacyjnej i produkcyjnej .
Najważniejsze pojęcia
Poniższe kluczowe pojęcia są związane z funkcją brokera MQTT usługi Event Grid.
MQTT
MQTT to protokół komunikacyjny oparty na modelu publikacja-subskrypcja, który został zaprojektowany dla środowisk ograniczonych. Jest to popularny standard komunikacji dla scenariuszy IoT ze względu na wydajność, skalowalność i niezawodność. Broker MQTT umożliwia klientom publikowanie i subskrybowanie komunikatów za pośrednictwem protokołu MQTT w wersji 3.1.1, MQTT v3.1.1 za pośrednictwem protokołu WebSocket, MQTT v5 i MQTT v5 za pośrednictwem protokołu WebSocket. Na poniższej liście przedstawiono niektóre najważniejsze funkcje brokera MQTT:
Funkcje MQTT v5:
- Ostatnia willa i testament: powiadamia klientów MQTT o nagłych rozłączeniach innych klientów MQTT. Ta funkcja umożliwia zapewnienie przewidywalnego i niezawodnego przepływu komunikacji między klientami MQTT podczas nieoczekiwanych rozłączeń.
- Właściwości użytkownika: umożliwia dodawanie niestandardowych par klucz/wartość w nagłówku komunikatu w celu zapewnienia więcej kontekstu komunikatu. Na przykład uwzględnij cel lub źródło komunikatu, aby odbiorca mógł efektywnie obsłużyć komunikat.
- Wzorzec odpowiedzi na żądanie: umożliwia klientom korzystanie ze standardowego wzorca asynchronicznego odpowiedzi na żądanie, określając temat odpowiedzi i identyfikator korelacji w żądaniu, aby klient odpowiadał bez wcześniejszej konfiguracji.
- Interwał wygaśnięcia komunikatu: umożliwia zadeklarowanie brokera MQTT, kiedy lekceważyć komunikat, który nie jest już istotny lub prawidłowy. Przykłady obejmują ignorowanie nieaktualnych poleceń lub alertów.
- Aliasy tematów: pomaga klientom zmniejszyć rozmiar pola tematu, co sprawia, że transfer danych jest mniej kosztowny.
- Maksymalny rozmiar komunikatu: umożliwia klientom kontrolowanie maksymalnego rozmiaru komunikatu, który może obsłużyć z serwera.
- Odbieraj maksymalnie: umożliwia klientom kontrolowanie szybkości komunikatów w zależności od ich możliwości, takich jak szybkość przetwarzania lub możliwości magazynowania.
- Czyszczenie czasu rozpoczęcia i wygaśnięcia sesji: umożliwia klientom optymalizowanie niezawodności i bezpieczeństwa sesji przez zachowanie informacji o subskrypcji i komunikatów klienta dla konfigurowalnego przedziału czasu.
- Potwierdzenia negatywne: umożliwia klientom efektywne reagowanie na różne kody błędów.
- Pakiety rozłączania wysyłane przez serwer: umożliwia klientom efektywne obsługiwanie rozłączeń.
- Zachowanie MQTT: zapewnia, że broker przechowuje ostatni opublikowany komunikat w temacie i automatycznie dostarcza go do nowych subskrybentów. Ta funkcja umożliwia urządzeniom natychmiastowe odbieranie najnowszego znanego stanu bez oczekiwania na następną aktualizację. Ta funkcja umożliwia szybszą i bardziej niezawodną synchronizację stanu w systemach IoT.
Funkcje MQTT w wersji 3.1.1:
- Ostatnia willa i testament: powiadamia klientów MQTT o nagłych rozłączeniach innych klientów MQTT. Ta funkcja umożliwia zapewnienie przewidywalnego i niezawodnego przepływu komunikacji między klientami MQTT podczas nieoczekiwanych rozłączeń.
- Sesje trwałe: zapewnia niezawodność dzięki zachowaniu informacji o subskrypcji i komunikatach klienta, gdy klient rozłączy się.
- Jakość usług (QoS) 0 i 1: zapewnia klientom kontrolę nad wydajnością i niezawodnością komunikacji.
- Zachowanie MQTT: zapewnia, że broker przechowuje ostatni opublikowany komunikat w temacie i automatycznie dostarcza go do nowych subskrybentów. Ta funkcja umożliwia urządzeniom natychmiastowe odbieranie najnowszego znanego stanu bez oczekiwania na następną aktualizację. Ta funkcja umożliwia szybszą i bardziej niezawodną synchronizację stanu w systemach IoT.
W poniższych sekcjach opisano bieżące różnice między funkcjami obsługiwanymi przez brokera MQTT i specyfikacjami MQTT v5. Usługa QoS 2 nie jest obsługiwana.
Dowiedz się więcej na temat brokera MQTT i bieżących ograniczeń.
Model publikowania i subskrybowania komunikatów
Model obsługi komunikatów publikowania i subskrybowania zapewnia skalowalną i asynchroniczną komunikację z klientami. Umożliwia klientom odciążanie obciążenia obsługi dużej liczby połączeń i komunikatów z usługą. Za pomocą modelu obsługi komunikatów publikowania i subskrybowania klienci mogą efektywnie komunikować się przy użyciu wzorców obsługi komunikatów "jeden do wielu", "wiele do jednego" i "jeden do jednego":
- Jeden do wielu: umożliwia klientom publikowanie tylko jednego komunikatu replikowanego przez usługę dla każdego zainteresowanego klienta.
- Wiele do jednego: umożliwia klientom odciążanie obciążeń związanych z zarządzaniem dużą liczbą połączeń z brokerem MQTT.
- Jeden do jednego: umożliwia każdemu klientowi komunikowanie się z innym klientem bez ograniczeń, niezależnie od ról klientów.
Namespace
Przestrzeń nazw usługi Event Grid to kontener zarządzania dla zasobów obsługujących funkcje brokera MQTT wraz z zasobami obsługującymi funkcje dostarczania ściągania. Klient MQTT może nawiązać połączenie z brokerem MQTT i subskrybować komunikaty. Broker MQTT uwierzytelnia klientów, autoryzuje żądania publikowania-subskrybowania i przekazuje komunikaty do zainteresowanych klientów. Dowiedz się więcej na temat koncepcji przestrzeni nazw.
Klienci
Klienci odnoszą się do urządzeń lub aplikacji IoT, które publikują i subskrybują komunikaty MQTT.
Urządzenia IoT to obiekty fizyczne połączone z Internetem w celu przesyłania danych telemetrycznych i odbierania poleceń. Są to czujniki, urządzenia, maszyny lub inne obiekty wyposażone w osadzone czujniki i oprogramowanie. Czujniki i oprogramowanie umożliwiają im komunikowanie się oraz interakcję ze sobą nawzajem i ze środowiskiem wokół nich. Wartość urządzeń IoT leży w ich zdolności do dostarczania danych i szczegółowych informacji w czasie rzeczywistym, co umożliwia firmom i osobom fizycznym podejmowanie świadomych decyzji oraz poprawę wydajności i produktywności.
Aplikacje IoT to oprogramowanie przeznaczone do interakcji i przetwarzania danych z urządzeń IoT. Zazwyczaj obejmują one składniki, takie jak zbieranie danych, przetwarzanie, magazyn, wizualizacja i analiza. Te aplikacje umożliwiają użytkownikom monitorowanie i kontrolowanie połączonych urządzeń, automatyzowanie zadań i uzyskiwanie szczegółowych informacji na podstawie danych generowanych przez urządzenia IoT.
Uwierzytelnianie klienta
Usługa Event Grid ma rejestr klientów, który przechowuje informacje o klientach mających pozwolenie na połączenie się z nią. Zanim klient będzie mógł nawiązać połączenie, musi istnieć wpis dla tego klienta w rejestrze klienta. Gdy klient nawiązuje połączenie z brokerem MQTT, musi uwierzytelniać się za pomocą brokera MQTT na podstawie poświadczeń przechowywanych w rejestrze tożsamości. Broker MQTT obsługuje następujące mechanizmy uwierzytelniania klienta:
- Uwierzytelnianie certyfikatu X.509 jest standardem uwierzytelniania branżowego na urządzeniach IoT.
- Uwierzytelnianie identyfikatora Entra firmy Microsoft to standard uwierzytelniania platformy Azure dla aplikacji. Dowiedz się więcej o uwierzytelnianiu klienta MQTT.
- Uwierzytelnianie elastyczne:
- Uwierzytelnianie OAuth 2.0 JSON Web Token (JWT) zapewnia uproszczoną, bezpieczną i elastyczną opcję dla klientów MQTT, które nie są aprowidowane na platformie Azure.
- Niestandardowe uwierzytelnianie elementu webhook umożliwia dynamiczne uwierzytelnianie połączeń MQTT przez zewnętrzne punkty końcowe HTTP (webhook). Używa weryfikacji JWT identyfikatora Entra firmy Microsoft w celu zapewnienia bezpiecznego dostępu.
Kontrola dostępu
Kontrola dostępu ma kluczowe znaczenie dla scenariuszy IoT, biorąc pod uwagę ogromną skalę środowisk IoT oraz unikatowe wyzwania związane z zabezpieczeniami ograniczonych urządzeń. Usługa Event Grid zapewnia kontrolę dostępu opartą na rolach za pomocą elastycznego modelu kontroli dostępu, którego można użyć do zarządzania autoryzacją klientów w celu publikowania lub subskrybowania tematów.
Dzięki ogromnej skali środowisk IoT przypisywanie uprawnień dla każdego klienta do każdego tematu jest niezwykle żmudne. Elastyczna kontrola dostępu do usługi Event Grid rozwiązuje to wyzwanie w skali poprzez grupowanie klientów i tematów w grupy klientów i przestrzenie tematów. Po utworzeniu grup klientów i obszarów tematów można skonfigurować powiązanie uprawnień w celu udzielenia dostępu do grupy klientów w celu publikowania lub subskrybowania obszaru tematu.
Przestrzenie tematów zapewniają również szczegółową kontrolę dostępu, umożliwiając kontrolowanie autoryzacji każdego klienta w grupie klienta w celu publikowania lub subskrybowania własnego tematu. Ta szczegółowa kontrola dostępu jest osiągana przy użyciu zmiennych w szablonach tematów. Dowiedz się więcej o kontroli dostępu.
Trasowanie
Usługa Event Grid umożliwia kierowanie komunikatów MQTT do usług platformy Azure lub elementów webhook w celu dalszego przetwarzania. W związku z tym można tworzyć rozwiązania od końca do końca przy użyciu danych IoT na potrzeby analizy danych, przechowywania i wizualizacji oraz inne zastosowania. Korzystając z konfiguracji routingu, można wysyłać wszystkie komunikaty MQTT od klientów do tematu przestrzeni nazw usługi Event Grid lub tematu niestandardowego usługi Event Grid. Po zapoznaniu się z komunikatami w temacie można skonfigurować subskrypcję zdarzeń w celu korzystania z komunikatów z tematu. Na przykład dzięki tej funkcji możesz użyć usługi Event Grid do kierowania danych telemetrycznych z urządzeń IoT do usługi Event Hubs, a następnie do usługi Azure Stream Analytics, aby uzyskać szczegółowe informacje z danych telemetrycznych urządzenia. Dowiedz się więcej o routingu.
Zdarzenia MQTT dla strumieni zdarzeń Microsoft Fabric
Kierowanie komunikatów MQTT i zdarzeń w chmurze z przestrzeni nazw usługi Event Grid do strumieni zdarzeń usługi Microsoft Fabric na potrzeby analiz, magazynowania i wizualizacji danych IoT w czasie rzeczywistym.
Integracja brokera MQTT usługi Edge
Usługa Event Grid integruje się z operacjami usługi Azure IoT , aby połączyć możliwości brokera MQTT na urządzeniach brzegowych z funkcją brokera MQTT usługi Event Grid w chmurze. Operacje usługi Azure IoT udostępnia nowy rozproszony broker MQTT na potrzeby obliczeń brzegowych działających w klastrach Kubernetes z obsługą usługi Azure Arc. Może nawiązać połączenie z brokerem MQTT usługi Event Grid za pomocą uwierzytelniania identyfikatora Entra firmy Microsoft przy użyciu tożsamości zarządzanej przypisanej przez system, co upraszcza zarządzanie poświadczeniami. Broker MQTT zapewnia wysoką dostępność, skalowalność i zabezpieczenia dla urządzeń i aplikacji IoT. Dowiedz się więcej na temat łączenia brokera MQTT operacji usługi Azure IoT z brokerem MQTT usługi Event Grid.
Zdarzenia cyklu życia klienta MQTT
Zdarzenia cyklu życia klienta umożliwiają aplikacjom reagowanie na zdarzenia dotyczące stanu połączenia klienta lub operacji zasobów klienta. Możesz śledzić stan połączenia klienta, reagować za pomocą akcji ograniczania ryzyka dla rozłączeń klientów i śledzić przestrzeń nazw, do której są dołączani klienci podczas automatycznych przełączeń w tryb failover. Dowiedz się więcej o zdarzeniach cyklu życia klienta MQTT.
Niestandardowe nazwy domen
Obsługa niestandardowych nazw domen umożliwia użytkownikom przypisywanie własnych nazw domen do punktów końcowych MQTT i HTTP przestrzeni nazw usługi Event Grid, co zwiększa bezpieczeństwo i upraszcza konfigurację klienta. Ta funkcja pomaga przedsiębiorstwom spełnić wymagania dotyczące zabezpieczeń i zgodności oraz wyeliminować konieczność modyfikowania klientów już połączonych z domeną. Przypisanie niestandardowej nazwy domeny do wielu przestrzeni nazw może również pomóc zwiększyć dostępność, zarządzać pojemnością i obsługiwać mobilność klienta między regionami. Dowiedz się więcej o nazwach domen niestandardowych.
Zachowywanie wiadomości MQTT
Zachowany komunikat MQTT służy do przechowywania ostatniej znanej dobrej wartości tematu na brokerze, zapewniając, że nowi subskrybenci natychmiast otrzymają najnowszy komunikat bez oczekiwania na następną publikację. Ta funkcja jest szczególnie przydatna w scenariuszach, takich jak raportowanie stanu urządzenia, sygnały sterowania lub dane konfiguracji, w których najnowszy komunikat musi być zawsze dostępny dla klientów podczas nawiązywania połączenia. Aby uzyskać więcej informacji, zobacz Obsługa zachowywania MQTT w usłudze Azure Event Grid.
Publikowanie HTTP
Funkcja publikowania HTTP umożliwia aplikacjom publikowanie komunikatów MQTT w brokerze MQTT usługi Event Grid za pośrednictwem prostego żądania HTTPS POST bez obsługi aktywnej sesji MQTT. Najlepiej nadaje się do scenariuszy, w których klienci MQTT nie są wykonalne lub konieczne, takie jak funkcje bezserwerowe, usługi w chmurze lub aplikacje zaplecza. Publikowanie HTTP umożliwia architekturom opartym na zdarzeniach niezawodne i bezpieczne wstrzykiwanie komunikatów MQTT. Typowe przypadki użycia obejmują publikowanie poleceń urządzeń, alertów lub sygnałów sterowania z usług Azure Functions, Azure Logic Apps lub integracji interfejsu API. Aby uzyskać więcej informacji, zobacz Publikowanie http komunikatów MQTT w usłudze Azure Event Grid.
Koncepcje
Dowiedz się więcej na temat pojęć brokera MQTT w usłudze Event Grid:
- Terminologia
- Uwierzytelnianie klienta
- Kontrola dostępu
- Obsługa protokołu MQTT
- Trasowanie komunikatów MQTT
- Zdarzenia cyklu życia klienta MQTT
Treści powiązane
Dowiedz się więcej o brokerze MQTT i jego głównych pojęciach: