Aktualizowanie 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.
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 i 1.2, jej 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ą obsługiwane, nie są one testowane razem. W poniższych sekcjach w tym artykule zaktualizuj warstwy środowiska uruchomieniowego i aplikacji na urządzeniu:
- Aktualizowanie podsystemu zabezpieczeń
- Aktualizowanie kontenerów środowiska uruchomieniowego
- 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 wersje identyfikatorów URI obrazów edgehub i edgeagent są zgodne z główną i pomocniczą wersją 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.
- Na urządzeniu użyj polecenia
Aby znaleźć najnowszą wersję usługi Azure IoT Edge, zobacz 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ż plik 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 program iotedge jest aktualizowany, automatycznie próbuje zaktualizować pakiet libiothsm-std do najnowszej wersji, co może powodować konflikt zależności. Jeśli nie zamierzasz korzystać z najnowszej wersji, upewnij się, że są przeznaczone dla obu pakietów 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ć narzędzia curl, aby określić dowolną wersję z repozytorium wydań usługi IoT Edge. W zależności od wersji, którą chcesz zainstalować, znajdź odpowiednie pliki libiothsm-std i iotedge dla 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.
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 stopniowe — użyj tylko dwóch pierwszych wartości numeru wersji, aby uzyskać najnowszy obraz zgodny z tymi cyframi. 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 witryny Azure Portal domyślnie są tagami kroczącymi. 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 jej początkowej wersji. 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.
Aktualizowanie obrazu tagu rolkowego
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 środowisko uruchomieniowe kontenera, aby ściągnąć najnowszą wersję obrazu.
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.
W usłudze IoT Hub w witrynie Azure Portal wybierz urządzenie usługi IoT Edge i wybierz pozycję Ustaw moduły.
W sekcji Moduły usługi IoT Edge wybierz pozycję Ustawienia środowiska uruchomieniowego.
W obszarze Ustawienia środowiska uruchomieniowego zaktualizuj wartość obrazu usługi Edge Hub przy użyciu żądanej wersji. Nie wybieraj jeszcze pozycji Zapisz .
Zwiń ustawienia centrum usługi Edge lub przewiń w dół i zaktualizuj wartość Obrazu dla agenta usługi Edge przy użyciu tej samej żądanej wersji.
Wybierz pozycję Zapisz.
Wybierz pozycję Przejrzyj i utwórz, przejrzyj wdrożenie i wybierz pozycję 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 została zmieniona 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 aprowizację 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, takimi jak aktualizacja urządzenia dla usługi IoT Hub.
- Domyślny plik konfiguracji ma nową nazwę i lokalizację.
/etc/iotedge/config.yaml
Wcześniej informacje o konfiguracji urządzenia powinny być domyślnie włączone/etc/aziot/config.toml
. Polecenieiotedge 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 modułu 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 Nadaj usłudze IoT Edge dostęp do modułu TPM.
- Interfejs API obciążenia w najnowszej wersji zapisuje zaszyfrowane wpisy tajne w nowym formacie. Jeśli uaktualnisz starszą wersję do najnowszej wersji, istniejący główny klucz szyfrowania zostanie zaimportowany. Interfejs API obciążenia może odczytywać wpisy tajne zapisane w poprzednim formacie przy użyciu zaimportowanego klucza szyfrowania. Jednak interfejs API obciążenia nie może zapisywać zaszyfrowanych wpisów tajnych 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 należy zawsze utworzyć kopię zapasową danych przed uaktualnieniem, aby zachować możliwość obniżenia poziomu w razie potrzeby.
- Aby zapewnić zgodność z poprzednimi wersjami podczas łączenia urządzeń, które nie obsługują protokołu TLS 1.2, można skonfigurować centrum usługi 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łów 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 kopii zapasowej 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:
Zaktualizuj apt.
sudo apt-get update
Odinstaluj poprzednią wersję usługi IoT Edge, pozostawiając pliki konfiguracji.
sudo apt-get remove iotedge
Zainstaluj najnowszą wersję usługi IoT Edge wraz z usługą tożsamości IoT i mikro agentem usługi Microsoft Defender for IoT dla usługi Edge.
sudo apt-get install aziot-edge defender-iot-micro-agent-edge
Zaleca się zainstalowanie mikro agenta za pomocą agenta usługi Edge w celu włączenia monitorowania zabezpieczeń 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ń.
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