Opis środowiska uruchomieniowego usługi Azure IoT Edge i jego architektury

Dotyczy:IoT Edge 1.4 checkmark IoT Edge 1.4

Ważne

Azure IoT Edge1.4 jest obsługiwaną wersją. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Środowisko uruchomieniowe usługi IoT Edge to kolekcja programów, które zmieniają urządzenie w urządzenie usługi IoT Edge. Składniki środowiska uruchomieniowego usługi IoT Edge łącznie umożliwiają urządzeniom tej usługi otrzymywanie kodu do uruchamiania w środowisku brzegowym oraz przekazywanie wyników.

Środowisko uruchomieniowe usługi IoT Edge jest odpowiedzialne za następujące funkcje na urządzeniach usługi IoT Edge:

  • Instaluje i aktualizuje pakiety robocze na urządzeniu.

  • Utrzymuje standardy zabezpieczeń usługi Azure IoT Edge na urządzeniu.

  • Upewnij się, że moduły usługi IoT Edge są zawsze uruchomione.

  • Przesyła raporty o kondycji modułów do chmury na potrzeby zdalnego monitorowania.

  • Zarządzanie komunikacją między:

    • Urządzenia podrzędne i urządzenia usługi IoT Edge
    • Moduły na urządzeniu usługi IoT Edge
    • Urządzenie usługi IoT Edge i chmura
    • Urządzenia usługi IoT Edge

Screenshot of how runtime communicates insights and module health to I o T Hub.

Obowiązki środowiska uruchomieniowego usługi IoT Edge dzielą się na dwie kategorie: komunikację i zarządzanie modułami. Te dwie role są wykonywane przez dwa składniki będące częścią środowiska uruchomieniowego usługi IoT Edge. Agent usługi IoT Edge wdraża i monitoruje moduły, podczas gdy centrum usługi IoT Edge jest odpowiedzialne za komunikację.

Zarówno agent usługi IoT Edge, jak i centrum usługi IoT Edge są modułami, podobnie jak każdy inny moduł uruchomiony na urządzeniu usługi IoT Edge. Są one czasami określane jako moduły środowiska uruchomieniowego.

Agent usługi IoT Edge

Agent usługi IoT Edge jest jednym z dwóch modułów tworzących środowisko uruchomieniowe usługi Azure IoT Edge. Odpowiada za tworzenie wystąpień modułów, zapewnienie, że będą one nadal uruchamiane i raportowanie stanu modułów z powrotem do usługi IoT Hub. Te dane konfiguracji są zapisywane jako właściwość bliźniaczej reprezentacji modułu agenta usługi IoT Edge.

Demon zabezpieczeń usługi IoT Edge uruchamia agenta usługi IoT Edge podczas uruchamiania urządzenia. Agent pobiera bliźniaczoną reprezentację modułu z usługi IoT Hub i sprawdza manifest wdrożenia. Manifest wdrożenia to plik JSON, który deklaruje moduły, które należy uruchomić.

Każdy element w manifeście wdrażania zawiera określone informacje o module i jest używany przez agenta usługi IoT Edge do kontrolowania cyklu życia modułu. Aby uzyskać więcej informacji na temat wszystkich właściwości używanych przez agenta usługi IoT Edge do sterowania modułami, przeczytaj informacje o właściwościach agenta usługi IoT Edge i bliźniaczych reprezentacji modułów usługi IoT Edge.

Agent usługi IoT Edge wysyła odpowiedź środowiska uruchomieniowego do usługi IoT Hub. Oto lista możliwych odpowiedzi:

  • 200 — OK
  • 400 — Konfiguracja wdrożenia jest źle sformułowana lub nieprawidłowa.
  • 417 — urządzenie nie ma zestawu konfiguracji wdrożenia.
  • 412 — wersja schematu w konfiguracji wdrożenia jest nieprawidłowa.
  • 406 — urządzenie usługi IoT Edge jest w trybie offline lub nie wysyła raportów o stanie.
  • 500 — wystąpił błąd w środowisku uruchomieniowym usługi IoT Edge.

Aby uzyskać więcej informacji na temat tworzenia manifestów wdrażania, zobacz Dowiedz się, jak wdrażać moduły i ustanawiać trasy w usłudze IoT Edge.

Zabezpieczenia

Agent usługi IoT Edge odgrywa kluczową rolę w zabezpieczeniach urządzenia usługi IoT Edge. Na przykład wykonuje akcje, takie jak weryfikowanie obrazu modułu przed jego uruchomieniem.

Aby uzyskać więcej informacji na temat platformy zabezpieczeń usługi Azure IoT Edge, przeczytaj o menedżerze zabezpieczeń usługi IoT Edge.

Centrum usługi IoT Edge

Centrum usługi IoT Edge to drugi moduł tworzący środowisko uruchomieniowe usługi Azure IoT Edge. Działa jako lokalny serwer proxy usługi IoT Hub, ujawniając te same punkty końcowe protokołu co usługa IoT Hub. Ta spójność oznacza, że klienci mogą łączyć się ze środowiskiem uruchomieniowym usługi IoT Edge tak samo jak w usłudze IoT Hub.

Centrum usługi IoT Edge nie jest pełną wersją usługi IoT Hub uruchomioną lokalnie. Centrum usługi IoT Edge dyskretnie deleguje niektóre zadania do usługi IoT Hub. Na przykład centrum usługi IoT Edge automatycznie pobiera informacje o autoryzacji z usługi IoT Hub w pierwszym połączeniu, aby umożliwić urządzeniu nawiązywanie połączenia. Po nawiązaniu pierwszego połączenia informacje o autoryzacji są buforowane lokalnie przez centrum usługi IoT Edge. Przyszłe połączenia z tego urządzenia są autoryzowane bez konieczności ponownego pobierania informacji o autoryzacji z chmury.

Komunikacja w chmurze

Aby zmniejszyć przepustowość używaną przez rozwiązanie usługi IoT Edge, centrum usługi IoT Edge optymalizuje liczbę rzeczywistych połączeń z chmurą. Centrum usługi IoT Edge pobiera połączenia logiczne z modułów lub urządzeń podrzędnych i łączy je w celu połączenia pojedynczego fizycznego z chmurą. Szczegóły tego procesu są niewidoczne dla reszty rozwiązania. Klienci uważają, że mają własne połączenie z chmurą, mimo że wszyscy są wysyłani za pośrednictwem tego samego połączenia. Centrum usługi IoT Edge może używać protokołu AMQP lub MQTT do komunikacji nadrzędnej z chmurą, niezależnie od protokołów używanych przez urządzenia podrzędne. Jednak centrum usługi IoT Edge obecnie obsługuje łączenie połączeń logicznych w jedno połączenie fizyczne przy użyciu protokołu AMQP jako protokołu nadrzędnego i jego możliwości multipleksowania. Protokół AMQP jest domyślnym protokołem nadrzędnym.

Screenshot showing relationships to I o T Edge hub as a gateway between physical devices and I o T Hub.

Centrum usługi IoT Edge może określić, czy jest on połączony z usługą IoT Hub. Jeśli połączenie zostanie utracone, centrum usługi IoT Edge zapisuje komunikaty lub aktualizacje bliźniaczej reprezentacji lokalnie. Po ponownym utworzeniu połączenia synchronizuje wszystkie dane. Lokalizacja używana dla tej tymczasowej pamięci podręcznej jest określana przez właściwość bliźniaczej reprezentacji modułu centrum usługi IoT Edge. Rozmiar pamięci podręcznej nie jest ograniczony i będzie rosnąć tak długo, jak urządzenie ma pojemność magazynu. Aby uzyskać więcej informacji, zobacz Możliwości trybu offline.

Komunikacja lokalna

Centrum usługi IoT Edge ułatwia komunikację lokalną. Umożliwia komunikację między urządzeniami i modułami przez brokera komunikatów, aby urządzenia i moduły były niezależne od siebie. Centrum usługi IoT Edge obsługuje funkcje routingu komunikatów obsługiwane przez usługę IoT Hub.

Korzystanie z routingu

Mechanizm brokera używa tych samych funkcji routingu co usługa IoT Hub, aby określić sposób przekazywania komunikatów między urządzeniami lub modułami. Pierwsze urządzenia lub moduły określają dane wejściowe, na których akceptują komunikaty i dane wyjściowe, do których zapisują komunikaty. Następnie deweloper rozwiązania może kierować komunikaty między źródłem (na przykład danymi wyjściowymi) i miejscem docelowym (na przykład danymi wejściowymi) z potencjalnymi filtrami.

Screenshot showing how routes between modules go through I o T Edge hub.

Routing może być używany przez urządzenia lub moduły utworzone za pomocą zestawów SDK urządzeń usługi Azure IoT przy użyciu protokołu AMQP. Wszystkie typy pierwotne usługi IoT Hub do obsługi komunikatów (na przykład telemetria), metody bezpośrednie, C2D, bliźniacze reprezentacje są obsługiwane, ale komunikacja za pośrednictwem tematów zdefiniowanych przez użytkownika nie jest obsługiwana.

Aby uzyskać więcej informacji na temat tras, zobacz Dowiedz się, jak wdrażać moduły i ustanawiać trasy w usłudze IoT Edge.

Dostępne funkcje mechanizmu brokera:

Funkcje Routing
Telemetria D2C
Telemetria lokalna
DirectMethods
Pokój typu twin
C2D dla urządzeń
Zamawianie
Filtrowanie
Tematy zdefiniowane przez użytkownika
Urządzenie-urządzenie
Lokalne emisje

Połączenie do centrum usługi IoT Edge

Centrum usługi IoT Edge akceptuje połączenia od klientów urządzeń lub modułów za pośrednictwem protokołu MQTT lub protokołu AMQP.

Uwaga

Centrum usługi IoT Edge obsługuje klientów łączących się przy użyciu protokołu MQTT lub AMQP. Nie obsługuje klientów korzystających z protokołu HTTP.

Gdy klient łączy się z centrum usługi IoT Edge, wykonywane są następujące czynności:

  1. Jeśli protokół Transport Layer Security (TLS) jest używany (zalecane), kanał TLS jest tworzony w celu ustanowienia zaszyfrowanej komunikacji między klientem a centrum usługi IoT Edge.
  2. Informacje o uwierzytelnianiu są wysyłane od klienta do centrum usługi IoT Edge w celu zidentyfikowania się.
  3. Centrum usługi IoT Edge autoryzuje lub odrzuca połączenie na podstawie zasad autoryzacji.

Bezpieczne połączenia (TLS)

Domyślnie centrum usługi IoT Edge akceptuje tylko połączenia zabezpieczone za pomocą protokołu Transport Layer Security (TLS), na przykład szyfrowane połączenia, których inna firma nie może odszyfrować.

Jeśli klient łączy się na porcie 8883 (MQTTS) lub 5671 (AMQPS) z centrum usługi IoT Edge, należy skompilować kanał TLS. Podczas uzgadniania protokołu TLS centrum usługi IoT Edge wysyła łańcuch certyfikatów, który klient musi zweryfikować. Aby zweryfikować łańcuch certyfikatów, certyfikat główny centrum usługi IoT Edge musi być zainstalowany jako zaufany certyfikat na kliencie. Jeśli certyfikat główny nie jest zaufany, biblioteka klienta zostanie odrzucona przez centrum usługi IoT Edge z błędem weryfikacji certyfikatu.

Kroki, które należy wykonać, aby zainstalować ten certyfikat główny brokera na klientach urządzeń, są opisane w przezroczystej bramie i w dokumentacji przygotowywania urządzenia podrzędnego. Moduły mogą używać tego samego certyfikatu głównego co centrum usługi IoT Edge przy użyciu interfejsu API demona usługi IoT Edge.

Uwierzytelnianie

Usługa IoT Edge Hub akceptuje tylko połączenia z urządzeń lub modułów, które mają tożsamość usługi IoT Hub. Na przykład te, które zostały zarejestrowane w usłudze IoT Hub i mają jedną z trzech metod uwierzytelniania klienta obsługiwanych przez centrum IoT, aby udowodnić swoją tożsamość: uwierzytelnianie kluczy symetrycznych, uwierzytelnianie z podpisem własnym X.509, uwierzytelnianie podpisane przez urząd certyfikacji X.509. Te tożsamości usługi IoT Hub można zweryfikować lokalnie przez centrum usługi IoT Edge, dzięki czemu połączenia mogą być nadal wykonywane w trybie offline.

Moduły usługi IoT Edge obecnie obsługują tylko uwierzytelnianie klucza symetrycznego.

Autoryzacja

Sprawdzając, czy klient należy do zestawu zaufanych klientów zdefiniowanych w usłudze IoT Hub. Zestaw zaufanych klientów jest określany przez skonfigurowanie relacji nadrzędny/podrzędny lub urządzenia/modułu w usłudze IoT Hub. Po utworzeniu modułu w usłudze IoT Edge relacja zaufania jest automatycznie ustanawiana między tym modułem a urządzeniem usługi IoT Edge. Jest to jedyny model autoryzacji obsługiwany przez mechanizm brokera routingu.

Konfiguracja zdalna

Centrum usługi IoT Edge jest całkowicie kontrolowane przez chmurę. Pobiera konfigurację z usługi IoT Hub za pośrednictwem bliźniaczej reprezentacji modułu. Bliźniacze reprezentacja zawiera żądaną właściwość o nazwie routes, która deklaruje sposób przekazywania komunikatów we wdrożeniu. Aby uzyskać więcej informacji na temat tras, zobacz deklarowanie tras.

Ponadto można wykonać kilka konfiguracji, konfigurując zmienne środowiskowe w centrum usługi IoT Edge.

Telemetria jakości środowiska uruchomieniowego

Usługa IoT Edge zbiera anonimowe dane telemetryczne ze środowiska uruchomieniowego hosta i modułów systemowych w celu poprawy jakości produktu. Te informacje są nazywane telemetrią jakości środowiska uruchomieniowego. Zebrane dane telemetryczne są okresowo wysyłane jako komunikaty urządzenie-chmura do usługi IoT Hub z agenta usługi IoT Edge. Te komunikaty nie są wyświetlane w zwykłych danych telemetrycznych klienta i nie używają żadnego limitu przydziału komunikatów.

Agent usługi IoT Edge i centrum generują metryki, które można zbierać, aby zrozumieć wydajność urządzenia. Podzestaw tych metryk jest zbierany przez agenta usługi IoT Edge w ramach telemetrii jakości środowiska uruchomieniowego. Metryki zebrane na potrzeby telemetrii jakości środowiska uruchomieniowego są oznaczone tagiem ms_telemetry. Aby uzyskać informacje o wszystkich dostępnych metrykach, zobacz Access built-in metrics (Uzyskiwanie dostępu do wbudowanych metryk).

Wszystkie dane osobowe lub organizacyjne, takie jak nazwy urządzeń i modułów, zostaną usunięte przed przekazaniem, aby zapewnić anonimowy charakter telemetrii jakości środowiska uruchomieniowego.

Agent usługi IoT Edge zbiera dane telemetryczne co godzinę i wysyła jeden komunikat do usługi IoT Hub co 24 godziny.

Jeśli chcesz zrezygnować z wysyłania danych telemetrycznych środowiska uruchomieniowego z urządzeń, istnieją dwa sposoby:

  • Ustaw zmienną środowiskową SendRuntimeQualityTelemetry na wartość dla elementu edgeAgentfalse lub
  • Usuń zaznaczenie opcji w witrynie Azure Portal podczas wdrażania.

Następne kroki