Aktualisieren von IoT Edge
Gilt für: IoT Edge 1.1
Wichtig
IoT Edge 1.1 Ende des Supports war der 13. Dezember 2022. Informationen darüber, wie dieses Produkt, dieser Dienst, diese Technologie oder diese API unterstützt werden, finden Sie im Microsoft Product Lifecycle. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.
Da der IoT Edge-Dienst neue Versionen veröffentlicht, sollten Sie Ihre IoT Edge-Geräte für die neuesten Features und Sicherheitsverbesserungen aktualisieren. 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. Das erste ist das Sicherheitssubsystem. Obwohl die Architektur des Sicherheitssubsystems zwischen Version 1.1 und 1.2 geändert, blieb die Gesamtverantwortung unverändert. Sie wird auf dem Gerät ausgeführt, verarbeitet sicherheitsbasierte Aufgaben und startet die Module, wenn das Gerät gestartet wird. Derzeit kann das Sicherheitssubsystem nur vom Gerät selbst aktualisiert werden. Die zweite Komponente ist die Laufzeit, bestehend aus den IoT Edge Hub- und IoT Edge-Agentmodulen. Je nachdem, wie Sie Die Bereitstellung strukturieren, kann die Laufzeit vom Gerät oder remote aktualisiert werden.
Sie sollten die IoT Edge-Laufzeit- und Anwendungsebenen mit derselben Version aktualisieren. Während nicht übereinstimmende Versionen unterstützt werden, werden sie nicht zusammen getestet. Verwenden Sie die folgenden Abschnitte in diesem Artikel, um die Laufzeit- und Anwendungsebenen auf einem Gerät zu 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 Laufzeiteinstellungen für die Gerätebereitstellung, ob die Versionen der Image-URIs von Edgehub und Edgeagent mit der Haupt- und Nebenversion des Sicherheitssubsystems übereinstimmen. Wenn die Version des Sicherheitssubsystems 1.4.2 lautet, werden die Image-Versionen 1.4 sein. 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 neueste Version.
Verwenden Sie auf Linux x64-Geräten apt-get oder Ihren entsprechenden Paket-Manager, um das Laufzeitmodul auf die neueste Version zu aktualisieren.
APT aktualisieren.
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 auf die neueste Version des Laufzeitmoduls aktualisieren möchten, verwenden Sie den folgenden Befehl, der auch libiothsm-std auf die neueste Version aktualisiert:
sudo apt-get install iotedge
Wenn Sie auf eine bestimmte Version des Laufzeitmoduls aktualisieren möchten, geben Sie die Version aus der Apt-Listenausgabe an. Wenn iotedge aktualisiert wird, versucht es automatisch, das libiothsm- std-paket auf seine neueste Version zu aktualisieren, was zu einem Abhängigkeitskonflikt führen kann. Wenn Sie nicht zur neuesten Version wechseln, stellen Sie sicher, dass Sie beide Pakete auf dieselbe Version anvisieren. Der folgende Befehl installiert beispielsweise eine bestimmte Version der Version 1.1:
sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1
Wenn die Version, die Sie installieren möchten, über apt-get nicht verfügbar ist, können Sie curl verwenden, um eine beliebige Version aus dem IoT Edge-Releases--Repository herunterzuladen. Suchen Sie die passenden libiothsm-std und iotedge Dateien für die Version, die Sie installieren möchten, für Ihr Gerät. Klicken Sie für jede Datei mit der rechten Maustaste auf den Dateilink, und kopieren Sie die Linkadresse. Verwenden Sie die Linkadresse, um die spezifischen 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
Runtime-Container aktualisieren
Die Art und Weise, wie Sie den IoT Edge-Agent und ioT Edge-Hubcontainer aktualisieren, hängt davon ab, ob Sie rollierende Tags (z. B. 1.1) oder bestimmte Tags (z. B. 1.1.1) in Ihrer Bereitstellung 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.
suchen
IoT Edge-Tags verstehen
Die IoT Edge-Agent- und IoT Edge-Hubimages sind mit der IoT Edge-Version, der sie zugeordnet sind, getaggt. 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 rollierendem Tag
Wenn Sie rollierende Tags in Ihrer Bereitstellung verwenden (z. B. mcr.microsoft.com/azureiotedge-hub:1.1), müssen Sie die Container-Runtime auf Ihrem Gerät anweisen, die neueste Version des Images abrufen zu lassen.
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 ruft die neuesten Versionen der Laufzeitimages ab und startet sie automatisch erneut auf Ihrem Gerät.
Ein bestimmtes Tag-Bild aktualisieren
Wenn Sie bestimmte Tags in Ihrer Bereitstellung 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.
Wählen Sie im Abschnitt IoT Edge ModulesRuntime Settingsaus.
Aktualisieren Sie in den -Laufzeiteinstellungenden Wert von Image für Edge Hub mit der gewünschten Version. Wählen Sie noch nicht Speichern aus.
Klappen Sie die Einstellungen für den Edge Hub zusammen oder scrollen Sie nach unten, und aktualisieren Sie den Wert Image für Edge Agent mit derselben gewünschten Version.
Wählen Sie Speichern aus.
Wählen Sie Überprüfen und erstellen Sie, überprüfen Sie die Bereitstellung, und wählen Sie Erstellenaus.
Sonderfall: Update von 1.0 oder 1.1 auf neueste Version
Ab Version 1.2 verwendet der IoT Edge-Dienst einen neuen Paketnamen und weist einige Unterschiede bei den Installations- und Konfigurationsprozessen auf. Wenn Sie über ein IoT Edge-Gerät mit Version 1.0 oder 1.1 verfügen, verwenden Sie diese Anweisungen, um zu erfahren, wie Sie auf die neueste Version aktualisieren.
Einige der wichtigsten Unterschiede zwischen der neuesten Version und Version 1.1 und früheren Versionen sind:
- Der Paketname wurde von iotedge in aziot-edgegeändert.
- Das libiothsm-std Paket wird nicht mehr verwendet. Wenn Sie das standardpaket verwendet haben, das als Teil der IoT Edge-Version bereitgestellt wird, 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 Vertrauensbundle neu konfiguriert werden.
- Ein neuer Identitätsdienst, aziot-identity-service wurde als Teil der Version 1.2 eingeführt. Dieser Dienst behandelt die Identitätsbereitstellung und -verwaltung für IoT Edge und für andere Gerätekomponenten, die mit IoT Hub kommunizieren müssen, z. B. Geräteupdate für IoT Hub.
- Die Standardkonfigurationsdatei hat einen neuen Namen und Speicherort. Früher befanden sich die Gerätekonfigurationsinformationen in
/etc/iotedge/config.yaml
, jetzt werden sie standardmäßig in/etc/aziot/config.toml
erwartet. 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 (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 aziottpm-Dienst zu gewähren. Weitere Informationen finden Sie unter Gewähren des IoT Edge-Zugriffs auf das TPM-.
- Die Workload-API in der neuesten Version speichert verschlüsselte geheime Schlüssel in einem neuen Format. Wenn Sie ein Upgrade von einer älteren Version auf die neueste Version durchführen, wird der vorhandene Masterverschlüsselungsschlüssel importiert. Die Workload-API kann geheime Schlüssel lesen, die im vorherigen Format mithilfe des importierten Verschlüsselungsschlüssels gespeichert wurden. Die Workload-API kann jedoch keine verschlüsselten Geheimschlüssel im alten Format schreiben. Sobald ein Geheimschlüssel von einem Modul erneut verschlüsselt wird, wird es im neuen Format gespeichert. Geheime Schlüssel, die in der neuesten Version verschlüsselt sind, sind von demselben Modul in Version 1.1 nicht lesbar. Wenn Sie verschlüsselte Daten in einem vom Host bereitgestellten Ordner oder Volume beibehalten, erstellen Sie immer eine Sicherungskopie der Daten , bevor sie ein Upgrade, um bei Bedarf das Downgrade beizubehalten.
- 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 SslProtocols-Umgebungsvariableakzeptiert wird. Bitte beachten Sie, dass die Unterstützung für TLS 1.0 und 1.1 im IoT Hub als legacy- gilt und auch in zukünftigen Versionen vom Edge Hub entfernt werden kann. Um zukünftige Probleme zu vermeiden, verwenden Sie TLS 1.2 als einzige TLS-Version beim Herstellen einer Verbindung mit Edge Hub oder IoT Hub.
- 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 werden unsere Pläne für einen MQTT-Broker basierend auf dem erhaltenen Feedback weiter verfeinern. In der Zwischenzeit sollten Sie, wenn Sie einen standardskonformen MQTT-Broker auf IoT Edge benötigen, einen Open-Source-Broker wie Mosquitto als IoT Edge-Modul bereitstellen.
- Ab Version 1.2 läuft der Container weiter, wenn ein Basis-Image entfernt wird, und bleibt auch über Neustarts hinweg erhalten. Wenn ein Sicherungsimage entfernt wird, wird der Container in 1.1 sofort neu erstellt und das Sicherungsimage aktualisiert.
Überprüfen Sie vor dem Automatisieren von Updateprozessen, ob sie auf Testcomputern funktioniert.
Wenn Sie fertig sind, führen Sie die folgenden Schritte aus, um IoT Edge auf Ihren Geräten zu aktualisieren:
apt aktualisieren.
sudo apt-get update
Deinstallieren Sie die vorherige Version von IoT Edge, sodass Ihre Konfigurationsdateien vorhanden sind.
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-Mikro-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 das neue Format, und wenden Sie die Konfigurationsinformationen an.
sudo iotedge config import
Jetzt, da der IoT Edge-Dienst auf Ihren Geräten aktualisiert wurde, folgen Sie den Schritten in diesem Artikel, um auch die Laufzeitcontainer zu aktualisieren.
Nächste Schritte
Zeigen Sie die neuesten Azure IoT Edge-Versionen an.
Bleiben Sie mit den neuesten Updates und Ankündigungen im Internet of Things-Blog auf dem Laufenden.