Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Routing komunikatów umożliwia wysyłanie komunikatów z urządzeń do usług w chmurze w sposób zautomatyzowany, skalowalny i niezawodny. Trasowanie komunikatów może służyć do:
Wysyłaj komunikaty i zdarzenia telemetrii urządzenia do wbudowanego punktu końcowego oraz niestandardowych punktów końcowych. Zdarzenia, które można kierować, obejmują zdarzenia cyklu życia urządzenia, zdarzenia zmiany bliźniaka urządzenia, zdarzenia zmiany bliźniaka cyfrowego i zdarzenia stanu połączenia urządzenia.
Filtruj dane przed rozsyłaniem, stosując zaawansowane zapytania. Routing komunikatów umożliwia wykonywanie zapytań dotyczących właściwości komunikatów i treści komunikatów, a także tagów bliźniaczych modeli urządzeń i właściwości bliźniaczych modeli urządzeń. Aby uzyskać więcej informacji, zobacz zapytania dotyczące routingu komunikatów.
Usługa IoT Hub definiuje wspólny format dla wszystkich komunikatów z urządzenia do chmury w celu współdziałania między protokołami. Aby uzyskać więcej informacji, zobacz Tworzenie i odczytywanie komunikatów usługi IoT Hub.
Uwaga
Niektóre z funkcji wymienionych w tym artykule, takie jak komunikacja zewnętrzna urządzeń, bliźniaki urządzeń i zarządzanie urządzeniami, są dostępne tylko w warstwie standardowej usługi IoT Hub. Aby uzyskać więcej informacji na temat warstw podstawowej i standardowej/bezpłatnej usługi IoT Hub, zobacz Wybieranie odpowiedniej warstwy i rozmiaru usługi IoT Hub dla rozwiązania.
Punkty końcowe routingu
Każde centrum IoT ma domyślny punkt końcowy routingu o nazwie komunikaty/zdarzenia zgodne z usługą Event Hubs. Możesz również utworzyć niestandardowe punkty końcowe wskazujące inne usługi w ramach subskrypcji platformy Azure.
Usługa IoT Hub obsługuje obecnie następujące punkty końcowe na potrzeby routingu komunikatów:
- Wbudowany punkt końcowy
- Kontenery magazynu
- Kolejki „Service Bus”
- Tematy usługi Service Bus
- Centra zdarzeń
- Cosmos DB
Aby uzyskać więcej informacji na temat każdego z tych punktów końcowych, zobacz Punkty końcowe usługi IoT Hub.
Każdy komunikat jest kierowany do wszystkich punktów końcowych, których zapytania dotyczące routingu są zgodne, co oznacza, że komunikat może być kierowany do wielu punktów końcowych. Jeśli jednak komunikat pasuje do wielu tras wskazujących ten sam punkt końcowy, usługa IoT Hub dostarcza komunikat do tego punktu końcowego tylko raz.
IoT Hub potrzebuje uprawnień do zapisu na tych punktach końcowych usługi, aby routing komunikatów działał. Jeśli skonfigurujesz punkty końcowe za pośrednictwem witryny Azure Portal, zostaną dodane niezbędne uprawnienia. Jeśli skonfigurujesz punkty końcowe przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure, musisz podać uprawnienie dostępu do zapisu.
Aby dowiedzieć się, jak tworzyć punkty końcowe, zobacz Zarządzanie trasami i punktami końcowymi przy użyciu witryny Azure Portal.
Upewnij się, że usługi są skonfigurowane tak, aby obsługiwały oczekiwaną przepływność. Jeśli na przykład używasz usługi Event Hubs jako niestandardowego punktu końcowego, musisz skonfigurować jednostki przepustowości dla tego centrum zdarzeń, aby móc obsłużyć strumień zdarzeń, które planujesz wysłać za pomocą routingu komunikatów IoT Hub. Podobnie w przypadku korzystania z kolejki usługi Service Bus jako punktu końcowego należy skonfigurować maksymalny rozmiar, aby zapewnić, że kolejka będzie mogła przechowywać wszystkie dane przychodzące, dopóki nie zostaną pobrane przez użytkowników. Podczas pierwszej konfiguracji rozwiązania IoT może być konieczne monitorowanie innych punktów końcowych i wprowadzanie korekt rzeczywistego obciążenia.
Jeśli niestandardowy punkt końcowy ma ustawienia zapory sieciowej, rozważ użycie wyjątku pierwszej strony zaufanej przez Microsoft.
Trasowanie do punktu końcowego w innej subskrypcji
Jeśli zasób punktu końcowego znajduje się w innej subskrypcji niż centrum IoT, możesz użyć różnych metod uwierzytelniania w zależności od wymagań dotyczących zabezpieczeń:
Uwierzytelnianie oparte na kluczach: parametry połączenia umożliwiają uwierzytelnianie w punktach końcowych w różnych subskrypcjach, a nawet w różnych dzierżawach. Ta metoda używa kluczy dostępu lub parametrów połączenia punktu końcowego do uwierzytelniania.
Tożsamość zarządzana przypisana przez użytkownika: w celu zwiększenia bezpieczeństwa możesz skonfigurować centrum IoT jako zaufaną usługę firmy Microsoft i użyć tożsamości zarządzanej przypisanej przez użytkownika do uwierzytelniania. Ta metoda wymaga skonfigurowania tożsamości zarządzanej przed utworzeniem niestandardowego punktu końcowego.
Aby uzyskać więcej informacji na temat uwierzytelniania tożsamości zarządzanej, patrz: Łączność wychodząca z usługi IoT Hub do innych zasobów platformy Azure.
Routing zapytań
Funkcja routingu komunikatów w usłudze IoT Hub umożliwia filtrowanie danych przed ich przesłaniem do punktów końcowych. Każde zapytanie routingu ma następujące właściwości:
| Nieruchomość | Opis |
|---|---|
| Nazwa/nazwisko | Unikatowa nazwa identyfikująca zapytanie. |
| Źródło | Źródło strumienia danych, na które należy podjąć działania. Na przykład dane telemetryczne urządzenia. |
| Warunek | Wyrażenie kwerendy trasowania przeprowadzanej na podstawie właściwości aplikacji komunikatów, właściwości systemu, treści komunikatu, tagów i właściwości bliźniaka urządzenia w celu określenia, czy stanowi dopasowanie dla punktu końcowego. |
| Punkt końcowy | Nazwa punktu końcowego, w którym usługa IoT Hub wysyła komunikaty zgodne z zapytaniem. Zalecamy wybranie punktu końcowego w tym samym regionie co centrum IoT. |
Pojedynczy komunikat może być zgodny z warunkiem wielu zapytań routingu, w tym przypadku usługa IoT Hub dostarcza komunikat do punktu końcowego skojarzonego z każdym dopasowanym zapytaniem. Usługa IoT Hub również automatycznie deduplikuje dostarczanie komunikatów. Jeśli komunikat pasuje do wielu zapytań, które mają to samo miejsce docelowe, usługa IoT Hub dostarcza ją tylko raz do tego miejsca docelowego.
Aby uzyskać więcej informacji, zobacz Składnia zapytania dotyczącego routingu komunikatów w usłudze IoT Hub.
Odczytywanie danych trasowanych
Skorzystaj z poniższych artykułów, aby dowiedzieć się, jak odczytywać komunikaty z punktu końcowego.
Odczyt z wbudowanego punktu końcowego
Odczyt z usługi Blob Storage
Odczyt z usługi Event Hubs
Odczyt z kolejek usługi Service Bus
Przeczytaj tematy dotyczące usługi Service Bus
Trasa powrotu
Trasa zapasowa wysyła wszystkie komunikaty, które nie spełniają warunków zapytania w żadnej z istniejących tras, do wbudowanego punktu końcowego (messages/events), który jest zgodny z usługą Event Hubs. Jeśli routing komunikatów jest włączony, możesz włączyć funkcję rezerwowej trasy. Po utworzeniu dowolnej trasy dane przestaną przepływać do wbudowanego punktu końcowego, chyba że zostanie utworzona trasa do tego punktu końcowego. Jeśli nie ma ścieżek do standardowego punktu końcowego i włączona jest ścieżka rezerwowa, tylko komunikaty, które nie pasują do żadnych warunków zapytania na ścieżkach, są wysyłane do standardowego punktu końcowego. Nawet jeśli wszystkie istniejące trasy zostaną usunięte, możliwość trasy rezerwowej musi być włączona, aby odbierać wszystkie dane we wbudowanym punkcie końcowym.
Możesz włączyć lub wyłączyć trasę rezerwową w portalu Azure na stronie Routingu komunikatów. Możesz również użyć usługi Azure Resource Manager w przypadku FallbackRouteProperties, aby użyć niestandardowego punktu końcowego dla ścieżki zapasowej.
Zdarzenia niezwiązane z telemetrią
Oprócz telemetrii urządzenia, trasowanie komunikatów umożliwia również wysyłanie zdarzeń nietelemetrycznych, w tym:
- Zdarzenia zmiany bliźniaka urządzenia
- Zdarzenia cyklu życia urządzenia
- Zdarzenia cyklu życia procesów urządzeń
- Zdarzenia zmiany bliźniaka cyfrowego
- Zdarzenia stanu połączenia urządzenia
Jeśli na przykład trasa zostanie utworzona przy użyciu źródła danych ustawionego na zdarzenia zmiany bliźniaczej reprezentacji urządzenia, usługa IoT Hub wysyła komunikaty do punktu końcowego, które zawierają zmianę bliźniaczej reprezentacji urządzenia. Podobnie, jeśli trasa jest tworzona przy użyciu źródła danych ustawionego na zdarzenia cyklu życia urządzenia, usługa IoT Hub wysyła komunikat wskazujący, czy urządzenie lub moduł został usunięty, czy utworzony. Aby uzyskać więcej informacji na temat zdarzeń cyklu życia urządzenia, zobacz Powiadomienia dotyczące cyklu życia urządzenia i modułu.
W przypadku korzystania z usługi Azure IoT Plug and Play deweloper może tworzyć trasy ze źródłem danych ustawionym na zdarzenia zmiany cyfrowej reprezentacji bliźniaczej, a usługa IoT Hub wysyła komunikaty za każdym razem, gdy właściwość cyfrowej reprezentacji bliźniaczej zostanie ustawiona lub zmieniona, zostanie zamieniona lub gdy wystąpi zdarzenie zmiany dla bazowej reprezentacji urządzenia. Na koniec, jeśli trasa jest tworzona za pomocą źródła danych ustawionego na Zdarzenia stanu połączenia urządzenia, usługa IoT Hub wysyła komunikat wskazujący, czy urządzenie zostało połączone, czy odłączone.
Usługa IoT Hub integruje się również z usługą Azure Event Grid, aby publikować zdarzenia urządzeń w celu obsługi integracji w czasie rzeczywistym i automatyzacji przepływów pracy na podstawie tych zdarzeń. Aby dowiedzieć się, która usługa najlepiej pasuje do Twojego scenariusza, zobacz różnice między kierowaniem wiadomości a usługą Event Grid.
Ograniczenia dotyczące zdarzeń stanów połączeń z urządzeniami
Zdarzenia stanu połączenia urządzenia są dostępne dla urządzeń łączących się przy użyciu protokołu MQTT lub AMQP albo przy użyciu jednego z tych protokołów za pośrednictwem protokołu WebSocket. Żądania wysyłane tylko za pomocą protokołu HTTPS nie wyzwalają powiadomień o stanie połączenia urządzenia. Aby usługa IoT Hub zaczęła wysyłać zdarzenia stanu połączenia urządzenia, po otwarciu połączenia urządzenie musi wywołać operację odbierania komunikatów z chmury do urządzenia lub operację wysyłania danych telemetrycznych z urządzenia do chmury . Poza zestawami narzędzi deweloperskich (SDK) usługi Azure IoT, w MQTT te operacje są równoznaczne z subskrybowaniem lub publikowaniem w odpowiednich kanałach wiadomości. Za pośrednictwem protokołu AMQP te operacje są równoznaczne z dołączaniem lub przesyłaniem komunikatu w odpowiednich ścieżkach linków. Aby uzyskać więcej informacji, zobacz następujące artykuły:
- Komunikacja z usługą IoT Hub przy użyciu protokołu MQTT
- Komunikacja z usługą IoT Hub przy użyciu protokołu AMQP
Usługa IoT Hub nie zgłasza każdego zdarzenia połączenia i rozłączenia poszczególnych urządzeń, lecz publikuje bieżący stan połączenia ustalony na podstawie okresowej migawki, wykonywanej co 60 sekund. Odbieranie tego samego zdarzenia stanu połączenia z różnymi numerami sekwencji lub różnymi zdarzeniami stanu połączenia oznaczają, że wystąpiła zmiana stanu połączenia urządzenia w 60-sekundowym oknie.
Testowanie tras
Podczas tworzenia nowej trasy lub edytowania istniejącej trasy należy przetestować zapytanie dotyczące trasy przy użyciu przykładowego komunikatu. Poszczególne trasy można testować lub testować wszystkie trasy jednocześnie, a podczas testu nie są kierowane żadne komunikaty do punktów końcowych. Do testowania można używać witryny Azure Portal, usługi Azure Resource Manager, programu Azure PowerShell i interfejsu wiersza polecenia platformy Azure. Wyniki pomagają określić, czy przykładowy komunikat jest zgodny, czy nie pasuje do zapytania, czy też nie można uruchomić testu, ponieważ przykładowa wiadomość lub składnia zapytania są niepoprawne. Aby dowiedzieć się więcej, zobacz Testowanie trasy i testowanie wszystkich tras.
Opóźnienie
Podczas kierowania komunikatów telemetrycznych z urządzenia do chmury, po utworzeniu pierwszej trasy, występuje niewielki wzrost opóźnienia całkowitego.
W większości przypadków średni wzrost opóźnienia wynosi mniej niż 500 milisekund. Jednak opóźnienie może się różnić i może być wyższe w zależności od warstwy centrum IoT i architektury rozwiązania. Możesz monitorować opóźnienie, korzystając z metryk IoT Hub, takich jak Routing: opóźnienie komunikatów dla wiadomości/zdarzeń lub d2c.endpoints.latency.builtIn.events. Tworzenie lub usuwanie dowolnej trasy po tej pierwszej nie ma wpływu na opóźnienie końcowe.
Monitorowanie i rozwiązywanie problemów
Usługa IoT Hub udostępnia kilka metryk związanych z routingiem i punktami końcowymi, które umożliwiają omówienie kondycji centrum i wysyłanych komunikatów. Możesz również śledzić błędy występujące podczas oceny zapytania routingu i stanu punktu końcowego, jak postrzega to usługa IoT Hub, w kategorii tras w dziennikach zasobów usługi IoT Hub. Aby dowiedzieć się więcej na temat korzystania z metryk i dzienników zasobów w usłudze IoT Hub, zobacz Monitorowanie usługi Azure IoT Hub.
Aby uzyskać stan kondycji punktów końcowych, możesz użyć interfejsu API REST Get Endpoint Health .
Skorzystaj z przewodnika rozwiązywania problemów z routingiem, aby uzyskać więcej szczegółów i pomoc techniczną dotyczącą rozwiązywania problemów z routingiem.