Aktualisieren von IoT Edge
Gilt für: IoT Edge 1.1
Wichtig
IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
Wenn neue Versionen des IoT Edge-Diensts veröffentlicht werden, sollten Sie Ihre IoT Edge-Geräte aktualisieren, damit sie über die neuesten Funktionen und Verbesserungen der Sicherheit verfügen. Dieser Artikel enthält Informationen zum Aktualisieren Ihrer IoT Edge-Geräte, wenn eine neue Version verfügbar ist.
Zwei logische Komponenten eines IoT Edge-Geräts müssen bei der Umstellung auf eine neuere Version aktualisiert werden. Die erste Komponente ist das Sicherheitssubsystem. Obwohl die Architektur des Sicherheitssubsystems zwischen Version 1.1 und 1.2 geändert wurde, blieben ihre Gesamtverantwortlichkeiten unverändert. Es wird auf dem Gerät ausgeführt, verarbeitet sicherheitsbasierte Aufgaben und startet die Module, wenn das Gerät gestartet wird. Das Sicherheitssubsystem kann zurzeit nur vom Gerät selbst aktualisiert werden. Die zweite Komponente ist die Runtime, die aus den IoT Edge-Hub- und den IoT Edge-Agent-Modulen besteht. Je nachdem, wie Ihre Bereitstellung strukturiert ist, kann die Runtime vom Gerät oder remote aktualisiert werden.
Sie sollten die IoT Edge-Runtime und die Anwendungsebenen so aktualisieren, dass sie die dieselbe Version verwenden. Nicht übereinstimmende Versionen werden zwar unterstützt, wurden aber nicht zusammen getestet. In den folgenden Abschnitte in diesem Artikel erfahren Sie, wie Sie die Runtime und die Anwendungsebenen auf einem Gerät aktualisieren:
- Aktualisieren des Sicherheitssubsystems
- Aktualisieren der Runtimecontainer
- Übereinstimmung der Versionen überprüfen
- Verwenden Sie
iotedge version
auf Ihrem Gerät, um die Version des Sicherheitssubsystems zu überprüfen. Die Ausgabe enthält die Nummern der Haupt-, Neben- und Revisionsversion. Beispiel: iotedge 1.4.2. - Überprüfen Sie in den Runtimeeinstellungen der Gerätebereitstellung, ob Image-URI-Versionen edgehub und edgeagent mit der Haupt- und Nebenversion des Sicherheitssubsystems übereinstimmen. Wenn die Version des Sicherheitssubsystems 1.4.2 lautet, wird für die Imageversionen 1.4 verwenden. Beispiel: mcr.microsoft.com/azureiotedge-hub:1.4 und mcr.microsoft.com/azureiotedge-agent:1.4.
- Verwenden Sie
Informationen zur neuesten Version von Azure IoT Edge finden Sie unter Azure IoT Edge releases (Azure IoT Edge-Versionen).
Aktualisieren des Sicherheitssubsystems
Das IoT Edge-Sicherheitssubsystem enthält eine Gruppe von nativen Komponenten, die auf dem IoT Edge-Gerät mithilfe des Paket-Managers aktualisiert werden müssen.
Überprüfen Sie die Version des auf Ihrem Gerät ausgeführten Sicherheitssubsystems mithilfe des Befehls iotedge version
. Wenn Sie IoT Edge für Linux unter Windows verwenden, müssen Sie eine SSH-Verbindung mit dem virtuellen Linux-Computer erstellen, um die Version zu überprüfen.
Wichtig
Wenn Sie ein Gerät von Version 1.0 oder 1.1 auf die neueste Version aktualisieren, gibt es Unterschiede bei den Installations- und Konfigurationsprozessen, die zusätzliche Schritte erfordern. Weitere Informationen finden Sie in den Schritten weiter unten in diesem Artikel: Sonderfall: Update von 1.0 oder 1.1 auf die aktuelle Version.
Verwenden Sie auf Linux x64-Geräten „apt-get“ oder Ihren entsprechenden Paket-Manager, um das Runtimemodul auf die neueste Version zu aktualisieren.
Aktualisieren Sie „apt“.
sudo apt-get update
Hinweis
Anleitungen zum Herunterladen der neuesten Repositorykonfiguration von Microsoft finden Sie in den vorbereitenden Schritten zum Installieren von IoT Edge.
Überprüfen Sie, welche IoT Edge-Versionen verfügbar sind.
apt list -a iotedge
Wenn Sie ein Update auf die neueste Version des Runtimemoduls durchführen möchten, verwenden Sie den folgenden Befehl, mit dem auch libiothsm-std auf die neueste Version aktualisiert wird:
sudo apt-get install iotedge
Wenn Sie ein Update auf eine bestimmte Version des Runtimemoduls durchführen möchten, geben Sie die Version aus der Ausgabe von „apt list“ an. Bei jeder Aktualisierung von iotedge wird automatisch versucht, auch das Paket libiothsm-std auf die neueste Version zu aktualisieren, was ggf. einen Abhängigkeitskonflikt zur Folge hat. Wenn Sie kein Update auf die neueste Version durchführen, achten Sie darauf, beide Pakete auf die gleiche Version auszurichten. Mit dem folgenden Befehl wird beispielsweise eine bestimmte Version des Release 1.1 installiert:
sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1
Sollte die Version, die Sie installieren möchten, nicht über „apt-get“ verfügbar sein, können Sie mithilfe von cURL eine beliebige Version aus dem Repository für IoT Edge-Releases als Ziel verwenden. Suchen Sie für die zu installierende Version nach den entsprechenden Dateien vom Typ libiothsm-std und iotedge für Ihr Gerät. Klicken Sie bei jeder Datei mit der rechten Maustaste auf den Dateilink, und kopieren Sie die Linkadresse. Verwenden Sie die Linkadresse, um die jeweiligen Versionen dieser Komponenten zu installieren:
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
Wenden Sie dann die Konfiguration erneut an, um sicherzustellen, dass das System vollständig aktualisiert wird.
sudo iotedge config apply
Aktualisieren der Runtimecontainer
Die Art, auf die Sie die IoT Edge-Agent- und IoT Edge-Hubcontainer aktualisieren, hängt davon ab, ob Sie bei der Bereitstellung fortlaufende Versionstags (wie 1.1) oder spezifische Versionstags (wie 1.1.1) verwenden.
Überprüfen Sie die Version der aktuell auf Ihrem Gerät ausgeführten IoT Edge-Agent- und IoT Edge-Hubmodule mithilfe der Befehle iotedge logs edgeAgent
und iotedge logs edgeHub
. Wenn Sie IoT Edge für Linux unter Windows verwenden, müssen Sie eine SSH-Verbindung mit dem virtuellen Linux-Computer erstellen, um die Versionen des Runtimemoduls zu überprüfen.
Grundlagen von IoT Edge-Tags
Die IoT Edge-Agent- und IoT Edge-Hubimages sind im Tag mit der IoT Edge-Version gekennzeichnet, der sie zugeordnet sind. Es gibt zwei Möglichkeiten zum Verwenden von Tags mit den Runtime-Images:
Fortlaufende Tags: Verwenden Sie nur die ersten zwei Stellen der Versionsnummer, um zum neuesten Image zu gelangen, das mit diesen Stellen übereinstimmt. Beispielsweise wird, sobald eine neue Version veröffentlicht wird, 1.1 immer so aktualisiert, dass auf die neueste 1.1.x-Version verwiesen wird. Wenn die Containerruntime auf Ihrem IoT Edge-Gerät das Image erneut per Pull herunterlädt, werden die Laufzeitmodule auf die neueste Version aktualisiert. Bereitstellungen aus dem Azure-Portal weisen standardmäßig fortlaufende Tags auf. Dieses Vorgehen wird für Entwicklungszwecke vorgeschlagen.
Spezifische Tags: Verwenden Sie alle drei Stellen der Versionsnummer, um die Imageversion explizit festzulegen. Beispielsweise ändert sich 1.1.0 nach dem ersten Release nicht. Sie können im Bereitstellungsmanifest eine neue Versionsnummer deklarieren, wenn Sie zur Aktualisierung bereit sind. Dieses Vorgehen wird für Produktionszwecke vorgeschlagen.
Aktualisieren eines Images mit fortlaufendem Tag
Wenn Sie in Ihrer Bereitstellung fortlaufende Tags verwenden (Beispiel: mcr.microsoft.com/azureiotedge-hub:1.1), müssen Sie die Containerruntime auf Ihrem Gerät dazu zwingen, per Pull die neueste Version des Images zu laden.
Löschen Sie die lokale Version des Images von Ihrem IoT Edge-Gerät. Auf Windows-Computern werden bei der Deinstallation des Sicherheitssubsystems auch die Runtimeimages entfernt, sodass Sie diesen Schritt nicht erneut ausführen müssen.
docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1
Möglicherweise müssen Sie das force-Flag -f
verwenden, um die Images zu entfernen.
Der IoT Edge-Dienst lädt per Pull die neuesten Versionen der Runtimeimages herunter und startet sie automatisch wieder auf Ihrem Gerät.
Aktualisieren eines Images mit spezifischem Tag
Wenn Sie bei der Bereitstellung spezifische Tags verwenden (z. B. mcr.microsoft.com/azureiotedge-hub:1.1.1), müssen Sie lediglich das Tag in Ihrem Bereitstellungsmanifest aktualisieren und die Änderungen auf Ihr Gerät anwenden.
Wählen Sie Ihr IoT Edge-Gerät im IoT-Hub im Azure-Portal aus, und klicken Sie dann auf Module festlegen.
Klicken Sie im Abschnitt IoT Edge-Module auf Laufzeiteinstellungen.
Ändern Sie in den Laufzeiteinstellungen den Wert Image für den Edge-Hub in die gewünschte Version. Wählen Sie noch nicht Speichern aus.
Reduzieren Sie die Edge Hub-Einstellungen, oder scrollen Sie nach unten, und ändern Sie den Wert Image für den Edge-Agent in dieselbe gewünschte Version.
Wählen Sie Speichern.
Klicken Sie auf Überprüfen + erstellen, überprüfen Sie die Bereitstellung, und klicken Sie dann auf Erstellen.
Sonderfall: Update von 1.0 oder 1.1 auf die aktuelle Version
Ab Version 1.2 verwendet der IoT Edge-Dienst einen neuen Paketnamen, und es gibt einige Unterschiede bei den Installations- und Konfigurationsprozessen. Wenn Sie ein IoT Edge-Gerät haben, auf dem Version 1.0 oder 1.1 ausgeführt wird, informieren Sie sich in diesen Anleitungen, wie ein Update auf das aktuelle Release durchgeführt wird.
Einige der wichtigsten Unterschiede zwischen der neuesten Version und Version 1.1 und früheren Versionen umfassen:
- Der Paketname wurde von iotedge in aziot-edge geändert.
- Das Paket libiothsm-std wird nicht mehr verwendet. Wenn Sie das als Teil der IoT Edge-Version bereitgestellte Standardpaket verwendet haben, können Ihre Konfigurationen auf die neue Version übertragen werden. Wenn Sie eine andere Implementierung von „libiothsm-std“ verwendet haben, müssen alle vom Benutzer bereitgestellten Zertifikate wie das Geräteidentitätszertifikat, die Gerätezertifizierungsstelle und das Vertrauensstellungspaket neu konfiguriert werden.
- Ein neuer Identitätsdienst, aziot-identity-service, wurde als Teil des Releases 1.2 eingeführt. Dieser Dienst übernimmt die Identitätsbereitstellung und -verwaltung für IoT Edge und andere Gerätekomponenten, die mit IoT Hub kommunizieren müssen, wie z. B. Device Update for IoT Hub.
- Die Standardkonfigurationsdatei hat einen neuen Namen und Speicherort. Früher lautete er
/etc/iotedge/config.yaml
. Jetzt werden Ihre Gerätekonfigurationsinformationen standardmäßig in/etc/aziot/config.toml
gespeichert. Mithilfe des Befehlsiotedge config import
können Konfigurationsinformationen aus dem alten Speicherort und die Syntax in den neuen Speicherort migriert werden.- Der Importbefehl kann keine Zugriffsregeln für das vertrauenswürdige Plattformmodul (Trusted Platform Module, TPM) eines Geräts erkennen oder ändern. Wenn Ihr Gerät den TPM-Nachweis verwendet, müssen Sie die Datei „/etc/udev/rules.d/tpmaccess.rules“ manuell aktualisieren, um Zugriff auf den Dienst „aziottpm“ zu gewähren. Weitere Informationen finden Sie unter Gewähren von IoT Edge-Zugriff auf das TPM.
- Die Workload-API in Version 1.2 speichert verschlüsselte Geheimnisse in einem neuen Format. Wenn Sie ein Upgrade von einer älteren Version auf Version 1.2 durchführen, wird der vorhandene Masterverschlüsselungsschlüssel importiert. Die Workload-API kann Geheimnisse lesen, die im vorherigen Format mit dem importierten Verschlüsselungsschlüssel gespeichert wurden. Die Workload-API kann jedoch keine verschlüsselten Geheimnisse im alten Format schreiben. Sobald ein Geheimnis von einem Modul erneut verschlüsselt wurde, wird es im neuen Format gespeichert. In Version 1.1 verschlüsselte Geheimnisse können vom selben Modul in Version 1.1 nicht gelesen werden. Wenn Sie verschlüsselte Daten in einem vom Host eingebundenen Ordner oder Volume dauerhaft speichern, erstellen Sie immer eine Sicherungskopie der Daten bevor Sie ein Upgrade durchführen, um wenn nötig wieder ein Downgrade durchführen zu können.
- Zur Abwärtskompatibilität beim Verbinden von Geräten, die TLS 1.2 nicht unterstützen, können Sie Edge Hub so konfigurieren, dass TLS 1.0 oder 1.1 weiterhin über die Umgebungsvariable SslProtocols akzeptiert wird. Bitte beachten Sie, dass die Unterstützung für TLS 1.0 und 1.1 in IoT Hub als Legacy betrachtet wird und auch in zukünftigen Versionen von Edge Hub entfernt werden kann. Verwenden Sie zur Vermeidung zukünftiger Probleme TLS 1.2 als einzige TLS-Version, wenn Sie eine Verbindung mit Edge Hub oder IoT Hub herstellen.
- Die Vorschau für den experimentellen MQTT-Broker in Edge Hub 1.2 wurde beendet und ist nicht in Edge Hub 1.3 oder höher enthalten. Wir arbeiten basierend auf erhaltenem Feedback weiterhin unsere Pläne für einen MQTT-Broker aus. Wenn Sie in der Zwischenzeit einen standardkonformen MQTT-Broker für IoT Edge benötigen, ziehen Sie die Bereitstellung eines Open-Source-Brokers wie Mosquitto als IoT Edge-Modul in Erwägung.
- Wenn ab Version 1.2 ein Hintergrundimage aus einem Container entfernt wird, wird der Container weiter ausgeführt und bleibt auch nach Neustarts bestehen. Wenn in 1.1 ein Hintergrundimage entfernt wird, wird der Container sofort neu erstellt und das Hintergrundimage aktualisiert.
Vergewissern Sie sich vor dem Automatisieren von Updateprozessen, dass dies auf Testcomputern funktioniert.
Wenn Sie dazu bereit sind, führen Sie die folgenden Schritte zum Aktualisieren von IoT Edge auf Ihren Geräten aus:
Aktualisieren Sie „apt“.
sudo apt-get update
Deinstallieren Sie die vorherige Version von IoT Edge, behalten Sie aber Ihre Konfigurationsdateien an deren Speicherort bei.
sudo apt-get remove iotedge
Installieren Sie die neueste Version von IoT Edge zusammen mit dem IoT-Identitätsdienst und dem Microsoft Defender für IoT-Micro-Agent für Edge.
sudo apt-get install aziot-edge defender-iot-micro-agent-edge
Es wird empfohlen, den Micro-Agent zusammen mit dem Edge-Agent zu installieren, um die Sicherheitsüberwachung und -härtung Ihrer Edgegeräte zu ermöglichen. Weitere Informationen zu Microsoft Defender für Cloud finden Sie unter Was ist Microsoft Defender für IoT für Geräteentwickler?.
Importieren Sie die alte Datei „config.YAML“ in ihr neues Format, und wenden Sie die Konfigurationsinformationen an.
sudo iotedge config import
Nachdem der auf Ihren Geräten ausgeführte IoT Edge-Dienst aktualisiert wurde, führen Sie jetzt die Schritte in diesem Artikel aus, um auch die Laufzeitcontainer zu aktualisieren.
Nächste Schritte
Zeigen Sie die neuesten Azure IoT Edge releases (Azure IoT Edge-Versionen) an.
Bleiben Sie mit den neuesten Updates und Ankündigungen im Internet of Things-Blog auf dem Laufenden.