Continuous Integration und Continuous Deployment für Azure IoT EdgeContinuous integration and continuous deployment to Azure IoT Edge

Sie können DevOps mit den integrierten Azure IoT Edge-Aufgaben in Azure Pipelines ganz einfach in Ihren Azure IoT Edge-Anwendungen übernehmen.You can easily adopt DevOps with your Azure IoT Edge applications with the built-in Azure IoT Edge tasks in Azure Pipelines. In diesem Artikel wird gezeigt, wie Sie die Features für Continuous Integration und Continuous Deployment von Azure Pipelines zum schnellen und effizienten Erstellen, Testen und Bereitstellen von Anwendungen in Azure IoT Edge verwenden können.This article demonstrates how you can use the continuous integration and continuous deployment features of Azure Pipelines to build, test, and deploy applications quickly and efficiently to your Azure IoT Edge.

Diagramm – CI- und CD-Branches für Entwicklung und Produktion

In diesem Artikel erfahren Sie, wie Sie die integrierten Azure IoT Edge-Aufgaben für Azure-Pipelines verwenden, um zwei Pipelines für Ihre IoT Edge-Lösung zu erstellen.In this article, you learn how to use the built-in Azure IoT Edge tasks for Azure Pipelines to create two pipelines for your IoT Edge solution. In Azure IoT Edge-Aufgaben können vier Aktionen verwendet werden.There are four actions can be used in the Azure IoT Edge tasks.

  • Azure IoT Edge – Modulimages erstellen akzeptiert Ihren IoT Edge-Projektmappencode und kompiliert die Containerimages.Azure IoT Edge - Build Module images takes your IoT Edge solution code and builds the container images.
  • Azure IoT Edge – Modulimages pushen überträgt Modulimages per Push in die von Ihnen angegebene Containerregistrierung.Azure IoT Edge - Push Module images pushes module images to the container registry you specified.
  • Azure IoT Edge – Bereitstellungsmanifest generieren akzeptiert eine deployment.template.json-Datei und die zugehörigen Variablen und generiert die finale Manifestdatei für eine IoT Edge-Bereitstellung.Azure IoT Edge - Generate Deployment Manifest takes a deployment.template.json file and the variables, then generates the final IoT Edge deployment manifest file.
  • Azure IoT Edge – Auf IoT Edge-Geräten bereitstellen hilft beim Erstellen von IoT Edge-Bereitstellungen auf einzelnen oder mehreren IoT Edge-Geräten.Azure IoT Edge - Deploy to IoT Edge devices helps create IoT Edge deployments to single/multiple IoT Edge devices.

VoraussetzungenPrerequisites

  • Ein Azure Repos-Repository.An Azure Repos repository. Wenn Sie keines besitzen, können Sie ein neues Git-Repository in Ihrem Projekt erstellen.If you don't have one, you can Create a new Git repo in your project.
  • Eine per Push an Ihr Repository committete IoT Edge-Lösung.An IoT Edge solution committed and pushed to your repository. Wenn Sie eine neue Beispiellösung für das Testen in diesem Artikel erstellen möchten, führen Sie die Schritte in Verwenden von Visual Studio Code zum Entwickeln und Debuggen von Modulen für Azure IoT Edge oder Verwenden von Visual Studio 2017 zum Entwickeln und Debuggen von C#-Modulen für Azure IoT Edge (Vorschauversion) aus.If you want to create a new sample solution for testing this article, follow the steps in Develop and debug modules in Visual Studio Code or Develop and debug C# modules in Visual Studio.
    • In diesem Artikel benötigen Sie lediglich den von den IoT Edge-Vorlagen in Visual Studio Code oder Visual Studio erstellten Projektmappenordner.For this article, all you need is the solution folder created by the IoT Edge templates in either Visual Studio Code or Visual Studio. Sie müssen diesen Code nicht erstellen, pushen, bereitstellen oder debuggen, bevor Sie fortfahren.You don't need to build, push, deploy, or debug this code before proceeding. Sie müssen diese Prozesse in Azure Pipelines einrichten.You'll set those processes up in Azure Pipelines.
    • Wenn Sie eine neue Projektmappe erstellen, klonen Sie zunächst das lokale Repository.If you're creating a new solution, clone your repository locally first. Dann können Sie die Projektmappe wahlweise direkt im Repositoryordner erstellen.Then, when you create the solution you can choose to create it directly in the repository folder. Sie können die neuen Dateien von dort problemlos committen und pushen.You can easily commit and push the new files from there.
  • Eine Containerregistrierung, in die Sie Modulimages per Push übertragen können.A container registry where you can push module images. Sie können Azure Container Registry oder eine Drittanbieterregistrierung verwenden.You can use Azure Container Registry or a third-party registry.
  • Eine aktive IoT Hub-Instanz, die mindestens über IoT Edge-Geräte zum Testen der separaten Test- und Produktionsbereitstellungsstufen verfügt.An active IoT hub with at least IoT Edge devices for testing the separate test and production deployment stages. Sie können die Schnellstartartikel zum Erstellen eines IoT Edge-Geräts auf Linux oder Windows befolgen.You can follow the quickstart articles to create an IoT Edge device on Linux or Windows

Weitere Informationen zur Verwendung von Azure Repos finden Sie unter Freigeben von Code mit Visual Studio und Azure Repos.For more information about using Azure Repos, see Share your code with Visual Studio and Azure Repos

Konfigurieren von Continuous IntegrationConfigure continuous integration

In diesem Abschnitt erstellen Sie eine neue Buildpipeline.In this section, you create a new build pipeline. Konfigurieren Sie die Pipeline so, dass sie automatisch ausgeführt wird, wenn Sie Änderungen an der IoT Edge-Beispielprojektmappe einchecken und Buildprotokolle veröffentlichen.Configure the pipeline to run automatically when you check in any changes to the sample IoT Edge solution, and publish build logs.

Hinweis

In diesem Artikel verwenden Sie den visuellen Designer von Azure DevOps.This article uses the Azure DevOps visual designer. Bevor Sie die Schritte in diesem Abschnitt ausführen, deaktivieren Sie die Previewfunktion für die neue Oberfläche für das Erstellen der YAML-Pipeline.Before you follow the steps in this section, turn off the preview feature for the new YAML pipeline creation experience.

  1. Wählen Sie in Azure DevOps Ihr Profilsymbol und dann Vorschaufeatures aus.In Azure DevOps, select your profile icon then select Preview features.
  2. Deaktivieren Sie dann Neue Benutzeroberfläche zum Erstellen einer YAML-Pipeline.Turn New YAML pipeline creation experience off.

Weitere Informationen finden Sie unter Erstellen einer Buildpipeline.For more information, see Create a build pipeline.

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation (https://dev.azure.com/{Ihre Organisation}/ ) an, und öffnen Sie das Projekt, das Ihr IoT Edge-Projektmappenrepository enthält.Sign into your Azure DevOps organization (https://dev.azure.com/{your organization}/) and open the project that contains your IoT Edge solution repository.

    Für diesen Artikel haben wir ein Repository namens IoTEdgeRepo erstellt.For this article, we created a repository called IoTEdgeRepo. Dieses Repository enthält IoTEdgeSolution, was den Code für ein Modul namens filtermodule enthält.That repository contains IoTEdgeSolution which has the code for a module named filtermodule.

    Öffnen Ihres DevOps-Projekts

  2. Navigieren Sie in Ihrem Projekt zu Azure Pipelines.Navigate to Azure Pipelines in your project. Öffnen Sie die Registerkarte Builds, und wählen Sie Neue Pipeline aus.Open the Builds tab and select New pipeline. Wenn Sie bereits über Buildpipelines verfügen, wählen Sie die Schaltfläche Neu aus.Or, if you already have build pipelines, select the New button. Wählen Sie dann Neue Buildpipeline aus.Then choose New build pipeline.

    Erstellen einer neuen Buildpipeline

  3. Folgen Sie den Anweisungen zum Erstellen Ihrer Pipeline.Follow the prompts to create your pipeline.

    1. Geben Sie die Quelleninformationen für die neue Buildpipeline ein.Provide the source information for your new build pipeline. Wählen Sie Azure Repos Git als Quelle und anschließend Projekt, Repository und Branch aus, wo sich der IoT Edge-Projektmappencode befindet.Select Azure Repos Git as the source, then select the project, repository, and branch where your IoT Edge solution code is located. Wählen Sie anschließend Weiter aus.Then, select Continue.

      Auswählen Ihrer Pipelinequelle

    2. Wählen Sie Leerer Auftrag anstelle einer Vorlage aus.Select Empty job instead of a template.

      Starten mit einem leeren Prozess

  4. Sobald die Pipeline erstellt wurde, gelangen Sie zum Pipeline-Editor.Once your pipeline is created, you are taken to the pipeline editor. Wählen Sie in der Pipelinebeschreibung basierend auf Ihrer Zielplattform den richtigen Agent-Pool aus:In your pipeline description, choose the correct agent pool based on your target platform:

  5. Die Pipeline wird mit einem Auftrag mit dem Namen Agent job 1 vorkonfiguriert.Your pipeline comes preconfigured with a job called Agent job 1. Wählen Sie das Pluszeichen ( + ) aus, um dem Auftrag drei Aufgaben hinzuzufügen: Zweimal Azure IoT Edge, einmal Dateien kopieren und einmal Buildartefakte veröffentlichen.Select the plus sign (+) to add three tasks to the job: Azure IoT Edge twice, Copy Files once and Publish Build Artifacts once. (Zeigen Sie auf den Namen der einzelnen Aufgaben, um die Schaltfläche Hinzufügen anzuzeigen.)(Hover over the name of each task to see the Add button.)

    Hinzufügen der Azure IoT Edge-Aufgabe

    Wenn alle vier Aufgaben hinzugefügt werden, sieht Ihr Agent-Auftrag wie im folgenden Beispiel aus:When all four tasks are added, your Agent job looks like the following example:

    Drei Aufgaben in der Buildpipeline

  6. Wählen Sie die erste zu bearbeitende Azure IoT Edge-Aufgabe aus.Select the first Azure IoT Edge task to edit it. Diese Aufgabe erstellt alle Module in der Projektmappe mit der angegebenen Zielplattform.This task builds all modules in the solution with the target platform that you specify.

    • Anzeigename: Übernehmen Sie den Standard Azure IoT Edge – Modulimages erstellen.Display name: Accept the default Azure IoT Edge - Build module images.
    • Aktion: Übernehmen Sie den Standard Modulimages erstellen.Action: Accept the default Build module images.
    • .template.json-Datei: Wählen Sie die Auslassungspunkte ( ... ) aus, und navigieren Sie zu der deployment.template.json-Datei in dem Repository, das die IoT Edge-Projektmappe enthält..template.json file: Select the ellipsis (...) and navigate to the deployment.template.json file in the repository that contains your IoT Edge solution.
    • Standardplattform: Wählen Sie die entsprechende Plattform für die Module auf dem gewünschten IoT Edge-Gerät basierend aus.Default platform: Select the appropriate platform for your modules based on your target IoT Edge device.
    • Ausgabevariablen: Die Ausgabevariablen enthalten einen Verweisnamen, mit dem Sie den Dateipfad konfigurieren können, in dem die deployment.json-Datei generiert wird.Output variables: The output variables include a reference name that you can use to configure the file path where your deployment.json file will be generated. Wählen Sie einen einprägsamen Verweisnamen wie edge.Set the reference name to something memorable like edge.
  7. Wählen Sie die zweite Azure IoT Edge-Aufgabe aus, um sie zu bearbeiten.Select the second Azure IoT Edge task to edit it. Diese Aufgabe überträgt alle Modulimages in die von Ihnen ausgewählte Containerregistrierung.This task pushes all module images to the container registry that you select.

    • Anzeigename: Der Anzeigename wird automatisch aktualisiert, wenn das Aktionsfeld geändert wird.Display name: The display name is automatically updated when the action field changes.
    • Aktion: Verwenden Sie die Dropdownliste, um Modulimages pushen auszuwählen.Action: Use the dropdown list to select Push module images.
    • Containerregistrierungstyp: Wählen Sie den Typ der Containerregistrierung aus, mit dem Sie Ihre Modulimages speichern.Container registry type: Select the type of container registry that you use to store your module images. Je nach ausgewähltem Registrierungstyp ändert sich die Form.Depending on which registry type you choose, the form changes. Wenn Sie Azure Container Registry auswählen, verwenden Sie die Dropdownlisten, um das Azure-Abonnement und den Namen Ihrer Containerregistrierung auszuwählen.If you choose Azure Container Registry, use the dropdown lists to select the Azure subscription and the name of your container registry. Wenn Sie Generische Containerregistrierung auswählen, wählen Sie Neu zum Erstellen einer Registrierungsdienstverbindung aus.If you choose Generic Container Registry, select New to create a registry service connection.
    • .template.json-Datei: Wählen Sie die Auslassungspunkte ( ... ) aus, und navigieren Sie zu der deployment.template.json-Datei in dem Repository, das die IoT Edge-Projektmappe enthält..template.json file: Select the ellipsis (...) and navigate to the deployment.template.json file in the repository that contains your IoT Edge solution.
    • Standardplattform: Wählen Sie die gleiche Plattform aus, auf der sich auch Ihre Modulimages befinden.Default platform: Select the same platform as your built module images.

    Wenn Sie die Modulimages in mehreren Containerregistrierungen hosten können, müssen Sie diese Aufgabe duplizieren. Wählen Sie eine andere Containerregistrierung aus, und verwenden Sie Bypass module(s) (Modul(e) umgehen) in den erweiterten Einstellungen, um die Images auszulassen, die nicht für diese spezifische Registrierung bestimmt sind.If you have multiple container registries to host your module images, you need to duplicate this task, select different container registry, and use Bypass module(s) in the advanced settings to bypass the images which are not for this specific registry.

  8. Wählen Sie die Aufgabe Dateien kopieren aus, um sie zu bearbeiten.Select the Copy Files task to edit it. Verwenden Sie diese Aufgabe, um Dateien in das Artefaktstagingverzeichnis zu kopieren.Use this task to copy files to the artifact staging directory.

    • Anzeigename: Dateien kopieren nach: Ablageordner.Display name: Copy Files to: Drop folder.
    • Inhalt: Fügen Sie in diesem Abschnitt zwei Zeilen ein: deployment.template.json und **/module.json.Contents: Put two lines in this section, deployment.template.json and **/module.json. Diese beiden Dateitypen sind die Eingaben, aus denen das IoT Edge-Bereitstellungsmanifest generiert wird.These two types of files are the inputs to generate IoT Edge deployment manifest. Sie müssen in den Artefaktstagingordner kopiert und für die Releasepipeline veröffentlicht werden.Need to be copied to the artifact staging folder and published for release pipeline.
    • Zielordner: Fügen Sie die Variable $(Build.ArtifactStagingDirectory) ein.Target Folder: Put the variable $(Build.ArtifactStagingDirectory). Eine Beschreibung finden Sie unter Buildvariablen.See Build variables to learn about the description.
  9. Wählen Sie die Aufgabe Buildartefakte veröffentlichen aus, um sie zu bearbeiten.Select the Publish Build Artifacts task to edit it. Geben Sie in der Aufgabe einen Pfad für das Artefaktstagingverzeichnis an, sodass dieser für die Releasepipeline veröffentlicht werden kann.Provide artifact staging directory path to the task so that the path can be published to release pipeline.

    • Anzeigename: Artefakt veröffentlichen: ablegen.Display name: Publish Artifact: drop.
    • Pfad für Veröffentlichung: Fügen Sie die Variable $(Build.ArtifactStagingDirectory) ein.Path to publish: Put the variable $(Build.ArtifactStagingDirectory). Eine Beschreibung finden Sie unter Buildvariablen.See Build variables to learn about the description.
    • Artefaktname: ablegen.Artifact name: drop.
    • Veröffentlichungsort für Artefakte: Azure Pipelines.Artifact publish location: Azure Pipelines.
  10. Wählen Sie die Registerkarte Trigger aus, und aktivieren Sie Continuous Integration aktivieren.Open the Triggers tab and check the box to Enable continuous integration. Stellen Sie sicher, dass der Branch mit Ihrem Code enthalten ist.Make sure the branch containing your code is included.

    Aktivieren des Continuous Integration-Triggers

  11. Speichern Sie die neue Buildpipeline mit der Schaltfläche Speichern.Save the new build pipeline with Save button.

Diese Pipeline ist jetzt für die automatische Ausführung konfiguriert, wenn Sie neuen Code in Ihr Repository pushen.This pipeline is now configured to run automatically when you push new code to your repo. Die letzte Aufgabe, Veröffentlichen der Pipelineartefakte, löst eine Releasepipeline aus.The last task, publishing the pipeline artifacts, triggers a release pipeline. Fortfahren Sie mit dem nächsten Abschnitt fort, um die Releasepipeline zu erstellen.Continue to the next section to build the release pipeline.

Konfigurieren von Continuous DeploymentConfigure continuous deployment

In diesem Abschnitt erstellen Sie eine Releasepipeline, die so konfiguriert ist, dass sie beim Ablegen von Artefakten durch Ihre Buildpipeline automatisch ausgeführt wird und Bereitstellungsprotokolle in Azure Pipelines anzeigt.In this section, you create a release pipeline that is configured to run automatically when your build pipeline drops artifacts, and it will show deployment logs in Azure Pipelines.

Erstellen einer neuen Pipeline und Hinzufügen einer neuen StageCreate a new pipeline, and add a new stage

  1. Wählen Sie auf der Registerkarte Releases die Option + Neue Pipeline aus.In the Releases tab, choose + New pipeline. Wenn Sie bereits über Releasepipelines verfügen, wählen Sie die Schaltfläche + Neu und dann + Neue Releasepipeline aus.Or, if you already have release pipelines, choose the + New button and select + New release pipeline.

    Hinzufügen einer Releasepipeline

  2. Wenn Sie aufgefordert werden, eine Vorlage auszuwählen, wählen Sie für den Einstieg Leerer Auftrag aus.When prompted to select a template, choose to start with an Empty job.

    Starten mit einem leeren Auftrag

  3. Ihre neue Releasepipeline wird mit einer Stufe namens Stage 1 initialisiert.Your new release pipeline initializes with one stage, called Stage 1. Benennen Sie „Stage 1“ in dev um, und behandeln Sie sie als Testumgebung.Rename Stage 1 to dev and treat it as a test environment. Continuous Deployment-Pipelines verfügen in der Regel über mehrere Stages: dev, staging und prod. Sie können basierend auf Ihrer DevOps-Praxis weitere erstellen.Usually, continuous deployment pipelines have multiple stages including dev, staging and prod. You can create more based on your DevOps practice. Schließen Sie das Stufendetailsfenster nach der Umbenennung.Close the stage details window once it's renamed.

  4. Verknüpfen Sie das Release mit den Buildartefakten, die von der Buildpipeline veröffentlicht werden.Link the release to the build artifacts that are published by the build pipeline. Klicken Sie im Artefaktbereich auf Hinzufügen.Click Add in artifacts area.

    Hinzufügen von Artefakten

  5. Wählen Sie auf der Seite Artefakt hinzufügen den Quellentyp Build aus.In Add an artifact page, select source type Build. Wählen Sie dann das Projekt und die erstellte Buildpipeline aus.Then, select the project and the build pipeline you created. Klicken Sie anschließend auf Hinzufügen.Then, select Add.

    Hinzufügen eines Buildartefakts

  6. Öffnen Sie die Artefakttrigger, und wählen Sie die Umschaltfläche aus, um die Continuous Deployment-Trigger zu aktivieren.Open the artifact triggers and select the toggle to enable the continuous deployment trigger. Nun wird immer dann ein neues Release erstellt, wenn ein neuer Build verfügbar ist.Now, a new release will be created each time a new build is available.

    Konfigurieren des Continuous Deployment-Triggers

  7. Die Stage dev ist mit einem Auftrag und null (0) Aufgaben vorkonfiguriert.The dev stage is preconfigured with one job and zero tasks. Wählen Sie im Pipelinemenü Aufgaben und dann die Stage dev aus.From the pipeline menu, select Tasks then choose the dev stage. Wählen Sie die Anzahl von Aufträgen und Aufgaben aus, um die Aufgaben in dieser Stufe zu konfigurieren.Select the job and task count to configure the tasks in this stage.

    Konfigurieren von dev-Aufgaben

  8. In der Stage dev sollte der Standardwert Agent-Auftrag angezeigt werden.In the dev stage, you should see a default Agent job. Sie können Details zum Agent-Auftrag konfigurieren, aber bei Bereitstellungsaufgaben ist die Plattform nicht von Bedeutung, sodass Sie im Agent-Pool eine der Optionen Hosted VS2017 oder Hosted Ubuntu 1604 (oder einen beliebigen anderen, von Ihnen selbst verwalteten Agent) verwenden können.You can configure details about the agent job, but the deployment task is platform insensitive so you can use either Hosted VS2017 or Hosted Ubuntu 1604 in the Agent pool (or any other agent managed by yourself).

  9. Wählen Sie das Pluszeichen ( + ) aus, um zwei Aufgaben hinzuzufügen.Select the plus sign (+) to add two task. Suchen Sie nach Azure IoT Edge, und fügen Sie die Aufgabe zweimal hinzu.Search for and add Azure IoT Edge twice.

    Hinzufügen von Aufgaben für dev

  10. Wählen Sie die erste Azure IoT Edge-Aufgabe aus, und konfigurieren Sie sie mit den folgenden Werten:Select the first Azure IoT Edge task and configure it with the following values:

    • Anzeigename: Der Anzeigename wird automatisch aktualisiert, wenn das Aktionsfeld geändert wird.Display name: The display name is automatically updated when the action field changes.
    • Aktion: Wählen Sie aus der Dropdownliste die Option Bereitstellungsmanifest generieren aus.Action: Use the dropdown list to select Generate deployment manifest. Ändern des Werts für die Aktion aktualisiert auch den Anzeigenamen der Aufgabe, mit dem Übereinstimmung herrschen muss.Changing the action value also updates the task display name to match.
    • .template.json-Datei: Geben Sie den Pfad $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json an..template.json file: Put the path $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Der Pfad wird aus der Buildpipeline veröffentlicht.The path is published from build pipeline.
    • Standardplattform: Wählen Sie den gleichen Wert aus wie beim Erstellen der Modulimages.Default platform: Choose the same value when building the module images.
    • Ausgabepfad: Geben Sie den Pfad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json an.Output path: Put the path $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Dieser Pfad ist die finale Datei mit dem IoT Edge-Bereitstellungsmanifest.This path is the final IoT Edge deployment manifest file.

    Diese Konfigurationen helfen dabei, die Modulimage-URLs in der Datei deployment.template.json zu ersetzen.These configurations helps replace the module image URLs in the deployment.template.json file. Die Aufgabe Bereitstellungsmanifest generieren hilft auch dabei, die Variablen durch die exakten Werte zu ersetzen, die Sie in der Datei deployment.template.json definiert haben.The Generate deployment manifest also helps replace the variables with the exact value you defined in the deployment.template.json file. In VS bzw. VS Code geben Sie den tatsächlichen Wert in einer .env-Datei an.In VS/VS Code, you are specifying the actual value in a .env file. In Azure Pipelines legen Sie den Wert auf der Registerkarte „Releasepipelinevariablen“ fest. Navigieren Sie zur Registerkarte „Variablen“, und konfigurieren Sie Name und Wert wie folgt.In Azure Pipelines, you set the value in Release Pipeline Variables tab. Move to Variables tab and configure the Name and Value as following.

    • ACR_ADDRESS: Die Adresse Ihrer Azure Container Registry.ACR_ADDRESS: Your Azure Container Registry address.
    • ACR_PASSWORD: Das Kennwort für Ihre Azure Container Registry.ACR_PASSWORD: Your Azure Container Registry password.
    • ACR_USER: Der Benutzername für Ihre Azure Container Registry.ACR_USER: Your Azure Container Registry username.

    Wenn in Ihrem Projekt noch weitere Variablen vorhanden sind, können Sie die Namen und Werte auf diese Registerkarte angeben. Die Aufgabe Bereitstellungsmanifest generieren erkennt nur Variablen in der Variante ${VARIABLE}. Stellen Sie also sicher, dass Sie diese Variante in Ihren *.template.json-Dateien verwenden.If you have other variables in your project, you can specify the name and value in this tab. The Generate deployment manifest can only recognize the variables are in ${VARIABLE} flavor, make sure you are using this in your *.template.json files.

    Konfigurieren von Variablen für eine Releasepipeline

  11. Wählen Sie die zweite Azure IoT Edge-Aufgabe aus, und konfigurieren Sie sie mit den folgenden Werten:Select the second Azure IoT Edge task and configure it with the following values:

    • Anzeigename: Der Anzeigename wird automatisch aktualisiert, wenn das Aktionsfeld geändert wird.Display name: The display name is automatically updated when the action field changes.
    • Aktion: Verwenden Sie die Dropdownliste, um Für IoT Edge-Gerät bereitstellen auszuwählen.Action: Use the dropdown list to select Deploy to IoT Edge devices. Ändern des Werts für die Aktion aktualisiert auch den Anzeigenamen der Aufgabe, mit dem Übereinstimmung herrschen muss.Changing the action value also updates the task display name to match.
    • Azure-Abonnement: Wählen Sie das Abonnement aus, das Ihre IoT Hub-Instanz enthält.Azure subscription: Select the subscription that contains your IoT Hub.
    • IoT Hub-Name: Wählen Sie Ihren IoT Hub aus.IoT Hub name: Select your IoT hub.
    • Einzelnes/mehrere Geräte auswählen: Wählen Sie aus, ob die Bereitstellung durch die Releasepipeline auf einem oder mehreren Geräten ausgeführt werden soll.Choose single/multiple device: Choose whether you want the release pipeline to deploy to one device or multiple devices.
      • Geben Sie bei Bereitstellung auf einem einzelnen Gerät die IoT Edge-Geräte-ID ein.If you deploy to a single device, enter the IoT Edge device ID.
      • Geben Sie bei einer Bereitstellung auf mehreren Geräten die Zielbedingung des Geräts an.If you are deploying to multiple devices, specify the device target condition. Die Zielbedingung ist ein Filter für den Abgleich mit einem Satz von IoT Edge-Geräten in IoT Hub.The target condition is a filter to match a set of IoT Edge devices in IoT Hub. Wenn Sie Gerätetags als Bedingung verwenden möchten, müssen Sie die Tags der entsprechenden Geräte mit einem Iot Hub-Gerätezwilling aktualisieren.If you want to use Device Tags as the condition, you need to update your corresponding devices Tags with IoT Hub device twin. Aktualisieren Sie die IoT Edge-Bereitstellungs-ID und IoT Edge-Bereitstellungspriorität in den erweiterten Einstellungen.Update the IoT Edge deployment ID and IoT Edge deployment priority in the advanced settings. Weitere Informationen zum Erstellen einer Bereitstellung für mehrere Geräte finden Sie unter Grundlegendes zu automatischen IoT Edge-Bereitstellungen für einzelne Geräte oder nach Bedarf.For more information about creating a deployment for multiple devices, see Understand IoT Edge automatic deployments.
    • Wählen Sie unter „Erweiterte Einstellungen“ die Option IoT Edge-Bereitstellungs-ID aus, und fügen Sie die Variable $(System.TeamProject)-$(Release.EnvironmentName) ein.Expand Advanced Settings, select IoT Edge deployment ID, put the variable $(System.TeamProject)-$(Release.EnvironmentName). Diese ordnet den Projekt- und Releasenamen Ihrer IoT Edge-Bereitstellungs-ID zu.This maps the project and release name with your IoT Edge deployment ID.
  12. Wählen Sie Speichern zum Speichern der Änderungen auf der neuen Releasepipeline aus.Select Save to save your changes to the new release pipeline. Kehren Sie durch Auswahl von Pipeline im Menü zur Pipelineansicht zurück.Return to the pipeline view by selecting Pipeline from the menu.

Überprüfen von CI/CD in IoT Edge mit den Build- und ReleasepipelinesVerify IoT Edge CI/CD with the build and release pipelines

Um einen Buildauftrag auszulösen, können Sie einen Commit in das Quellcoderepository pushen oder manuell auslösen.To trigger a build job, you can either push a commit to source code repository or manually trigger it. In diesem Abschnitt lösen Sie manuell die CI/CD-Pipeline aus, um die Funktionsweise zu testen.In this section, you manually trigger the CI/CD pipeline to test that it works. Anschließend überprüfen Sie, ob die Bereitstellung erfolgreich ausgeführt wird.Then verify that the deployment succeeds.

  1. Navigieren Sie zu der Buildpipeline, die Sie am Anfang dieses Artikels erstellt haben.Navigate to the build pipeline that you created at the beginning of this article.

  2. Sie können einen Buildauftrag in Ihrer Buildpipeline auslösen, indem Sie die Schaltfläche Warteschlange auswählen, wie im folgenden Screenshot dargestellt.You can trigger a build job in your build pipeline by selecting the Queue button as in following screenshot.

    Manueller Trigger

  3. Wählen Sie den Buildauftrag aus, um seinen Fortschritt zu überwachen.Select the build job to watch its progress. Wenn die Buildpipeline erfolgreich abgeschlossen ist, löst sie eine Releasepipeline zur dev-Stage aus.If the build pipeline is completed successfully, it triggers a release to dev stage.

    Buildprotokolle

  4. Das erfolgreiche dev-Release erstellt eine IoT Edge-Bereitstellung für IoT Edge-Geräte.The successful dev release creates IoT Edge deployment to target IoT Edge devices.

    Release für dev

  5. Klicken Sie auf die Stage dev, um die Releaseprotokolle anzuzeigen.Click dev stage to see release logs.

    Release-Protokolle

Nächste SchritteNext steps