Omówienie rozszerzonych możliwości trybu offline dla urządzeń, modułów i urządzeń podrzędnych usługi IoT Edge
Dotyczy: IoT Edge 1.1
Ważne
Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi IoT Edge.
Usługa Azure IoT Edge obsługuje rozszerzone operacje offline na urządzeniach usługi IoT Edge i umożliwia również operacje offline na urządzeniach podrzędnych. Jeśli urządzenie usługi IoT Edge miało jedną okazję nawiązać połączenie z usługą IoT Hub, to urządzenie i wszystkie urządzenia podrzędne mogą nadal działać sporadycznie lub bez połączenia internetowego.
Jak to działa
Gdy urządzenie usługi IoT Edge przejdzie w tryb offline, centrum usługi IoT Edge przyjmuje trzy role. Najpierw przechowuje wszystkie komunikaty, które będą przekazywane w górę i zapisuje je do momentu ponownego nawiązania połączenia z urządzeniem. Po drugie, działa w imieniu usługi IoT Hub w celu uwierzytelniania modułów i urządzeń podrzędnych, aby mogły nadal działać. Po trzecie, umożliwia komunikację między urządzeniami podrzędnymi, które zwykle przechodzą przez usługę IoT Hub.
W poniższym przykładzie pokazano, jak scenariusz usługi IoT Edge działa w trybie offline:
Konfigurowanie urządzeń
Urządzenia usługi IoT Edge automatycznie mają włączone funkcje trybu offline. Aby rozszerzyć tę funkcję na inne urządzenia, należy skonfigurować urządzenia podrzędne, aby ufały przypisanemu urządzeniu nadrzędnego i kierować komunikację urządzenia do chmury za pośrednictwem elementu nadrzędnego jako bramy.
Synchronizowanie z usługą IoT Hub
Co najmniej raz po zainstalowaniu środowiska uruchomieniowego usługi IoT Edge urządzenie usługi IoT Edge musi być w trybie online w celu synchronizacji z usługą IoT Hub. W ramach tej synchronizacji urządzenie usługi IoT Edge pobiera szczegółowe informacje o wszystkich przypisanych do niej urządzeniach podrzędnych. Urządzenie usługi IoT Edge również bezpiecznie aktualizuje lokalną pamięć podręczną, aby włączyć operacje w trybie offline i pobiera ustawienia lokalnego magazynu komunikatów telemetrycznych.
Przejdź do trybu offline
Odłączone od usługi IoT Hub urządzenie usługi IoT Edge, wdrożone moduły i wszystkie urządzenia podrzędne mogą działać na czas nieokreślony. Moduły i urządzenia podrzędne mogą być uruchamiane i uruchamiane ponownie, uwierzytelniając się za pomocą centrum usługi IoT Edge w trybie offline. Dane telemetryczne powiązane z usługą IoT Hub są przechowywane lokalnie. Komunikacja między modułami lub między urządzeniami podrzędnymi jest utrzymywana za pośrednictwem metod bezpośrednich lub komunikatów.
Ponowne łączenie i ponowna synchronizacja za pomocą usługi IoT Hub
Po przywróceniu połączenia z usługą IoT Hub urządzenie usługi IoT Edge zostanie ponownie zsynchronizowane. Komunikaty przechowywane lokalnie są dostarczane do usługi IoT Hub od razu, ale zależą od szybkości połączenia, opóźnienia usługi IoT Hub i powiązanych czynników. Są one dostarczane w tej samej kolejności, w której były przechowywane.
Wszelkie różnice między żądanymi i zgłoszonymi właściwościami modułów i urządzeń są uzgadniane. Urządzenie usługi IoT Edge aktualizuje wszelkie zmiany w zestawie przypisanych urządzeń podrzędnych.
Ograniczenia i limity
Rozszerzone możliwości trybu offline opisane w tym artykule są dostępne w usłudze IoT Edge w wersji 1.0.7 lub nowszej. Starsze wersje mają podzbiór funkcji trybu offline. Nie można uaktualnić istniejących urządzeń usługi IoT Edge, które nie mają rozszerzonych możliwości trybu offline, zmieniając wersję środowiska uruchomieniowego, ale muszą zostać ponownie skonfigurowane przy użyciu nowej tożsamości urządzenia usługi IoT Edge w celu uzyskania tych funkcji.
Jako urządzenia podrzędne można dodawać tylko urządzenia inne niż IoT Edge.
Urządzenia usługi IoT Edge i przypisane do nich urządzenia podrzędne mogą działać w trybie offline przez czas nieokreślony po początkowej synchronizacji jednorazowej. Jednak przechowywanie komunikatów zależy od czasu wygaśnięcia (TTL) i dostępnego miejsca na dysku do przechowywania komunikatów.
Agent EdgeAgent urządzenia aktualizuje zgłaszane właściwości za każdym razem, gdy wystąpi zmiana stanu wdrożenia, taka jak nowe lub nieudane wdrożenie. Gdy urządzenie jest w trybie offline, agent EdgeAgent nie może zgłosić stanu w witrynie Azure Portal. W związku z tym stan urządzenia w witrynie Azure Portal może pozostać o wartości 200 OK, gdy urządzenie usługi IoT Edge nie ma łączności z Internetem.
Konfigurowanie urządzeń nadrzędnych i podrzędnych
Domyślnie urządzenie nadrzędne może mieć maksymalnie 100 elementów podrzędnych. Ten limit można zmienić, ustawiając zmienną środowiskową MaxConnectedClients w module edgeHub. Urządzenie podrzędne ma tylko jeden element nadrzędny.
Uwaga
Urządzenie podrzędne emituje dane bezpośrednio do Internetu lub do urządzeń bramy (usługa IoT Edge jest włączona lub nie). Urządzenie podrzędne może być urządzeniem podrzędnym lub urządzeniem bramy w topologii zagnieżdżonej.
Urządzenia podrzędne mogą być dowolnym urządzeniem spoza usługi IoT Edge zarejestrowanym w tym samym centrum IoT Hub.
Jeśli nie znasz tworzenia relacji nadrzędny-podrzędny między urządzeniem usługi IoT Edge i urządzeniem IoT, zobacz Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub. W sekcjach dotyczących klucza symetrycznego, z podpisem własnym X.509 i X.509 z podpisem urzędu certyfikacji przedstawiono przykłady używania witryny Azure Portal i interfejsu wiersza polecenia platformy Azure do definiowania relacji nadrzędny-podrzędny podczas tworzenia urządzeń. W przypadku istniejących urządzeń można zadeklarować relację ze strony szczegółów urządzenia nadrzędnego lub podrzędnego.
Konfigurowanie urządzenia nadrzędnego jako bramy
Relację elementu nadrzędnego/podrzędnego można traktować jako przezroczystą bramę, w której urządzenie podrzędne ma własną tożsamość w usłudze IoT Hub, ale komunikuje się za pośrednictwem chmury za pośrednictwem jej elementu nadrzędnego. Aby zapewnić bezpieczną komunikację, urządzenie podrzędne musi mieć możliwość sprawdzenia, czy urządzenie nadrzędne pochodzi z zaufanego źródła. W przeciwnym razie osoby trzecie mogą skonfigurować złośliwe urządzenia w celu personifikacji rodziców i przechwycenia komunikacji.
Jeden ze sposobów tworzenia tej relacji zaufania został szczegółowo opisany w następujących artykułach:
- Konfigurowanie urządzenia usługi IoT Edge, aby działało jako przezroczysta brama
- Łączenie urządzenia podrzędnego (podrzędnego) z bramą usługi Azure IoT Edge
Określanie serwerów DNS
Aby zwiększyć niezawodność, zdecydowanie zaleca się określenie adresów serwerów DNS używanych w danym środowisku. Aby ustawić serwer DNS dla usługi IoT Edge, zobacz rozwiązanie modułu agenta usługi Edge zgłasza "pusty plik konfiguracji" i nie uruchamiaj modułów na urządzeniu w artykule dotyczącym rozwiązywania problemów.
Opcjonalne ustawienia trybu offline
Jeśli urządzenia przechodzą w tryb offline, urządzenie nadrzędne usługi IoT Edge przechowuje wszystkie komunikaty z urządzenia do chmury, dopóki połączenie nie zostanie ponownie nawiązane. Moduł centrum usługi IoT Edge zarządza magazynem i przekazywaniem komunikatów w trybie offline. W przypadku urządzeń, które mogą przejść do trybu offline przez dłuższy czas, zoptymalizuj wydajność, konfigurując dwa ustawienia centrum usługi IoT Edge.
Najpierw zwiększ ustawienie czasu wygaśnięcia, aby centrum usługi IoT Edge przechowywało komunikaty wystarczająco długo, aby urządzenie mogło ponownie nawiązać połączenie. Następnie dodaj dodatkowe miejsce na dysku dla magazynu komunikatów.
Time to live (Czas wygaśnięcia)
Ustawienie czasu wygaśnięcia to czas (w sekundach), przez który może zostać dostarczony komunikat, zanim wygaśnie. Wartość domyślna to 7200 sekund (dwie godziny). Wartość maksymalna jest ograniczona tylko przez maksymalną wartość zmiennej całkowitej, która wynosi około 2 miliardów.
To ustawienie jest żądaną właściwością centrum usługi IoT Edge, która jest przechowywana w bliźniaczej reprezentacji modułu. Można ją skonfigurować w witrynie Azure Portal lub bezpośrednio w manifeście wdrożenia.
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
Hostowanie magazynu dla modułów systemowych
Komunikaty i informacje o stanie modułu są domyślnie przechowywane w lokalnym systemie plików kontenera usługi IoT Edge. W celu zwiększenia niezawodności, zwłaszcza w przypadku pracy w trybie offline, można również dedykować magazyn na urządzeniu usługi IoT Edge hosta. Aby uzyskać więcej informacji, zobacz Przyznawanie modułom dostępu do magazynu lokalnego urządzenia
Następne kroki
Dowiedz się więcej o sposobie konfigurowania przezroczystej bramy dla połączeń urządzeń nadrzędnych/podrzędnych: