Vorbereiten eines Updates für den Import in Device Update for IoT Hub
Erfahren Sie, wie Sie ein neues Update abrufen und das Update für den Import in Device Update for IoT Hub vorbereiten.
Voraussetzungen
Zugriff auf einen IoT Hub mit aktivierter Device Update for IoT Hub-Instanz
Eine Azure CLI-Umgebung:
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI
- Melden Sie sich mit dem Befehl az login bei der Azure CLI an.
- Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Installieren Sie die Azure CLI-Erweiterungen bei der ersten Verwendung, wenn Sie dazu aufgefordert werden. Die Befehle in diesem Artikel verwenden die azure-iot-Erweiterung . Führen Sie
az extension update --name azure-iot
aus, um sicherzustellen, dass Sie die neueste Version der Erweiterung verwenden.
Tipp
Die Azure CLI-Befehle in diesem Artikel verwenden den umgekehrten Schrägstrich (\
) für die Zeilenfortsetzung, damit die Befehlsargumente einfacher lesbar sind. Diese Syntax funktioniert in Bash-Umgebungen. Wenn Sie diese Befehle in PowerShell ausführen, ersetzen Sie jeden umgekehrten Schrägstrich durch ein Graviszeichen („`“), oder entfernen Sie die umgekehrten Schrägstriche vollständig.
Abrufen eines Updates für Ihre Geräte
Nachdem Sie Device Update eingerichtet und Ihre Geräte bereitgestellt haben, benötigen Sie die Updatedatei(en), die Sie auf diesen Geräten bereitstellen möchten.
Wenn Sie Geräte von einem Original Equipment Manufacturer (OEM) oder Lösungsintegrator erworben haben, stellt die entsprechende Organisation höchstwahrscheinlich Updatedateien für Sie bereit, ohne dass Sie die Updates selbst erstellen müssen. Wenden Sie sich an den OEM oder Lösungsintegrator, um zu erfahren, wie Updates verfügbar gemacht werden.
Falls Ihre Organisation Software für die von Ihnen verwendeten Geräte erstellt, werden die Updates für diese Software von der zuständigen Gruppe erstellt.
Beginnen Sie beim Erstellen eines Updates mit Device Update for IoT Hub je nach Szenario entweder mit dem imagebasierten oder mit dem paketbasierten Ansatz.
Erstellen eines grundlegenden Device Update-Importmanifests
Sobald Sie über Ihre Updatedateien verfügen, erstellen Sie ein Importmanifest, um das Update zu beschreiben. Wenn Sie es noch nicht getan haben, sollten Sie sich mit den grundlegenden Importkonzepten vertraut machen. Es ist zwar möglich, ein JSON-Importmanifest mithilfe eines Text-Editors manuell zu erstellen, aber die Azure CLI vereinfacht den Prozess erheblich und wird auch in den folgenden Beispielen verwendet.
Tipp
Probieren Sie die Tutorials zu imagebasierten, paketbasierten oder Proxyupdates aus, wenn Sie dies noch nicht getan haben. Sie können auch einfach Beispiel-Importmanifestdateien aus diesen Tutorials als Referenz anzeigen.
Der Befehl az iot du init v5 verwendet die folgenden Argumente:
--update-provider
,--update-name
und--update-version
: Diese drei Parameter definieren das updateId-Objekt, das ein eindeutiger Bezeichner für jedes Update ist.--compat
: Das Kompatibilitätsobjekt besteht aus Name/Wert-Paaren, die die Eigenschaften eines Geräts beschreiben, mit dem dieses Update kompatibel ist.- Dieselben Kompatibilitätseigenschaften können nicht bei mehreren Kombinationen aus Anbieter und Name verwendet werden.
--step
: Der Update-Handler auf dem Gerät (z. B.microsoft/script:1
,microsoft/swupdate:1
odermicrosoft/apt:1
) und die zugeordneten Eigenschaften für dieses Update.--file
: Die Pfade zu Ihrer Updatedatei oder -dateien
Weitere Informationen zu diesen Parametern finden Sie unter Importieren von Schema- und API-Informationen.
az iot du update init v5 \
--update-provider <replace with your Provider> \
--update-name <replace with your update Name> \
--update-version <replace with your update Version> \
--compat <replace with the property name>=<replace with the value your device will report> <replace with the property name>=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> properties=<replace with any handler properties (JSON-formatted)> \
--file path=<replace with path(s) to your update file(s), including the full file name>
Beispiel:
az iot du update init v5 \
--update-provider Microsoft \
--update-name AptUpdate \
--update-version 1.0.0 \
--compat manufacturer=Contoso model=Vacuum \
--step handler=microsoft/script:1 properties='{"installedCriteria": "1.0"}' \
--file path=/my/apt/manifest/file
Für Handlereigenschaften müssen Sie möglicherweise bestimmte Zeichen in Ihrem JSON-Code mit Escapezeichen versehen. Verwenden Sie beispielsweise '\'
, um doppelte Anführungszeichen mit Escapezeichen zu versehen, wenn Sie die Azure CLI in PowerShell ausführen.
Der init
-Befehl unterstützt erweiterte Szenarios, einschließlich des Features für verwandte Dateien, mit dem Sie die Beziehung zwischen verschiedenen Updatedateien definieren können. Weitere Beispiele und eine vollständige Liste optionaler Parameter finden Sie unter az iot du init v5.
Nachdem Sie Ihr Importmanifest erstellt und als JSON-Datei gespeichert haben, können Sie Ihr Update importieren. Wenn Sie planen, die Benutzeroberfläche des Azure-Portals für den Import zu verwenden, stellen Sie sicher, dass Sie zur Benennung des Importmanifests das folgende Format verwenden: „<manifestname.importmanifest.json>“.
Erstellen eines erweiterten Device Update-Importmanifests für ein Proxyupdate
Wenn Ihr Update komplexer ist, z. B. ein Proxyupdate, müssen Sie möglicherweise mehrere Importmanifeste erstellen. Sie können den gleichen Azure CLI-Ansatz aus dem vorherigen Abschnitt verwenden, um sowohl ein übergeordnetes Importmanifest als auch eine Reihe von untergeordneten Importmanifesten für komplexe Updates zu erstellen. Führen Sie die folgenden Azure CLI-Befehle aus, nachdem Sie die Beispielparameterwerte durch Ihre eigenen ersetzt haben. Ausführliche Informationen zu den Werten, die Sie verwenden können, finden Sie unter Importieren von Schema- und API-Informationen. Im folgenden Beispiel müssen drei Updates auf dem Gerät bereitgestellt werden – ein übergeordnetes Update und zwei untergeordnete Updates:
az iot du update init v5 \
--update-provider <replace with child_1 update Provider> \
--update-name <replace with child_1 update Name> \
--update-version <replace with child_1 update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
--update-provider <replace with child_2 update Provider> \
--update-name <replace with child_2 update Name> \
--update-version <replace with child_2 update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
az iot du update init v5 \
--update-provider <replace with the parent update Provider> \
--update-name <replace with the parent update Name> \
--update-version <replace with the parent update Version> \
--compat manufacturer=<replace with the value your device will report> model=<replace with the value your device will report> \
--step handler=<replace with your chosen handler> properties=<replace with any desired handler properties (JSON-formatted)> \
--file path=<replace with path(s) to your update file(s), including the full file name> \
--step updateId.provider=<replace with child_1 update provider> updateId.name=<replace with child_1 update name> updateId.version=<replace with child_1 update version> \
--step updateId.provider=<replace with child_2 update provider> updateId.name=<replace with child_2 update name> updateId.version=<replace with child_2 update version> \