Bereitstellen von Azure IoT Edge-Modulen mit der Azure CLI
Gilt für: IoT Edge 1.5 IoT Edge 1.4
Wichtig
IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Ende der Lebensdauer 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.
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.
Nächste Schritte
Erfahren Sie, wie Sie IoT Edge-Module im großen Maßstab bereitstellen und überwachen.