Udostępnij za pomocą


Rozwiązywanie problemów z routingiem komunikatów

Ten artykuł zawiera wskazówki dotyczące monitorowania i rozwiązywania problemów dotyczących typowych problemów i rozwiązywania typowych problemów z routingiem komunikatów usługi IoT Hub.

Monitorowanie routingu komunikatów

Zalecamy monitorowanie metryk usługi IoT Hub związanych z routingiem komunikatów i punktami końcowymi w celu wyświetlenia przeglądu wysłanych komunikatów . Możesz również utworzyć ustawienie diagnostyczne służące do wysyłania operacji dla tras w dziennikach zasobów usługi IoT Hub do dzienników usługi Azure Monitor, usługi Event Hubs lub usługi Azure Storage na potrzeby przetwarzania niestandardowego. Aby dowiedzieć się więcej o metrykach, dziennikach zasobów i ustawieniach diagnostycznych, zobacz Monitorowanie usługi IoT Hub. Aby zapoznać się z samouczkiem, zobacz Konfigurowanie metryk i dzienników zasobów oraz korzystanie z nich za pomocą centrum IoT Hub.

Zalecamy również włączenie trasy rezerwowej, jeśli chcesz zachować komunikaty, które nie pasują do zapytania w żadnej z tras. Te komunikaty można przechowywać w wbudowanym punkcie końcowym dla skonfigurowanej liczby dni przechowywania.

Najczęstsze problemy

Poniżej przedstawiono najczęstsze problemy występujące podczas routingu komunikatów. Aby rozpocząć rozwiązywanie problemów, wybierz problem, aby uzyskać szczegółowe kroki.

Komunikaty z moich urządzeń nie są kierowane zgodnie z oczekiwaniami

Aby rozwiązać ten problem, przeanalizuj następujące informacje.

Metryki routingu dla tego punktu końcowego

Wszystkie metryki usługi IoT Hub związane z trasowaniem są poprzedzone prefiksem Routing. Możesz połączyć informacje z wielu metryk, aby zidentyfikować główną przyczynę problemów. Na przykład użyj metryki Trasowanie dostarczania, aby zidentyfikować liczbę komunikatów, które zostały dostarczone do punktu końcowego lub porzucone, gdy nie były zgodne z zapytaniami na żadnej z tras, a trasa rezerwowa została wyłączona. Sprawdź metrykę Opóźnienie trasowania, aby sprawdzić, czy opóźnienie dostarczania komunikatów jest stałe, czy rosnące. Rosnące opóźnienie może wskazywać na problem z określonym punktem końcowym i zalecamy sprawdzenie kondycji punktu końcowego. Te metryki routingu mają również wymiary , które zawierają szczegółowe informacje na temat metryki, takiej jak typ punktu końcowego, określona nazwa punktu końcowego i powód, dla którego komunikat nie został dostarczony.

Dzienniki zasobów dotyczące wszelkich problemów operacyjnych

Obserwuj dzienniki zasobów Trasy, aby uzyskać więcej informacji na temat operacji routingu i punktu końcowego lub zidentyfikować błędy i odpowiedni kod błędu, aby dokładniej zrozumieć problem. Na przykład nazwa operacji RouteEvaluationError w dzienniku wskazuje, że nie można ocenić trasy z powodu problemu z formatem komunikatu. Skorzystaj z porad podanych dla określonych nazw operacji, aby rozwiązać problem. Gdy zdarzenie jest rejestrowane jako błąd, dziennik zawiera również więcej informacji na temat przyczyn niepowodzenia oceny. Jeśli na przykład nazwa operacji to Punkt końcowy niezdrowy, kod błędu 403004 wskazuje, że w punkcie końcowym brakuje miejsca.

Kondycja punktu końcowego

Użyj interfejsu API REST Pobierz kondycję punktu końcowego , aby uzyskać stan kondycji punktów końcowych. Ten interfejs API zawiera również informacje dotyczące ostatniego wysłania komunikatu do punktu końcowego, ostatniego znanego błędu, czasu ostatniego znanego błędu i ostatniej próby wysłania dla tego punktu końcowego. Użyj możliwego ograniczenia ryzyka przewidzianego dla określonego ostatniego znanego błędu.

Nagle przestałem dostawać komunikaty w wbudowanym punkcie końcowym

Aby rozwiązać ten problem, przeanalizuj następujące informacje.

Czy utworzono nową trasę?

Po utworzeniu trasy dane przestaną przepływać do wbudowanego punktu końcowego, chyba że zostanie utworzona trasa do tego punktu końcowego. Aby zapewnić, że komunikaty będą nadal przepływać do wbudowanego punktu końcowego w przypadku dodania nowej trasy, skonfiguruj trasę do punktu końcowego zdarzeń .

Czy trasa rezerwowa była wyłączona?

Trasa rezerwowa wysyła wszystkie komunikaty, które nie spełniają żadnego z warunków zapytania w żadnej z istniejących tras do wbudowanej usługi Event Hubs (komunikaty/zdarzenia), które są zgodne z usługą Event Hubs. Jeśli routing komunikatów jest włączony, możesz włączyć funkcję trasy rezerwowej. Jeśli nie ma tras do wbudowanego punktu końcowego i jest włączona trasa rezerwowa, do wbudowanego punktu końcowego są wysyłane tylko komunikaty, które nie pasują do żadnych warunków zapytania dotyczących tras. Ponadto jeśli wszystkie istniejące trasy zostaną usunięte, należy włączyć trasę rezerwową, aby odbierać wszystkie dane we wbudowanym punkcie końcowym.

Możesz włączyć lub wyłączyć trasę rezerwową w witrynie Azure Portal przy użyciu bloku Routing komunikatów dla centrum IoT. Możesz również użyć Menadżera zasobów Azure dla FallbackRouteProperties, aby użyć niestandardowego punktu końcowego dla alternatywnej trasy.

Ostatnie znane błędy dotyczące punktów końcowych routingu usługi IoT Hub

Sprawdzenie stanu zdrowia punktów końcowych w interfejsie API REST dostarcza informacji o stanie zdrowia punktów końcowych oraz ostatnio występującym błędzie, co umożliwia zidentyfikowanie przyczyny, dla której punkt końcowy nie działa poprawnie. W tej tabeli wymieniono najczęstsze błędy.

Ostatni znany błąd Opis/w przypadku wystąpienia Możliwe środki zaradcze
Przemijający Wystąpił przejściowy błąd i usługa IoT Hub ponowi próbę wykonania operacji. Obserwuj dzienniki zasobów tras.
Błąd Wewnętrzny Wystąpił błąd podczas dostarczania komunikatu do punktu końcowego. Ten błąd stanowi wewnętrzny wyjątek, ale zwróć również uwagę na dzienniki zasobów tras.
Brak autoryzacji Usługa IoT Hub nie jest autoryzowana do wysyłania komunikatów do określonego punktu końcowego. Sprawdź, czy parametry połączenia są aktualne dla punktu końcowego. Jeśli została zmieniona, rozważ aktualizację usługi IoT Hub. Jeśli punkt końcowy używa tożsamości zarządzanej, sprawdź, czy podmiot zabezpieczeń usługi IoT Hub ma wymagane uprawnienia do obiektu docelowego.
Ograniczono Usługa IoT Hub doznaje limitów podczas zapisywania komunikatów w punkcie końcowym. Przejrzyj limity przepustowości dla punktu końcowego, którego dotyczy problem. W razie potrzeby zmodyfikuj konfiguracje punktu końcowego w celu skalowania w górę.
Przerwa czasowa Przekroczenie czasu operacji. Spróbuj ponownie wykonać operację.
Nie znaleziono Zasób docelowy nie istnieje. Upewnij się, że zasób docelowy istnieje.
Nie znaleziono kontenera Kontener magazynu nie istnieje. Sprawdź, czy kontener do przechowywania istnieje.
Kontener wyłączony Kontener do przechowywania jest wyłączony. Upewnij się, że pojemnik magazynowy jest włączony.
Przekroczono maksymalny rozmiar wiadomości Routing komunikatów ma limit rozmiaru komunikatów o rozmiarze 256 KB. Rozmiar komunikatu, który jest kierowany, przekroczył ten limit. Sprawdź, czy rozmiar komunikatu można zmniejszyć, używając mniejszej liczby właściwości aplikacji lub mniejszej liczby wzbogacenia komunikatów.
Partycjonowanie i WykrywanieDuplikatówNieobsługiwane Usługa Service Bus może nie mieć włączonego wykrywania duplikatów. Wyłącz wykrywanie duplikatów z usługi Service Bus lub rozważ użycie jednostki bez wykrywania duplikatów.
Podmiot z obsługą sesji nie jest obsługiwany Usługa Service Bus może nie mieć włączonej sesji. Wyłącz sesję z usługi Service Bus lub rozważ użycie jednostki bez sesji.
Brak pasujących subskrypcji dla wiadomości Nie ma subskrypcji do pisania komunikatu w temacie usługi Service Bus. Utwórz subskrypcję dla komunikatów usługi IoT Hub, do których mają być kierowane.
PunktKońcowyZewnętrznieWyłączony Punkt końcowy nie jest w stanie aktywnym, więc usługa IoT Hub może wysyłać do niego komunikaty. Włącz punkt końcowy, aby przywrócić go do stanu aktywnego.
Przekroczono Maksymalną Głębokość Kolejki Urządzenia Osiągnięto limit rozmiaru usługi Service Bus. Rozważ usunięcie komunikatów z docelowej usługi Event Hubs, aby umożliwić pozyskiwanie nowych komunikatów do usługi Event Hubs.

Trasuje dzienniki zasobów

Poniżej przedstawiono nazwy operacji i kody błędów zarejestrowane w dziennikach zasobów tras.

Nazwy operacji

Nazwa operacji poziom Opis
NiezdefiniowanaOcenaTrasy Informacja Nie można ocenić komunikatu z podanym warunkiem. Jeśli na przykład właściwość w warunku zapytania dotyczącego trasy jest nieobecna w komunikacie. Dowiedz się więcej o składni zapytania routingu.
RouteEvaluationError (Błąd oceny trasy) Błąd Wystąpił błąd podczas oceniania komunikatu z powodu problemu z formatem komunikatu. Na przykład ten błąd zostanie zarejestrowany, jeśli kodowanie zawartości nie jest określone lub typ zawartości jest nieprawidłowy w komunikacie. Należy je ustawić we właściwościach systemu.
Odrzucony komunikat Błąd Komunikat został odrzucony i nie został przekierowany. Może to być spowodowane przyczynami, np. komunikat nie pasował do żadnego zapytania trasowania lub punkt końcowy był martwy, przez co komunikat nie mógł zostać dostarczony po kilku ponownych próbach. Zalecamy uzyskanie dodatkowych szczegółów dotyczących punktu końcowego przy użyciu interfejsu API REST get endpoint health.
Niezdrowy punkt końcowy Błąd Punkt końcowy nie akceptuje komunikatów z usługi IoT Hub i usługa IoT Hub próbuje ponownie wysłać komunikaty. Zalecamy zaobserwowanie ostatniego znanego błędu za pośrednictwem interfejsu API REST uzyskiwania kondycji punktu końcowego.
Martwy punkt końcowy Błąd Punkt końcowy nie akceptuje komunikatów z usługi IoT Hub przez ponad godzinę. Zalecamy zaobserwowanie ostatniego znanego błędu za pośrednictwem interfejsu API REST uzyskiwania kondycji punktu końcowego.
Punkt końcowy w dobrej kondycji Informacja Punkt końcowy jest w dobrej kondycji i odbiera komunikaty z usługi IoT Hub. Ten komunikat nie jest rejestrowany w sposób ciągły, ale rejestrowany tylko wtedy, gdy punkt końcowy ponownie stanie się w dobrej kondycji. Ten komunikat oznacza, że usługa IoT Hub nie może wysyłać komunikatów do punktu końcowego, ale punkt końcowy jest teraz w dobrej kondycji.
Osierocona wiadomość Informacja Wiadomość nie pasuje do żadnej trasy.
Nieprawidłowa wiadomość Błąd Komunikat jest nieprawidłowy z powodu niezgodności z punktem końcowym. Zalecamy sprawdzenie konfiguracji punktu końcowego.

Operacje UndefinedRouteEvaluation, RouteEvaluationError i OrphanedMessage są ograniczane i rejestrowane nie więcej niż raz na minutę dla usługi IoT Hub.

Typowe kody błędów

Kod błędu Opis
401002 Dostęp nieautoryzowany do usługi IoT Hub
413001 Komunikat za duży
403004 Przekroczono maksymalną głębokość kolejki urządzenia
503008 Ograniczenie przepustowości łącza odbiorczego
500000 Błąd serwera ogólnego
401 Brak autoryzacji
503 Usługa niedostępna
500001 Błąd serwera
400103 Nieprawidłowe kodowanie zawartości lub typ zawartości
404001 Nie znaleziono urządzenia

Dalsze kroki

Jeśli potrzebujesz dodatkowej pomocy, możesz skontaktować się z ekspertami platformy Azure na forach microsoft Q&A i Stack Overflow. Alternatywnie możesz zgłosić incydent do pomocy technicznej Azure. Przejdź do witryny pomocy technicznej platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną.