Freigeben über


Tutorial: Azure Device Update für IoT Hub mit einem Simulator-Agent

Azure Device Update for IoT Hub unterstützt image-, paket- und skriptbasierte Updates. In diesem Tutorial wird ein end-to-end imagebasiertes Geräteupdate-Update veranschaulicht, das einen Ubuntu-Simulator-Agent verwendet.

Bildupdates bieten ein hohes Maß an Vertrauen im Endzustand des Geräts und stellen nicht die gleichen Paket- und Abhängigkeitsverwaltungs-Herausforderungen wie paket- oder skriptbasierte Updates dar. Es ist einfacher, die Ergebnisse einer Imageaktualisierung zwischen einer Vorproduktions- und Produktionsumgebung zu replizieren oder einfach ein A/B-Failovermodell zu übernehmen.

In diesem Tutorial:

  • Weisen Sie ein IoT-Gerät mithilfe von Tags einer Device Update-Gruppe zu.
  • Herunterladen und Installieren eines Image-Updates.
  • Importieren der Bildaktualisierung.
  • Bereitstellen des Imageupdates.
  • Anzeigen des Bereitstellungsverlaufs des Updates.

Voraussetzungen

Registrieren und Konfigurieren eines Geräts und Moduls

Fügen Sie der Geräteregistrierung in Ihrem IoT-Hub ein Gerät hinzu. Jedes Gerät, das eine Verbindung mit dem IoT-Hub herstellt, muss registriert werden.

  1. Öffnen Sie im Azure-Portaldie IoT-Hubseite, die Ihrer Device Update-Instanz zugeordnet ist.
  2. Wählen Sie im Navigationsbereich Geräteverwaltung>Geräte aus.
  3. Wählen Sie auf der Seite "Geräte " die Option "Gerät hinzufügen" aus.
  4. Geben Sie unter Geräte-ID einen Namen für das Gerät ein. Stellen Sie sicher, dass das Kontrollkästchen Schlüssel automatisch generieren aktiviert wird.
  5. Wählen Sie Speichern. Das Gerät wird in der Liste auf der Seite "Geräte" angezeigt.

Erstellen einer Modulidentität

Nachdem Sie das Gerät registriert haben, erstellen Sie eine Modulidentität. Module sind unabhängige Identitäten für IoT-Gerätekomponenten, die eine feinere Granularität ermöglichen, wenn das Gerät mehrere Prozesse ausführt.

In diesem Tutorial verwenden Sie diese Modulkennung für den Device Update-Agent, der auf dem Gerät ausgeführt wird. Weitere Informationen finden Sie unter Verstehen und Verwenden von Modulzwillingen in IoT Hub.

  1. Wählen Sie auf der Seite Geräte das Gerät aus, das Sie registriert haben.
  2. Wählen Sie auf der Geräteseite Modulidentität hinzufügen aus.
  3. Geben Sie auf der Seite Modulidentität hinzufügen unter Name der Modulidentität einen Namen für das Modul ein, z. B. DeviceUpdateAgent.
  4. Wählen Sie Speichern. Die neue Modulidentität wird auf der Geräteseite unter Modulidentitäten angezeigt.
  5. Wählen Sie den Modulnamen aus und klicken Sie auf der Seite Details zur Modulidentität auf das Kopieren-Symbol neben Verbindungszeichenfolge (Primärschlüssel). Speichern Sie diese Modulverbindungszeichenfolge, um sie beim Konfigurieren des Device Update-Agents zu verwenden.

Hinzufügen eines Gruppentags zu Ihrem Modulzwilling

Device Update organisiert Geräte automatisch in Gruppen basierend auf ihren zugewiesenen Tags und Kompatibilitätseigenschaften. Jedes Gerät gehört nur zu einer Gruppe, aber Gruppen können mehrere Untergruppen haben, um unterschiedliche Geräteklassen zu sortieren.

Sie können jedem Gerät, das von der Geräteaktualisierung verwaltet wird, einen Tag zuweisen, um das Gerät einer Geräteaktualisierungsgruppe zuzuordnen. Das Tag kann sich wie in diesem Tutorial im Gerätezwilling oder im Modulzwilling befinden. Jedes Gerät kann nur einer Device Update-Gruppe zugewiesen werden.

  1. Wählen Sie auf der Seite Details zur Modulidentität Modulidentitätszwilling aus.

  2. Fügen Sie auf der Seite Modulidentitätszwilling einen neuen DeviceUpdateGroupTag zum JSON-Code auf derselben Ebene wie modelId und version hinzu, wie folgt:

    "tags": {
        "DeviceUpdateGroup": "DU-simulator-tutorial"
    },
    
  3. Wählen Sie Speichern. Das Portal formatiert den Modulzwilling neu, um das Tag in die JSON-Struktur zu integrieren.

Installieren und Konfigurieren des Device Update-Agents

Der Device Update-Agent wird auf jedem von Device Update verwalteten Gerät ausgeführt. In diesem Tutorial installieren Sie den Geräteaktualisierungs-Agent auf einem Ubuntu 18.04-Gerät und konfigurieren ihn so, dass er als Simulator läuft. Dies zeigt, wie Sie ein Update auf ein Gerät anwenden können, ohne dessen Konfiguration zu ändern.

Hinweis

Sie können auch den Azure IoT-Identitätsdienst verwenden, um das Gerät bereitzustellen. Hierzu installieren Sie den Azure IoT-Identitätsdienst, bevor Sie den Device Update-Agent installieren. Konfigurieren Sie anschließend den Device Update-Agent mit "connectionType": "AIS" und lassen Sie connectionData als leere Zeichenfolge in der Konfigurationsdatei.

  1. Fügen Sie das Paketrepository von Microsoft hinzu und dann den Paketsignaturschlüssel von Microsoft Ihrer Liste vertrauenswürdiger Schlüssel hinzu.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. Installieren Sie die .deb-Pakete des Device Update-Agents.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Öffnen Sie die du-config.json Agent-Konfigurationsdatei.

    sudo nano /etc/adu/du-config.json
    
  4. Aktualisieren Sie du-config.json mit den folgenden Beispielwerten. Ersetzen Sie den <connection string> Platzhalter durch die Verbindungszeichenfolge, die Sie aus der Modulidentität kopiert haben. Weitere Informationen zu den Parametern finden Sie unter Device Update-Konfigurationsdatei.

    • manufacturer: "contoso"
    • model: "video"
    • agents.name: "aduagent"
    • agents.connectionData: <connection string>
    • agents.manufacturer: "contoso"
    • agents.model: "video"

    Die bearbeitete du-config.json Datei sollte wie folgt aussehen:

    {
       "schemaVersion": "1.0",
       "aduShellTrustedUsers": [
          "adu",
          "do"
       ],
       "manufacturer": "contoso",
       "model": "video",
       "agents": [
          {
          "name": "aduagent",
          "runas": "adu",
          "connectionSource": {
             "connectionType": "string",
             "connectionData": <connection string>
          },
          "manufacturer": "contoso",
          "model": "video"
          }
       ]
    }
    
  5. Drücken Sie STRG+X , um den Editor zu beenden, und geben Sie y ein, um Ihre Änderungen zu speichern.

  6. Um den Agent für die Ausführung als Simulator einzurichten, führen Sie den folgenden Befehl auf dem IoT-Gerät aus. Der Geräteupdate-Agent ruft den Simulatorhandler auf, um Updates zu verarbeiten, die die Microsoft SWUpdate-Erweiterung verwenden.

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    

Abrufen der Simulatordateien

  1. Laden Sie das Archiv Tutorial_Simulator.zip aus dem Abschnitt Assets der neuesten Version auf der Seite GitHub Device Update Releases herunter und extrahieren Sie es auf Ihrem Ubuntu 18.04-Gerät.

    Sie können wget verwenden, um die ZIP-Datei herunterzuladen. Ersetzen Sie <release_version> durch die neueste Version, z. B 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    
  2. Kopieren Sie die Datei sample-du-simulator-data.json aus dem extrahierten Ordner Tutorial_Simulator in den Ordner tmp.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Hinweis

    Falls der Ordner tmp nicht existiert, erstellen Sie ihn wie folgt:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  3. Ändern Sie die Berechtigungen für die Datei /tmp/sample-du-simulator-data.json.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  4. Starten Sie den Device Update-Agent neu, um Ihre Änderungen anzuwenden.

     sudo systemctl restart deviceupdate-agent
    

Importieren des Updates

Laden Sie das Archiv Tutorial_Simulator.zip aus dem Abschnitt Assets der neuesten Version auf der Seite GitHub Device Update Releases herunter und extrahieren Sie es auf Ihrem Entwicklungsrechner, falls dieser sich von Ihrem Ubuntu 18.04 IoT-Gerät unterscheidet. Dieser Abschnitt verwendet die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu aus dem Ordner Tutorial_Simulator.

Die Updatedatei ist die gleiche wie im Raspberry Pi-Tutorial. Da das Update in diesem Tutorial simuliert wird, spielt der spezifische Dateiinhalt keine Rolle.

  1. Melden Sie sich auf Ihrem Entwicklungsrechner beim Azure-Portal an und navigieren Sie zum IoT-Hub, der mit Ihrer Device Update-Instanz konfiguriert ist.

  2. Wählen Sie im Navigationsbereich Geräteverwaltung>Updates aus.

  3. Wählen Sie auf der Seite „Updates“ die Option „Neues Update importieren“aus.

  4. Wählen Sie auf der Seite Update importieren Aus dem Speichercontainer auswählen aus.

  5. Wählen Sie ein vorhandenes Speicherkonto aus, oder erstellen Sie ein neues Speicherkonto durch Auswahl von Speicherkonto.

  6. Wählen Sie einen vorhandenen Container aus, oder erstellen Sie durch Auswahl von Container einen neuen. Dieser Container wird zum Stagen der Updatedateien für den Import verwendet.

    Hinweis

    Um versehentlichen Import von Dateien aus früheren Updates zu vermeiden, verwenden Sie bei jedem Import eines Updates einen neuen Container. Wenn Sie keinen neuen Container verwenden, müssen Sie alle Dateien aus dem vorhandenen Container löschen.

  7. Wählen Sie auf der Container-Seite Hochladen aus. Durchsuchen Sie den Ordner und wählen Sie die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu aus, und klicken Sie anschließend auf Hochladen.

  8. Aktivieren Sie die Kontrollkästchen neben beiden Dateien und wählen Sie anschließend Auswählen, um zur Seite Update importieren zurückzukehren.

    Screenshot: Auswählen hochgeladener Dateien im Container.

  9. Überprüfen Sie auf der Seite Update importieren die Dateien, die importiert werden sollen, und wählen Sie anschließend Update importieren aus.

    Screenshot: Hochgeladene Dateien, die als Update importiert werden.

    Der Importprozess beginnt, und Sie können Importverlauf anzeigen auswählen, um den Importverlauf und -status einzusehen. Auf der Seite Updateverlauf zeigt das Feld Status den Wert Erfolgreich an, wenn der Import abgeschlossen ist. Wählen Sie zum Aktualisieren des Status die Option Aktualisieren aus.

Das importierte Update wird nun auf der Seite Updates angezeigt.

Screenshot: Das neue Update wird als verfügbares Update aufgelistet.

Weitere Informationen zum Importvorgang finden Sie unter Importieren eines Updates für Device Update for IoT Hub.

Auswählen der Gerätegruppe

Sie können das Gruppentag verwenden, das Sie auf Ihr Gerät angewendet haben, um das Update für die Gerätegruppe bereitzustellen. Wählen Sie oben auf der Seite Updates den Tab Gruppen und Bereitstellungen, um die Liste der Gruppen und Bereitstellungen sowie das Updateüberwachungs-Diagramm anzuzeigen.

Das Updatekonformitätsdiagramm zeigt die Anzahl von Geräten in verschiedenen Konformitätszuständen: Mit neuestem Update, Neue Updates verfügbar und Updates werden ausgeführt. Weitere Informationen finden Sie unter Konformität von Device Update.

Unter Gruppenname sehen Sie eine Liste aller Gerätegruppen für Geräte, die mit diesem IoT-Hub verbunden sind, sowie deren verfügbare Updates. Links zur Bereitstellung der Updates finden Sie unter Status. Alle Geräte, die nicht den Anforderungen der Geräteklasse einer Gruppe entsprechen, erscheinen in einer entsprechenden ungültigen Gruppe. Weitere Informationen zu Tags und Gruppen finden Sie unter Verwalten von Gerätegruppen.

Sie sollten die Gerätegruppe sehen, die das in diesem Tutorial eingerichtete simulierte Gerät enthält. Wählen Sie den Gruppennamen aus, um dessen Details anzuzeigen.

Screenshot: Updatekonformitätsansicht.

Bereitstellen des Updates

  1. Auf der Seite mit den Gruppendetails sollten Sie sehen, dass ein neues Update für diese Gruppe verfügbar ist. Wählen Sie Bereitstellen aus, um die Bereitstellung zu starten.

    Screenshot: Starten einer Gruppenupdatebereitstellung.

  2. Das von Ihnen importierte Update wird als das beste verfügbare Update für diese Gruppe aufgeführt. Klicken Sie auf Bereitstellen.

  3. Planen Sie Ihre Bereitstellung, oder beginnen Sie sofort, und wählen Sie dann Erstellen aus.

  4. Wechseln Sie zum Tab Aktuelle Updates. Unter Bereitstellungsdetails wird der Status in Aktiv geändert.

  5. Nachdem Ihr Gerät erfolgreich aktualisiert wurde, kehren Sie zur Seite Updates zurück. Sie sollten sehen, dass Das Compliancediagramm und die Bereitstellungsdetails aktualisiert wurden, um das installierte Update einzuschließen.

Updatebereitstellungsverlauf anzeigen

  1. Kehren Sie zur Seite mit den Gruppendetails zurück, und wählen Sie die Registerkarte Bereitstellungsverlauf aus.

  2. Wählen Sie neben der von Ihnen erstellten Bereitstellung Bereitstellungsdetails anzeigen aus. Wählen Sie Aktualisieren aus, um die neuesten Statusdetails anzuzeigen.

    Screenshot: Bereitstellungsdetails.

Bereinigen von Ressourcen

Wenn Sie mit dem nächsten Tutorial fortfahren möchten, behalten Sie Ihre Device Update- und IoT Hub-Ressourcen bei. Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, können Sie sie löschen.

  1. Wechseln Sie im Azure-Portal zur Ressourcengruppe, die die Ressourcen enthält.
  2. Wenn Sie alle Ressourcen in der Gruppe löschen möchten, wählen Sie Ressourcengruppe löschen aus.
  3. Wenn Sie nur einige der Ressourcen löschen möchten, verwenden Sie die Kontrollkästchen, um die gewünschten Ressourcen auszuwählen, und klicken Sie anschließend auf Löschen.