Bereitstellen von Azure IoT Edge-Modulen mit der Azure CLI

Gilt für:Häkchen für IoT Edge 1.5 IoT Edge 1.5 IoT Edge 1.4 Häkchen IoT Edge 1.4

Wichtig

IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Dienstende von IoT Edge 1.4 LTS wird am 12. November 2024 erreicht. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Nachdem Sie Azure IoT Edge-Module mit Ihrer Geschäftslogik erstellt haben, sollten Sie sie auf Ihren Geräten für den Betrieb am Edge bereitstellen. Wenn Sie über mehrere Module verfügen, die zusammenarbeiten, um Daten zu sammeln und zu verarbeiten, können Sie sie alle gleichzeitig bereitstellen. Sie können auch die Routingregeln für ihre Verbindungen deklarieren.

Die Azure-Befehlszeilenschnittstelle ist ein plattformübergreifendes Open-Source-Befehlszeilentool zum Verwalten von Azure-Ressourcen wie IoT Edge. Mit ihm können Sie Azure IoT Hub-Ressourcen, Instanzen des Device Provisioning Service und verknüpfte Hubs direkt ohne weitere Tools verwalten. Mit der neuen IoT-Erweiterung wird die Azure-Befehlszeilenschnittstelle um Features wie die Geräteverwaltung und um umfassende IoT Edge-Funktionen erweitert.

In diesem Artikel wird gezeigt, wie Sie ein JSON-Bereitstellungsmanifest erstellen und anschließend mithilfe dieser Datei die Bereitstellung per Push an ein IoT Edge-Gerät übertragen. Informationen zum Erstellen einer Bereitstellung, die basierend auf freigegebenen Tags auf mehrere Geräte ausgerichtet ist, finden Sie unter Bereitstellen und Überwachen von IoT Edge-Modulen im großen Maßstab.

Voraussetzungen

  • Ein IoT Hub in Ihrem Azure-Abonnement.

  • Ein IoT Edge Gerät

    Wenn Sie kein IoT Edge-Gerät eingerichtet haben, können Sie eines in einem virtuellen Azure-Computer erstellen. Führen Sie die Schritte in einem der Schnellstarts zum Erstellen eines virtuellen Linux-Geräts oder Erstellen eines virtuellen Windows-Geräts aus.

  • Die Azure CLI ist in Ihrer Umgebung vorhanden. Sie benötigen mindestens Version 2.0.70 der Azure-Befehlszeilenschnittstelle. Verwenden Sie az --version, um dies zu überprüfen. Diese Version unterstützt az-Erweiterungsbefehle, und das Framework für Knack-Befehle wird eingeführt.

  • Die IoT-Erweiterung für die Azure CLI ist vorhanden.

Konfigurieren eines Bereitstellungsmanifests

Ein Bereitstellungsmanifest ist ein JSON-Dokument, das beschreibt, welche Module bereitgestellt werden sollen, wie Daten zwischen den Modulen übermittelt werden und welche Eigenschaften die Modulzwillinge aufweisen sollen. Weitere Informationen zur Funktionsweise und Erstellung von Bereitstellungsmanifesten finden Sie unter Verstehen, wie IoT Edge-Module verwendet, konfiguriert und wiederverwendet werden können.

Wenn Sie Module mithilfe der Azure CLI bereitstellen möchten, speichern Sie das Bereitstellungsmanifest lokal als JSON-Datei. Sie verwenden den Dateipfad im nächsten Abschnitt, wenn Sie den Befehl zum Anwenden der Konfiguration auf Ihr Gerät ausführen.

Hier sehen Sie ein Beispiel für ein grundlegendes Bereitstellungsmanifest mit einem Modul:

Hinweis

In diesem Beispielbereitstellungsmanifest wird die Schemaversion 1.1 für den IoT Edge-Agent und den Hub verwendet. Die Schemaversion 1.1 wurde zusammen mit der IoT Edge Version 1.0.10 veröffentlicht und ermöglicht Features wie Startreihenfolge für Module und Priorisierung von Routen.

{
  "content": {
    "modulesContent": {
      "$edgeAgent": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "runtime": {
            "type": "docker",
            "settings": {
              "minDockerVersion": "v1.25",
              "loggingOptions": "",
              "registryCredentials": {}
            }
          },
          "systemModules": {
            "edgeAgent": {
              "type": "docker",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-agent:1.5",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
              }
            }
          },
          "modules": {
            "SimulatedTemperatureSensor": {
              "version": "1.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "routes": {
            "upstream": "FROM /messages/* INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      },
      "SimulatedTemperatureSensor": {
        "properties.desired": {
          "SendData": true,
          "SendInterval": 5
        }
      }
    }
  }
}

Bereitstellen auf Ihrem Gerät

Zur Bereitstellung von Modulen auf Ihrem Gerät wenden Sie das Bereitstellungsmanifest an, das Sie mit den Modulinformationen konfiguriert haben.

Wechseln Sie in den Ordner, in dem Sie das Bereitstellungsmanifest gespeichert haben. Wenn Sie eine der IoT Edge-Vorlagen für Visual Studio Code verwendet haben, verwenden Sie die Datei deployment.json im Ordner config im Projektmappenverzeichnis und nicht die Datei deployment.template.json.

Wenden Sie die Konfiguration mit dem folgenden Befehl auf ein IoT Edge-Gerät an:

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

Beim Parameter für die Geräte-ID wird die Groß-/Kleinschreibung berücksichtigt. Der content-Parameter verweist auf die gespeicherte Bereitstellungsmanifestdatei.

Screenshot der Befehlszeilenausgabe von „az iot edge set-modules“

Anzeigen von Modulen auf dem Gerät

Nachdem Sie die Module auf Ihrem Gerät bereitgestellt haben, können Sie sie mit dem folgenden Befehl anzeigen:

Zeigen Sie die Module auf Ihrem IoT Edge-Gerät an:

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

Beim Parameter für die Geräte-ID wird die Groß-/Kleinschreibung berücksichtigt.

Screenshot der Ausgabe des Befehls „az iot hub module-identity list“

Nächste Schritte

Erfahren Sie, wie Sie IoT Edge-Module im großen Maßstab bereitstellen und überwachen.