Udostępnij przez


Aktualizowanie usługi IoT Edge

Dotyczy:ikona potwierdzenia 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 Update IoT Edge.

W miarę wydania nowych wersji usługi IoT Edge należy zaktualizować urządzenia usługi IoT Edge pod kątem najnowszych funkcji i ulepszeń zabezpieczeń. Ten artykuł zawiera informacje o sposobie aktualizowania urządzeń usługi IoT Edge, gdy jest dostępna nowa wersja.

Jeśli chcesz przejść do nowszej wersji, należy zaktualizować dwa składniki logiczne urządzenia usługi IoT Edge. Pierwszy to podsystem zabezpieczeń. Mimo że architektura podsystemu zabezpieczeń zmieniła się między wersją 1.1 a 1.2, jego ogólne obowiązki pozostały takie same. Działa na urządzeniu, obsługuje zadania oparte na zabezpieczeniach i uruchamia moduły po uruchomieniu urządzenia. Obecnie podsystem zabezpieczeń można zaktualizować tylko z poziomu samego urządzenia. Drugi składnik jest środowiskiem uruchomieniowym składającym się z modułów agenta usługi IoT Edge i centrum usługi IoT Edge. W zależności od struktury wdrożenia środowisko uruchomieniowe można zaktualizować z urządzenia lub zdalnie.

Należy zaktualizować środowisko uruchomieniowe usługi IoT Edge i warstwy aplikacji przy użyciu tej samej wersji. Chociaż wersje niedopasowane są wspierane, nie są testowane wspólnie. Aby zaktualizować warstwy środowiska uruchomieniowego i aplikacji na urządzeniu, użyj poniższych sekcji tego artykułu:

  1. Aktualizowanie podsystemu zabezpieczeń
  2. Aktualizowanie kontenerów środowiska uruchomieniowego
  3. Weryfikowanie dopasowania wersji
    • Na urządzeniu użyj polecenia iotedge version , aby sprawdzić wersję podsystemu zabezpieczeń. Dane wyjściowe zawierają numery wersji głównej, pomocniczej i poprawkowej. Na przykład iotedge 1.4.2.
    • W ustawieniach środowiska uruchomieniowego wdrażania urządzenia sprawdź, czy edgehub i edgeagent wersje identyfikatora URI obrazu są zgodne z wersją główną i pomocniczą podsystemu zabezpieczeń. Jeśli wersja podsystemu zabezpieczeń to 1.4.2, wersje obrazu to 1.4. Na przykład mcr.microsoft.com/azureiotedge-hub:1.4 i mcr.microsoft.com/azureiotedge-agent:1.4.

Aby znaleźć najnowszą wersję usługi Azure IoT Edge, odwiedź Wersje usługi Azure IoT Edge.

Aktualizowanie podsystemu zabezpieczeń

Podsystem zabezpieczeń usługi IoT Edge zawiera zestaw składników natywnych, które należy zaktualizować przy użyciu menedżera pakietów na urządzeniu usługi IoT Edge.

Sprawdź wersję podsystemu zabezpieczeń uruchomionego na urządzeniu przy użyciu polecenia iotedge version. Jeśli używasz usługi IoT Edge dla systemu Linux w systemie Windows, musisz użyć protokołu SSH na maszynie wirtualnej z systemem Linux, aby sprawdzić wersję.

Ważne

Jeśli aktualizujesz urządzenie z wersji 1.0 lub 1.1 do najnowszej wersji, istnieją różnice w procesach instalacji i konfiguracji, które wymagają dodatkowych kroków. Aby uzyskać więcej informacji, zapoznaj się z krokami w dalszej części tego artykułu: Specjalny przypadek: aktualizacja z wersji 1.0 lub 1.1 do najnowszej wersji.

Na urządzeniach z systemem Linux x64 użyj narzędzia apt-get lub odpowiedniego menedżera pakietów, aby zaktualizować moduł środowiska uruchomieniowego do najnowszej wersji.

Zaktualizuj apt.

sudo apt-get update

Uwaga

Aby uzyskać instrukcje dotyczące pobierania najnowszej konfiguracji repozytorium od firmy Microsoft, zobacz wstępne kroki instalacji usługi IoT Edge.

Sprawdź, które wersje usługi IoT Edge są dostępne.

apt list -a iotedge

Jeśli chcesz zaktualizować moduł środowiska uruchomieniowego do najnowszej wersji, użyj następującego polecenia, które aktualizuje również libiothsm-std do najnowszej wersji:

sudo apt-get install iotedge

Jeśli chcesz zaktualizować moduł środowiska uruchomieniowego do określonej wersji, określ wersję z danych wyjściowych listy apt. Za każdym razem, gdy aktualizowany jest iotedge, automatycznie próbuje zaktualizować pakiet libiothsm-std do najnowszej wersji, co może spowodować konflikt zależności. Jeśli nie zamierzasz korzystać z najnowszej wersji, upewnij się, że oba pakiety są skonfigurowane dla tej samej wersji. Na przykład następujące polecenie instaluje określoną wersję wersji 1.1:

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Jeśli wersja, którą chcesz zainstalować, nie jest dostępna za pośrednictwem narzędzia apt-get, możesz użyć curl, aby targetować dowolną wersję z repozytorium wydań IoT Edge. W zależności od wersji, którą chcesz zainstalować, znajdź odpowiednie pliki libiothsm-std i iotedge dla swojego urządzenia. Dla każdego pliku kliknij prawym przyciskiem myszy link do pliku i skopiuj adres linku. Użyj adresu linku, aby zainstalować określone wersje tych składników:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

Następnie ponownie zastosuj konfigurację, aby upewnić się, że system jest w pełni zaktualizowany.

sudo iotedge config apply

Aktualizowanie kontenerów środowiska uruchomieniowego

Sposób aktualizowania agenta usługi IoT Edge i kontenerów centrum usługi IoT Edge zależy od tego, czy w danym wdrożeniu są używane tagi stopniowe (na przykład 1.1) czy określone tagi (na przykład 1.1.1).

Sprawdź wersję agenta usługi IoT Edge i modułów centrum usługi IoT Edge aktualnie na urządzeniu przy użyciu poleceń iotedge logs edgeAgent lub iotedge logs edgeHub. Jeśli używasz usługi IoT Edge dla systemu Linux w systemie Windows, musisz użyć protokołu SSH na maszynie wirtualnej z systemem Linux, aby sprawdzić wersje modułu środowiska uruchomieniowego.

znajdź wersję kontenera w dziennikach

Omówienie tagów usługi IoT Edge

Obrazy agenta usługi IoT Edge i centrum usługi IoT Edge są oznaczane wersją usługi IoT Edge, z którą są skojarzone. Istnieją dwa różne sposoby używania tagów z obrazami środowiska uruchomieniowego:

  • Tagi cykliczne — użyj tylko dwóch pierwszych wartości numeru wersji w celu uzyskania najnowszego obrazu pasującego do tych cyfr. Na przykład wersja 1.1 jest aktualizowana za każdym razem, gdy jest dostępna nowa wersja, aby wskazywała najnowszą wersję 1.1.x. Jeśli środowisko uruchomieniowe kontenera na urządzeniu usługi IoT Edge ponownie ściągnie obraz, moduły środowiska uruchomieniowego zostaną zaktualizowane do najnowszej wersji. Wdrożenia z portalu Azure domyślnie odbywają się w sposób kroczący. Takie podejście jest sugerowane do celów programistycznych.

  • Określone tagi — użyj wszystkich trzech wartości numeru wersji, aby jawnie ustawić wersję obrazu. Na przykład wersja 1.1.0 nie zmieni się po początkowym wydaniu. Możesz zadeklarować nowy numer wersji w manifeście wdrożenia, gdy wszystko będzie gotowe do aktualizacji. Takie podejście jest sugerowane do celów produkcyjnych.

Aktualizacja obrazu etykiety dynamicznej

Jeśli używasz tagów rolujących we wdrożeniu (na przykład mcr.microsoft.com/azureiotedge-hub:1.1), musisz wymusić na urządzeniu pobieranie najnowszej wersji obrazu przez środowisko uruchomieniowe kontenera.

Usuń lokalną wersję obrazu z urządzenia usługi IoT Edge. Na maszynach z systemem Windows odinstalowanie podsystemu zabezpieczeń powoduje również usunięcie obrazów środowiska uruchomieniowego, więc nie trzeba wykonywać tego kroku ponownie.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Może być konieczne użycie flagi force -f w celu usunięcia obrazów.

Usługa IoT Edge ściągnie najnowsze wersje obrazów środowiska uruchomieniowego i automatycznie uruchomi je na urządzeniu ponownie.

Aktualizowanie określonego obrazu tagu

Jeśli używasz określonych tagów we wdrożeniu (na przykład mcr.microsoft.com/azureiotedge-hub:1.1.1), wystarczy zaktualizować tag w manifeście wdrożenia i zastosować zmiany na urządzeniu.

  1. W usłudze IoT Hub w witrynie Azure Portal wybierz urządzenie usługi IoT Edge i wybierz pozycję Ustaw moduły.

  2. W sekcji Moduły IoT Edge wybierz Ustawienia uruchamiania.

    Konfigurowanie ustawień środowiska uruchomieniowego

  3. W ustawieniach uruchomieniowych zaktualizuj wartość obrazu dla Edge Hub na żądaną wersję. Nie wybieraj jeszcze Zapisz.

    Aktualizacja wersji obrazu Edge Hub

  4. Zwiń ustawienia Edge Hub, lub przewiń w dół, i zaktualizuj wartość Image dla Edge Agent na tę samą żądaną wersję.

    Zaktualizuj wersję Edge Hub Agent

  5. Wybierz Zapisz.

  6. Wybierz Przejrzyj + utwórz, przejrzyj wdrożenie, a następnie wybierz Utwórz.

Przypadek specjalny: aktualizacja z wersji 1.0 lub 1.1 do najnowszej wersji

Począwszy od wersji 1.2, usługa IoT Edge używa nowej nazwy pakietu i ma pewne różnice w procesach instalacji i konfiguracji. Jeśli masz urządzenie usługi IoT Edge w wersji 1.0 lub 1.1, skorzystaj z tych instrukcji, aby dowiedzieć się, jak zaktualizować najnowszą wersję.

Niektóre kluczowe różnice między najnowszą wersją a wersją 1.1 i starszą to:

  • Nazwa pakietu zmieniła się z iotedge na aziot-edge.
  • Pakiet libiothsm-std nie jest już używany. Jeśli używasz pakietu standardowego dostarczonego w ramach wersji usługi IoT Edge, konfiguracje można przenieść do nowej wersji. Jeśli użyto innej implementacji elementu libiothsm-std, wszystkie certyfikaty dostarczone przez użytkownika, takie jak certyfikat tożsamości urządzenia, urząd certyfikacji urządzenia i pakiet zaufania, będą musiały zostać ponownie skonfigurowane.
  • Nowa usługa tożsamości aziot-identity-service została wprowadzona w ramach wersji 1.2. Ta usługa obsługuje aprowizowanie tożsamości i zarządzanie nią dla usługi IoT Edge oraz innych składników urządzeń, które muszą komunikować się z usługą IoT Hub, na przykład device update for IoT Hub.
  • Domyślny plik konfiguracji ma nową nazwę i lokalizację. Poprzednio /etc/iotedge/config.yaml, informacje o konfiguracji urządzenia są teraz oczekiwane domyślnie w /etc/aziot/config.toml. Polecenie iotedge config import może służyć do migrowania informacji o konfiguracji ze starej lokalizacji i składni do nowej.
    • Polecenie importu nie może wykryć ani zmodyfikować reguł dostępu do zaufanego modułu platformy (TPM) urządzenia. Jeśli urządzenie korzysta z zaświadczania TPM, należy ręcznie zaktualizować plik /etc/udev/rules.d/tpmaccess.rules, aby udzielić dostępu do usługi aziottpm. Aby uzyskać więcej informacji, zobacz Przyznaj usłudze IoT Edge dostęp do modułu TPM.
  • Interfejs API obciążenia roboczego w najnowszej wersji zapisuje zaszyfrowane tajne dane w nowym formacie. Jeśli uaktualnisz starszą wersję do najnowszej wersji, istniejący główny klucz szyfrowania zostanie zaimportowany. Interfejs API do zarządzania obciążeniem może odczytywać tajne dane zapisane w poprzednim formacie przy użyciu zaimportowanego klucza szyfrowania. Jednak interfejs API obciążenia nie może zapisywać zaszyfrowanych tajemnic w starym formacie. Po ponownym zaszyfrowaniu wpisu tajnego przez moduł zostanie zapisany w nowym formacie. Wpisy tajne zaszyfrowane w najnowszej wersji są nieczytelne przez ten sam moduł w wersji 1.1. W przypadku utrwalania zaszyfrowanych danych w folderze lub woluminie zainstalowanym na hoście zawsze należy utworzyć kopię zapasową danych przed uaktualnieniem, aby móc wrócić do poprzedniej wersji w razie potrzeby.
  • Aby zapewnić zgodność z poprzednimi wersjami podczas łączenia urządzeń, które nie obsługują protokołu TLS 1.2, możesz skonfigurować centrum edge tak, aby nadal akceptował protokół TLS 1.0 lub 1.1 za pośrednictwem zmiennej środowiskowej SslProtocols. Należy pamiętać, że obsługa protokołu TLS 1.0 i 1.1 w usłudze IoT Hub jest uważana za starszą i może zostać również usunięta z usługi Edge Hub w przyszłych wersjach. Aby uniknąć przyszłych problemów, użyj protokołu TLS 1.2 jako jedynej wersji protokołu TLS podczas nawiązywania połączenia z usługą Edge Hub lub IoT Hub.
  • Wersja zapoznawcza eksperymentalnego brokera MQTT w usłudze Edge Hub 1.2 została zakończona i nie jest uwzględniona w usłudze Edge Hub 1.3 lub nowszej. Kontynuujemy udoskonalanie planów brokera MQTT na podstawie otrzymanych opinii. W międzyczasie, jeśli potrzebujesz zgodnego ze standardami brokera MQTT w usłudze IoT Edge, rozważ wdrożenie brokera open source, takiego jak Mosquitto jako moduł usługi IoT Edge.
  • Począwszy od wersji 1.2, gdy obraz bazowy zostanie usunięty z kontenera, kontener nadal działa i utrzymuje się po ponownym uruchomieniu. W wersji 1.1 po usunięciu obrazu zapasowego kontener zostanie natychmiast utworzony ponownie, a obraz kopii zapasowej zostanie zaktualizowany.

Przed automatyzacją wszystkich procesów aktualizacji sprawdź, czy działa na maszynach testowych.

Gdy wszystko będzie gotowe, wykonaj następujące kroki, aby zaktualizować usługę IoT Edge na urządzeniach:

  1. Zaktualizuj apt.

    sudo apt-get update
    
  2. Odinstaluj poprzednią wersję usługi IoT Edge, pozostawiając pliki konfiguracji.

    sudo apt-get remove iotedge
    
  3. Zainstaluj najnowszą wersję IoT Edge, wraz z usługą tożsamości IoT i microagentem Microsoft Defender for IoT dla Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Zaleca się zainstalowanie mikro agenta razem z agentem Edge w celu monitorowania i wzmacniania zabezpieczeń urządzeń brzegowych. Aby dowiedzieć się więcej o usłudze Microsoft Defender dla IoT, zobacz Co to jest usługa Microsoft Defender dla IoT dla konstruktorów urządzeń.

  1. Zaimportuj stary plik config.yaml do nowego formatu i zastosuj informacje o konfiguracji.

    sudo iotedge config import
    

Teraz, gdy usługa IoT Edge uruchomiona na urządzeniach została zaktualizowana, wykonaj kroki opisane w tym artykule, aby również zaktualizować kontenery środowiska uruchomieniowego.

Następne kroki

Wyświetl najnowsze wersje usługi Azure IoT Edge.

Bądź na bieżąco z najnowszymi aktualizacjami i ogłoszeniami w blogu Internet of Things