Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
IoT Edge 1,5
Wichtig
IoT Edge 1.5 LTS ist die unterstützte Version. IoT Edge 1.4 LTS erreichte am 12. November 2024 das Ende des Lebens. Wenn Sie eine frühere Version verwenden, lesen Sie Update IoT Edge.
Übernehmen Sie DevOps mit Azure IoT Edge-Anwendungen unter Verwendung der integrierten Azure IoT Edge-Aufgaben in Azure Pipelines. In diesem Artikel wird gezeigt, wie Sie Azure Pipelines zum Erstellen, Testen und Bereitstellen von Azure IoT Edge Modulen mithilfe von YAML verwenden.
In diesem Artikel erfahren Sie, wie Sie die integrierten Azure IoT Edge Tasks für Azure Pipelines zum Erstellen von Build- und Releasepipelines für Ihre IoT Edge Lösung verwenden. Jede Azure IoT Edge Aufgabe in der Pipeline führt eine der folgenden Aktionen aus:
| Aktion | Beschreibung |
|---|---|
| Erstellen von Modulimages | Verwendet Ihren IoT Edge-Lösungscode und erstellt die Container-Images. |
| Pushen von Modulimages | Überträgt Modul-Images in die angegebene Containerregistrierung. |
| Generieren des Bereitstellungsmanifests | Übernimmt eine deployment.template.json Datei und die Variablen und generiert dann die endgültige IoT Edge Bereitstellungsmanifestdatei. |
| Bereitstellen auf IoT-Edge-Geräten | Erstellt IoT Edge-Bereitstellungen für ein oder mehrere IoT Edge-Geräte. |
Sofern nicht angegeben, deckt dieser Artikel nicht alle Funktionen ab, die über Vorgangsparameter verfügbar sind. Weitere Informationen finden Sie in den folgenden Ressourcen:
Voraussetzungen
Ein Azure Repos-Depot. Wenn Sie keins haben, erstellen Sie ein neues Git-Repository in Ihrem Projekt. Für diesen Artikel wird das Repository "IoTEdgeRepo" genannt.
Eine per Push an Ihr Repository committete IoT Edge-Lösung. Führen Sie zum Erstellen einer neuen Beispiellösung zum Testen dieses Artikels die Schritte in Develop Azure IoT Edge Module mithilfe von Visual Studio Code aus. Für diesen Artikel haben wir in unserem Repository die Projektmappe IoTEdgeSolution erstellt, die den Code für das Modul filtermodule enthält.
Für diesen Artikel benötigen Sie lediglich den Lösungsordner, der von den IoT Edge-Vorlagen in Visual Studio Code oder Visual Studio erstellt wurde. Sie müssen diesen Code nicht erstellen, pushen, bereitstellen oder debuggen, bevor Sie fortfahren. Sie richten diese Prozesse in Azure Pipelines ein.
Stellen Sie sicher, dass Sie den Pfad zur deployment.template.json Datei in Ihrer Lösung kennen, der in mehreren Schritten verwendet wird. Wenn Sie mit der Rolle der Bereitstellungsvorlage nicht vertraut sind, finden Sie weitere Informationen unter Bereitstellen von Modulen und Einrichten von Routen in IoT Edge.
Tipp
Wenn Sie eine neue Lösung erstellen, klonen Sie zunächst das Repository lokal. Anschließend können Sie wählen, die Lösung direkt im Repository-Ordner zu erstellen. Sie können die neuen Dateien von dort problemlos committen und pushen.
Eine Containerregistrierung, in der Sie Modulabbilder hochladen können. Sie können Azure Container Registry oder eine Registrierung eines Drittanbieters verwenden.
Ein aktiver Azure IoT hub mit mindestens zwei IoT Edge Geräten zum Testen der separaten Test- und Produktionsbereitstellungsphasen. Folgen Sie den Schnellstartartikeln zum Erstellen eines IoT Edge Geräts auf Linux oder Windows.
Erfahren Sie mehr über die Verwendung von Azure Repos in Share your code with Visual Studio and Azure Repos.
Erstellen einer Build-Pipeline für kontinuierliche Integration
In diesem Abschnitt erstellen Sie eine neue Build-Pipeline. Sie konfigurieren die Pipeline so, dass sie automatisch ausgeführt wird, wenn Sie Änderungen an der Beispiellösung IoT Edge überprüfen und Buildprotokolle veröffentlichen.
Melden Sie sich bei Ihrer Azure DevOps Organisation (
https://dev.azure.com/{your organization}) an, und öffnen Sie das Projekt, das Ihr IoT Edge Lösungs-Repository enthält.
Wählen Sie im Menü im linken Bereich Ihres Projekts Pipelinesaus. Wählen Sie in der Mitte der Seite Pipeline erstellen aus. Wenn Sie aber bereits Buildpipelines haben, wählen Sie oben rechts die Schaltfläche Neue Pipeline aus.
Wählen Sie auf der Seite Where is your code? die Option Azure Repos Git
YAMLaus.Wählen Sie das Repository aus, für das Sie eine Pipeline erstellen.
Wählen Sie auf der Seite Pipeline konfigurieren die Option Starterpipeline aus. Wenn Sie über eine bereits vorhandene Azure Pipelines YAML-Datei verfügen, die Sie zum Erstellen dieser Pipeline verwenden möchten, können Sie Existing Azure Pipelines YAML-Datei auswählen und die Verzweigung und den Pfad im Repository zur Datei bereitstellen.
Auf der Seite Pipeline-YAML überprüfen können Sie den Standardnamen
azure-pipelines.ymlauswählen, um die Konfigurationsdatei Ihrer Pipeline umzubenennen.Wählen Sie Assistent anzeigen aus, um die Palette Aufgaben zu öffnen.
Wenn Sie eine Aufgabe hinzufügen möchten, setzen Sie den Cursor an das Ende der YAML oder an jede beliebige Stelle, an der die Anweisungen für Ihre Aufgabe hinzugefügt werden sollen. Suchen Und wählen Sie Azure IoT Edge aus, füllen Sie die Parameter des Vorgangs wie folgt aus, und wählen Sie dann Add aus.
Parameter Beschreibung Aktion Wählen Sie Modulimages erstellen. „template.json“-Datei Geben Sie den Pfad zur Datei deployment.template.json im Repository an, das Ihre IoT Edge Lösung enthält. Standardplattform Wählen Sie das entsprechende Betriebssystem für Ihre Module basierend auf Ihrem zielbasierten IoT Edge-Gerät aus. Weitere Informationen zu diesem Vorgang und seinen Parametern finden Sie unter Azure IoT Edge Task.
Tipp
Nachdem jede Aufgabe hinzugefügt wurde, werden die hinzugefügten Zeilen vom Editor automatisch hervorgehoben. Wenn Sie ein versehentliches Überschreiben verhindern möchten, deaktivieren Sie die Zeilen, und geben Sie einen neuen Bereich für Ihre nächste Aufgabe an, bevor Sie weitere Aufgaben hinzufügen.
Wiederholen Sie diesen Vorgang zum Hinzufügen von drei weiteren Aufgaben mit den folgenden Parametern:
Aufgabe: Azure IoT Edge
Parameter Beschreibung Aktion Wählen Sie Modulimages pushen aus. Containerregistrierungstyp Verwenden Sie den Standardtyp: Azure Container Registry. Azure-Abonnement Wählen Sie Ihr Abonnementaus. Azure Container Registry Wählen Sie die Registrierung aus, die Sie für die Pipeline verwenden möchten. „template.json“-Datei Geben Sie den Pfad zur Datei deployment.template.json im Repository an, das Ihre IoT Edge Lösung enthält. Standardplattform Wählen Sie das entsprechende Betriebssystem für Ihre Module basierend auf Ihrem zielbasierten IoT Edge-Gerät aus. Weitere Informationen zu diesem Vorgang und seinen Parametern finden Sie unter Azure IoT Edge Task.
Aufgabe: Dateien kopieren
Parameter Beschreibung Quellordner Der Quellordner, aus dem kopiert werden soll. „Empty“ ist der Stamm des Repositorys. Verwenden Sie Variablen, wenn keine Dateien im Repository sind. Beispiel: $(agent.builddirectory).Inhalt Fügen Sie zwei Zeilen hinzu: deployment.template.jsonundmodules/**/module.json.Zielordner Geben Sie die Variable $(Build.ArtifactStagingDirectory)an. Eine Beschreibung finden Sie unter Buildvariablen.Weitere Informationen zu dieser Aufgabe und den zugehörigen Parametern finden Sie unter Aufgabe zum Kopieren von Dateien.
Aufgabe: Build-Artefakte veröffentlichen
Parameter Beschreibung Pfad für Veröffentlichung Geben Sie die Variable $(Build.ArtifactStagingDirectory)an. Eine Beschreibung finden Sie unter Buildvariablen.Artefaktname Geben Sie den Standardnamen an: drop.Veröffentlichungsort für Artefakte Standardspeicherort verwenden: Azure PipelinesWeitere Informationen zu dieser Aufgabe und den zugehörigen Parametern finden Sie unter Aufgabe zum Veröffentlichen von Buildartefakten.
Wählen Sie oben rechts in der Dropdownliste Speichern und ausführen die Option Speichern aus.
Der Trigger für Continuous Integration ist bei Ihrer YAML-Pipeline standardmäßig aktiviert. Wenn Sie diese Einstellungen bearbeiten möchten, wählen Sie Ihre Pipeline aus, und wählen Sie " Bearbeiten" oben rechts aus. Wählen Sie "Weitere Aktionen " neben der Schaltfläche " Ausführen " oben rechts aus, und wechseln Sie zu "Trigger". Unter dem Namen ihrer Pipeline wird Continuous Integration als aktiviert angezeigt. Wenn Sie die Details für den Trigger anzeigen möchten, aktivieren Sie das Kästchen YAML-Trigger für die fortlaufende Integration an dieser Stelle überschreiben.
Fortfahren Sie mit dem nächsten Abschnitt fort, um die Releasepipeline zu erstellen.
Erstellen einer Releasepipeline für kontinuierliche Bereitstellung
In diesem Abschnitt erstellen Sie eine Releasepipeline, die so konfiguriert ist, dass sie automatisch ausgeführt wird, wenn Ihre Buildpipeline Artefakte bereitstellt, und Bereitstellungsprotokolle in Azure Pipelines angezeigt werden.
So erstellen Sie eine neue Pipeline und fügen eine neue Stufe hinzu:
Wählen Sie auf der Registerkarte Releases unter Pipelines die Schaltfläche + Neue Pipeline aus. Wenn Sie bereits über Releasepipelines verfügen, wählen Sie die Schaltfläche + Neu und dann + Neue Releasepipeline aus.
Wenn Sie aufgefordert werden, eine Vorlage auszuwählen, wählen Sie für den Einstieg Leere Aufgabe aus.
Ihre neue Releasepipeline wird mit einer Stufe namens Stage 1 initialisiert. Benennen Sie „Stage 1“ in dev um, und behandeln Sie sie als Continuous Deployment-Pipeline für Ihre Entwicklungsumgebung. Continuous Deployment-Pipelines haben normalerweise mehrere Stages: dev, staging und prod. Sie können unterschiedliche Namen verwenden und je nach Ihrer DevOps-Methode weitere erstellen. Schließen Sie das Stufendetailsfenster nach der Umbenennung.
Sie können Ihre Releasepipeline auch umbenennen, indem Sie oben den Text „Neue Releasepipeline“ auswählen.
Verknüpfen Sie das Release mit den Build-Artefakten, die von der Build-Pipeline veröffentlicht werden. Wählen Sie im Artefaktbereich auf Hinzufügen.
Wählen Sie auf der Seite Artefakt hinzufügen die Option Build als Quelltyp aus. Wählen Sie das Projekt und die erstellte Build-Pipeline aus. Wenn Sie möchten, können Sie den Quellalias in einen aussagekräftigeren Namen ändern. Klicken Sie anschließend auf Hinzufügen.
Öffnen Sie die Artefakttrigger, und wählen Sie die Umschaltfläche aus, um die Continuous Deployment-Trigger zu aktivieren. Nun wird immer dann ein neues Release erstellt, wenn ein neuer Build verfügbar ist.
Die Stage dev ist mit einem Auftrag und null (0) Aufgaben vorkonfiguriert. Wählen Sie im Pipelinemenü Aufgaben und dann die Stage dev aus. Wählen Sie den Agent-Job aus und ändern Sie dessen Anzeigenamen in QA. Sie können Details zum Agentauftrag konfigurieren, aber die Bereitstellungsaufgabe ist plattformunabhängig, sodass Sie im ausgewählten Agentpool jede beliebige Agentspezifikation verwenden können.
Wählen Sie in der Aufgabe „QA“ das Pluszeichen (+) aus, um zwei Aufgaben hinzuzufügen. Suchen und fügen Sie Azure IoT Edge zweimal hinzu.
Wählen Sie die erste aufgabe Azure IoT Edge aus, und konfigurieren Sie sie mit den folgenden Werten:
Parameter Beschreibung Anzeigename Der Anzeigename wird bei einer Änderung des Felds „Aktion“ automatisch aktualisiert. Aktion Wählen Sie Generate deployment manifestaus.„template.json“-Datei Geben Sie den Pfad „ $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json“ an. Der Pfad wird aus der Buildpipeline veröffentlicht.Standardplattform Wählen Sie das entsprechende Betriebssystem für Ihre Module basierend auf Ihrem zielbasierten IoT Edge-Gerät aus. Ausgabepfad Geben Sie den Pfad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.jsonan. Dieser Pfad ist die endgültige IoT Edge Bereitstellungsmanifestdatei.Diese Konfigurationen unterstützen das Ersetzen der Modulimage-URLs in der Datei
deployment.template.json. Die Aufgabe Bereitstellungsmanifest generieren hilft auch dabei, die Variablen durch die exakten Werte zu ersetzen, die Sie in der Dateideployment.template.jsondefiniert haben. In Visual Studio/Visual Studio Code geben Sie den tatsächlichen Wert in einer datei.envan. In Azure Pipelines legen Sie den Wert in der Registerkarte Variablen der Release-Pipeline fest. Wechseln Sie zur Registerkarte Variablen und konfigurieren Sie den Namen und Wert wie folgt:- ACR_ADDRESS: Ihr Azure Container Registry Login-ServerWert. Sie können den Anmeldeserver über die Seite "Übersicht" Ihrer Containerregistrierung im Azure-Portal abrufen.
- ACR_PASSWORD: Ihr Azure Container Registry Kennwort.
- ACR_USER: Ihr Azure Container Registry Benutzername.
Wenn Ihr Projekt weitere Variablen enthält, können Sie die Namen und Werte auf dieser Registerkarte angeben. Bereitstellungsmanifest generieren kann nur erkennen, dass die Variablen in der Variante
${VARIABLE}vorliegen. Sorgen Sie dafür, dass Sie diese Variante in Ihren*.template.json-Dateien verwenden."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Wählen Sie die zweite aufgabe Azure IoT Edge aus, und konfigurieren Sie sie mit den folgenden Werten:
Parameter Beschreibung Anzeigename Der Anzeigename wird bei einer Änderung des Felds „Aktion“ automatisch aktualisiert. Aktion Wählen Sie Deploy to IoT Edge devicesaus.Bereitstellungsdatei Geben Sie den Pfad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.jsonan. Dieser Pfad ist die IoT Edge Bereitstellungsmanifestdatei.Azure-Abonnement Wählen Sie das Abonnement aus, das Ihren IoT Hub enthält. IoT-Hub-Name Wählen Sie Ihren IoT Hub aus. Einzelgerät/mehrere Geräte auswählen Wählen Sie aus, ob die Releasepipeline auf einem oder mehreren Geräten bereitgestellt werden soll. Wenn Sie eine Bereitstellung auf einem einzelnen Gerät ausführen, geben Sie die IoT Edge Geräte-ID ein. Geben Sie bei einer Bereitstellung auf mehreren Geräten die Zielbedingung des Geräts an. Die Zielbedingung ist ein Filter, der einem Satz von IoT Edge Geräten in IoT Hub entspricht. Wenn Sie Geräte-Tags als Bedingung verwenden möchten, müssen Sie die entsprechenden Geräte-Tags mit dem IoT Hub Geräte-Zwilling aktualisieren. Aktualisieren Sie die IoT Edge-Bereitstellungs-ID und IoT Edge Bereitstellungspriorität in den erweiterten Einstellungen. Weitere Informationen zum Erstellen einer Bereitstellung für mehrere Geräte finden Sie unter Verstehen von IoT Edge automatische Bereitstellungen. Geräte-ID oder Zielzustand Geben Sie je nach der vorherigen Auswahl eine Geräte-ID oder Zielbedingung an, die auf mehreren Geräten bereitgestellt werden soll. Erweitert Geben Sie für die IoT Edge Bereitstellungs-ID $(System.TeamProject)-$(Release.EnvironmentName)an. Diese Variable ordnet den Projekt- und Release-Namen Ihrer IoT-Edge-Bereitstellungs-ID zu.Wenn Ihre Aufgabe die Verwendung eines Images enthält, das sich in einer privaten vertrauenswürdigen Docker-Registrierung befindet, die für die öffentliche Cloud nicht sichtbar ist, können Sie die Umgebungsvariable SKIP_MODULE_IMAGE_VALIDATION auf
truefestlegen, um die Imagevalidierung zu überspringen.
Wählen Sie Speichern zum Speichern der Änderungen auf der neuen Releasepipeline aus. Kehren Sie zur Pipelineansicht zurück, indem Sie im Menü die Registerkarte Pipeline auswählen.
Überprüfen Sie IoT Edge CI/CD mit den Build- und Releasepipelines
Um einen Buildauftrag auszulösen, können Sie einen Commit in das Quellcoderepository pushen oder manuell auslösen. In diesem Abschnitt lösen Sie manuell die CI/CD-Pipeline aus, um die Funktionsweise zu testen. Anschließend überprüfen Sie, ob die Bereitstellung erfolgreich ausgeführt wird.
Wählen Sie im Menü auf der linken Seite Pipelines aus, und öffnen Sie die Buildpipeline, die Sie am Anfang dieses Artikels erstellt haben.
Sie können einen Build-Job in Ihrer Buildpipeline auslösen, indem Sie oben rechts die Schaltfläche Pipeline ausführen auswählen.
Überprüfen Sie die Einstellungen für Pipeline ausführen. Wählen Sie dann Ausführen aus.
Wählen Sie Agentauftrag 1 aus, um den Fortschritt der Ausführung zu überwachen. Durch Auswählen des Auftrags können Sie die Protokolle der Auftragsausgabe überprüfen.
Wenn die Build-Pipeline erfolgreich abgeschlossen ist, löst sie ein Release zur dev-Stage aus. Das erfolgreiche dev-Release erstellt eine IoT Edge-Bereitstellung für IoT Edge-Geräte.
Wählen Sie auf die Stage dev, um die Releaseprotokolle anzuzeigen.
Wenn bei Ihrer Pipeline ein Fehler aufgetreten ist, sehen Sie sich zuerst die Protokolle an. Sie können Protokolle anzeigen, indem Sie zur Zusammenfassung der Pipelineausführung navigieren und dann den Auftrag und die Aufgabe auswählen. Wenn eine bestimmte Aufgabe fehlschlägt, überprüfen Sie die Protokolle dafür. Ausführliche Anleitungen zum Konfigurieren und Verwenden von Protokollen finden Sie unter Überprüfen von Protokollen zum Diagnostizieren von Pipelineproblemen.
Nächste Schritte
- Grundlegende Informationen zur IoT Edge-Bereitstellung finden Sie unter Grundlegendes zu IoT Edge-Bereitstellungen für einzelne Geräte oder bedarfsabhängig.
- Führen Sie die Schritte zum Erstellen, Aktualisieren oder Löschen einer Bereitstellung in Bereitstellung und Überwachung von IoT Edge-Modulen in großem Umfang durch.