Ciągła integracja i ciągłe wdrażanie do Azure IoT Edge urządzeńContinuous integration and continuous deployment to Azure IoT Edge devices

Dotyczy:  ikona tak IoT Edge 1,1  yes IoT Edge 1,2Applies to: yes icon IoT Edge 1.1 yes icon IoT Edge 1.2

Możesz łatwo przyjmować DevOps z aplikacjami Azure IoT Edge przy użyciu wbudowanych zadań Azure IoT Edge w Azure Pipelines.You can easily adopt DevOps with your Azure IoT Edge applications with the built-in Azure IoT Edge tasks in Azure Pipelines. W tym artykule pokazano, jak korzystać z funkcji ciągłej integracji i ciągłego wdrażania Azure Pipelines, aby szybko i wydajnie kompilować, testować i wdrażać aplikacje w Azure IoT Edge za pomocą YAML.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 using YAML. Alternatywnie można użyć edytora klasycznego.Alternatively, you can use the classic editor.

Diagramy — gałęzie CI i CD na potrzeby programowania i produkcji

W tym artykule dowiesz się, jak za pomocą wbudowanych Azure IoT Edge zadań dla Azure Pipelines utworzyć potoki kompilacji i wydania dla rozwiązania IoT Edge.In this article, you learn how to use the built-in Azure IoT Edge tasks for Azure Pipelines to create build and release pipelines for your IoT Edge solution. Każde zadanie Azure IoT Edge dodane do potoku implementuje jedną z następujących czterech akcji:Each Azure IoT Edge task added to your pipeline implements one of the following four actions:

AkcjaAction OpisDescription
Kompilowanie obrazów modułówBuild module images Pobiera IoT Edge kod rozwiązania i kompiluje obrazy kontenerów.Takes your IoT Edge solution code and builds the container images.
Wypychanie obrazów modułówPush module images Wypychanie obrazów modułów do określonego rejestru kontenerów.Pushes module images to the container registry you specified.
Generuj manifest wdrożeniaGenerate deployment manifest Przyjmuje deployment.template.jsw pliku i zmiennych, a następnie generuje plik manifestu wdrożenia Final IoT Edge.Takes a deployment.template.json file and the variables, then generates the final IoT Edge deployment manifest file.
Wdrażanie na urządzeniach usługi IoT EdgeDeploy to IoT Edge devices Tworzy IoT Edge wdrożenia na co najmniej jednym urządzeniu IoT Edge.Creates IoT Edge deployments to one or more IoT Edge devices.

O ile nie określono inaczej, procedury przedstawione w tym artykule nie eksplorują wszystkich funkcji dostępnych za pomocą parametrów zadań.Unless otherwise specified, the procedures in this article do not explore all the functionality available through task parameters. Aby uzyskać więcej informacji, zobacz następujące tematy:For more information, see the following:

Wymagania wstępnePrerequisites

  • Repozytorium Azure Repos.An Azure Repos repository. Jeśli go nie masz, możesz utworzyć nowe repozytorium Git w projekcie.If you don't have one, you can Create a new Git repo in your project. W tym artykule utworzyliśmy repozytorium o nazwie IoTEdgeRepo.For this article, we created a repository called IoTEdgeRepo.

  • Rozwiązanie IoT Edge zostało zatwierdzone i wypchnięte do repozytorium.An IoT Edge solution committed and pushed to your repository. Jeśli chcesz utworzyć nowe przykładowe rozwiązanie do testowania tego artykułu, postępuj zgodnie z instrukcjami w temacie programowanie i debugowanie modułów w Visual Studio Code lub opracowywanie i debugowanie modułów w języku C# w programie Visual Studio.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. W tym artykule utworzyliśmy rozwiązanie w naszym repozytorium o nazwie IoTEdgeSolution, które ma kod dla modułu o nazwie filtermodule.For this article, we created a solution in our repository called IoTEdgeSolution, which has the code for a module named filtermodule.

    W tym artykule wystarczy, że jest to folder rozwiązania utworzony przez szablony IoT Edge w Visual Studio Code lub Visual Studio.For this article, all you need is the solution folder created by the IoT Edge templates in either Visual Studio Code or Visual Studio. Nie musisz kompilować, wypchnięciować, wdrażać ani debugować tego kodu przed kontynuowaniem.You don't need to build, push, deploy, or debug this code before proceeding. Te procesy zostaną skonfigurowane w Azure Pipelines.You'll set up those processes in Azure Pipelines.

    Jeśli tworzysz nowe rozwiązanie, najpierw Sklonuj repozytorium lokalnie.If you're creating a new solution, clone your repository locally first. Następnie podczas tworzenia rozwiązania można utworzyć je bezpośrednio w folderze repozytorium.Then, when you create the solution you can choose to create it directly in the repository folder. W tym miejscu możesz łatwo zatwierdzić i wypchnąć nowe pliki.You can easily commit and push the new files from there.

  • Rejestr kontenerów, w którym można wypchnąć obrazy modułów.A container registry where you can push module images. Możesz użyć Azure Container Registry lub rejestru innej firmy.You can use Azure Container Registry or a third-party registry.

  • Aktywne Centrum IoT Azure z co najmniej dwoma IoT Edge urządzeniami do testowania oddzielnych etapów wdrożenia testowego i produkcyjnego.An active Azure IoT hub with at least two IoT Edge devices for testing the separate test and production deployment stages. Możesz skorzystać z artykułów szybkiego startu, aby utworzyć urządzenie IoT Edge w systemie Linux lub WindowsYou can follow the quickstart articles to create an IoT Edge device on Linux or Windows

Aby uzyskać więcej informacji o korzystaniu z Azure Repos, zobacz udostępnianie kodu za pomocą programu Visual Studio i Azure ReposFor more information about using Azure Repos, see Share your code with Visual Studio and Azure Repos

Tworzenie potoku kompilacji na potrzeby ciągłej integracjiCreate a build pipeline for continuous integration

W tej sekcji utworzysz nowy potok kompilacji.In this section, you create a new build pipeline. Potok można skonfigurować tak, aby uruchamiał się automatycznie po zaewidencjonowaniu wszelkich zmian w przykładowym rozwiązaniu IoT Edge i publikowaniu dzienników kompilacji.You configure the pipeline to run automatically when you check in any changes to the sample IoT Edge solution and to publish build logs.

  1. Zaloguj się do organizacji usługi Azure DevOps ( https://dev.azure.com/{your organization} ) i Otwórz projekt, który zawiera repozytorium rozwiązań IoT Edge.Sign in to your Azure DevOps organization (https://dev.azure.com/{your organization}) and open the project that contains your IoT Edge solution repository.

    Otwórz projekt DevOps

  2. Z menu po lewej stronie w projekcie wybierz pozycję potoki.From the left pane menu in your project, select Pipelines. Wybierz pozycję Utwórz potok na środku strony.Select Create Pipeline at the center of the page. Lub, jeśli masz już potoki kompilacji, wybierz przycisk Nowy potok w prawym górnym rogu.Or, if you already have build pipelines, select the New pipeline button in the top right.

    Tworzenie nowego potoku kompilacji przy użyciu przycisku Nowy potok

  3. Na stronie gdzie masz swój kod? wybierz pozycję Azure Repos git YAML.On the Where is your code? page, select Azure Repos Git YAML. Jeśli chcesz użyć klasycznego edytora, aby utworzyć potoki kompilacji projektu, zobacz klasyczny Przewodnik edytora.If you wish to use the classic editor to create your project's build pipelines, see the classic editor guide.

  4. Wybierz repozytorium, dla którego tworzysz potok.Select the repository you are creating a pipeline for.

    Wybierz repozytorium dla potoku kompilacji

  5. Na stronie Konfiguruj potok wybierz pozycję potok początkowy.On the Configure your pipeline page, select Starter pipeline. Jeśli masz istniejący Azure Pipelines plik YAML, którego chcesz użyć do utworzenia tego potoku, możesz wybrać istniejący plik Azure PIPELINES YAML i podać gałąź i ścieżkę do pliku.If you have a preexisting Azure Pipelines YAML file you wish to use to create this pipeline, you can select Existing Azure Pipelines YAML file and provide the branch and path in the repository to the file.

    Wybierz pozycję potok początkowy lub istniejący plik Azure Pipelines YAML, aby rozpocząć potok kompilacji

  6. Na stronie Przejrzyj swoją YAMLę potoku możesz kliknąć nazwę domyślną, azure-pipelines.yml Aby zmienić nazwę pliku konfiguracji potoku.On the Review your pipeline YAML page, you can click the default name azure-pipelines.yml to rename your pipeline's configuration file.

    Wybierz pozycję Pokaż asystenta , aby otworzyć paletę zadania .Select Show assistant to open the Tasks palette.

    Wybierz pozycję Pokaż asystenta, aby otworzyć paletę zadań

  7. Aby dodać zadanie, umieść kursor na końcu YAML lub wszędzie tam, gdzie chcesz dodać instrukcje dla zadania.To add a task, place your cursor at the end of the YAML or wherever you want the instructions for your task to be added. Wyszukaj i wybierz Azure IoT Edge.Search for and select Azure IoT Edge. Wypełnij parametry zadania w następujący sposób.Fill out the task's parameters as follows. Następnie wybierz pozycję Dodaj.Then, select Add.

    ParametrParameter OpisDescription
    AkcjaAction Wybierz pozycję obrazy modułu kompilacji.Select Build module images.
    .template.jspliku.template.json file Podaj ścieżkę do deployment.template.jsw pliku w repozytorium zawierającym rozwiązanie IoT Edge.Provide the path to the deployment.template.json file in the repository that contains your IoT Edge solution.
    Platforma domyślnaDefault platform Wybierz odpowiedni system operacyjny dla modułów w oparciu o Twoje urządzenie IoT Edge.Select the appropriate operating system for your modules based on your targeted IoT Edge device.

    Użyj palety zadań, aby dodać zadania do potoku

    Porada

    Po dodaniu każdego zadania edytor automatycznie podświetla dodane wiersze.After each task is added, the editor will automatically highlight the added lines. Aby zapobiec przypadkowemu zastąpieniu, usuń zaznaczenie wierszy i podaj nowe miejsce dla następnego zadania przed dodaniem kolejnych zadań.To prevent accidental overwriting, deselect the lines and provide a new space for your next task before adding additional tasks.

  8. Powtórz ten proces, aby dodać trzy więcej zadań z następującymi parametrami:Repeat this process to add three more tasks with the following parameters:

    • Zadanie: Azure IoT EdgeTask: Azure IoT Edge

      ParametrParameter OpisDescription
      AkcjaAction Wybierz pozycję wypychanie obrazów modułu.Select Push module images.
      Typ rejestru konteneraContainer registry type Użyj typu domyślnego: Azure Container Registry.Use the default type: Azure Container Registry.
      Subskrypcja platformy AzureAzure subscription Wybierz subskrypcję.Select your subscription.
      Azure Container RegistryAzure Container Registry Wybierz rejestr, który ma być używany dla potoku.Choose the registry that you want to use for the pipeline.
      .template.jspliku.template.json file Podaj ścieżkę do deployment.template.jsw pliku w repozytorium zawierającym rozwiązanie IoT Edge.Provide the path to the deployment.template.json file in the repository that contains your IoT Edge solution.
      Platforma domyślnaDefault platform Wybierz odpowiedni system operacyjny dla modułów w oparciu o Twoje urządzenie IoT Edge.Select the appropriate operating system for your modules based on your targeted IoT Edge device.
    • Zadanie: Kopiowanie plikówTask: Copy Files

      ParametrParameter OpisDescription
      Folder źródłowySource Folder Folder źródłowy do skopiowania.The source folder to copy from. Wartość pusta jest katalogiem głównym repozytorium.Empty is the root of the repo. Użyj zmiennych, jeśli pliki nie znajdują się w repozytorium.Use variables if files are not in the repo. Przykład: $(agent.builddirectory).Example: $(agent.builddirectory).
      ZawartośćContents Dodaj dwie linie: deployment.template.json i **/module.json .Add two lines: deployment.template.json and **/module.json.
      Folder docelowyTarget Folder Określ zmienną $(Build.ArtifactStagingDirectory) .Specify the variable $(Build.ArtifactStagingDirectory). Zobacz temat Tworzenie zmiennych , aby dowiedzieć się więcej o opisie.See Build variables to learn about the description.
    • Zadanie: Publikowanie artefaktów kompilacjiTask: Publish Build Artifacts

      ParametrParameter OpisDescription
      Ścieżka do publikowaniaPath to publish Określ zmienną $(Build.ArtifactStagingDirectory) .Specify the variable $(Build.ArtifactStagingDirectory). Zobacz temat Tworzenie zmiennych , aby dowiedzieć się więcej o opisie.See Build variables to learn about the description.
      Nazwa artefaktuArtifact name Określ nazwę domyślną: dropSpecify the default name: drop
      Lokalizacja publikowania artefaktuArtifact publish location Użyj domyślnej lokalizacji: Azure PipelinesUse the default location: Azure Pipelines
  9. Wybierz pozycję Zapisz z listy rozwijanej Zapisz i uruchom w prawym górnym rogu.Select Save from the Save and run dropdown in the top right.

  10. Wyzwalacz integracji ciągłej jest domyślnie włączony dla potoku YAML.The trigger for continuous integration is enabled by default for your YAML pipeline. Jeśli chcesz edytować te ustawienia, wybierz potok, a następnie kliknij przycisk Edytuj w prawym górnym rogu.If you wish to edit these settings, select your pipeline and click Edit in the top right. Wybierz pozycję więcej akcji obok przycisku Uruchom w prawym górnym rogu i przejdź do pozycji wyzwalacze.Select More actions next to the Run button in the top right and go to Triggers. Ciągła integracja jest wyświetlana jako włączona pod nazwą potoku.Continuous integration shows as enabled under your pipeline's name. Jeśli chcesz zobaczyć szczegóły wyzwalacza, zaznacz pole wyboru Zastąp wyzwalacz ciągła integracja z usługą YAML w tym miejscu .If you wish to see the details for the trigger, check the Override the YAML continuous integration trigger from here box.

    Aby przejrzeć ustawienia wyzwalacza potoku, zobacz Wyzwalacze w obszarze więcej akcji

Przejdź do następnej sekcji, aby skompilować potok wersji.Continue to the next section to build the release pipeline.

Tworzenie potoku wydania na potrzeby ciągłego wdrażaniaCreate a release pipeline for continuous deployment

W tej sekcji utworzysz potok wydania, który jest skonfigurowany do automatycznego uruchamiania, gdy potok kompilacji pospadnie artefakty, a dzienniki wdrażania zostaną wyświetlone w Azure Pipelines.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.

Utwórz nowy potok i Dodaj nowy etap:Create a new pipeline, and add a new stage:

  1. Na karcie wersje w obszarze potoki wybierz pozycję + Nowy potok.In the Releases tab under Pipelines, choose + New pipeline. Lub, jeśli masz już potoki wersji, wybierz przycisk + Nowy i wybierz pozycję + Nowy potok wersji.Or, if you already have release pipelines, choose the + New button and select + New release pipeline.

    Dodawanie potoku wydania przy użyciu przycisku + Nowy potok

  2. Po wyświetleniu monitu o wybranie szablonu wybierz pozycję Rozpocznij od pustego zadania.When prompted to select a template, choose to start with an Empty job.

    Zacznij od pustego zadania dla potoku wydania

  3. Nowy potok wydania jest inicjowany z jednym etapem, zwanym etapem 1.Your new release pipeline initializes with one stage, called Stage 1. Zmień nazwę etapu 1 na dev i Traktuj ją jako potok ciągłego wdrażania dla środowiska deweloperskiego.Rename Stage 1 to dev and treat it as a continuous deployment pipeline for your development environment. Zwykle potoki ciągłego wdrażania mają wiele etapów, w tym dev, Staging i prod. Możesz użyć różnych nazw i utworzyć więcej na podstawie swojej DevOps.Usually, continuous deployment pipelines have multiple stages including dev, staging, and prod. You can use different names and create more based on your DevOps practice. Zamknij okno Szczegóły etapu po jego zmianie nazwy.Close the stage details window once it's renamed.

    Możesz również zmienić nazwę potoku wydania, zaznaczając w górnej części tekst "Nowa wersja potoku".You can also rename your release pipeline by selecting the "New release pipeline" text at the top.

  4. Połącz wydanie z artefaktami kompilacji, które są publikowane przez potok kompilacji.Link the release to the build artifacts that are published by the build pipeline. Kliknij przycisk Dodaj w obszarze artefaktów.Click Add in artifacts area.

    Kliknij przycisk Dodaj w obszarze artefaktów interfejsu

  5. Na stronie Dodawanie artefaktu wybierz opcję Kompiluj jako Typ źródła.On the Add an artifact page, select Build as the Source type. Wybierz projekt i utworzony potok kompilacji.Choose the project and the build pipeline you created. Jeśli chcesz, możesz zmienić alias źródłowy na coś bardziej opisowego.If you wish, you can change the Source alias to something more descriptive. Następnie wybierz pozycję Dodaj.Then, select Add.

    Na stronie Dodawanie artefaktu wybierz pozycję Dodaj, aby utworzyć artefakt

  6. Otwórz wyzwalacze artefaktów i wybierz przełącznik, aby włączyć wyzwalacz ciągłego wdrażania.Open the artifact triggers and select the toggle to enable the continuous deployment trigger. Teraz Nowa wersja zostanie utworzona za każdym razem, gdy zostanie udostępniona nowa kompilacja.Now, a new release will be created each time a new build is available.

    Otwórz wyzwalacze artefaktów i Przełącz, aby włączyć wyzwalacz ciągłego wdrażania

  7. Etap dev jest wstępnie skonfigurowany przy użyciu jednego zadania i zero zadań.The dev stage is preconfigured with one job and zero tasks. Z menu potok wybierz pozycję zadania , a następnie wybierz etap dev .From the pipeline menu, select Tasks then choose the dev stage. Wybierz zadanie agenta i zmień jego nazwę wyświetlaną na wartość pytania i odpowiedzi.Select the Agent job and change its Display name to QA. Można skonfigurować szczegółowe informacje o zadaniu agenta, ale zadanie wdrażania jest niezależne od platformy, aby można było użyć dowolnej specyfikacji agenta w wybranej puli agentów.You can configure details about the agent job, but the deployment task is platform insensitive so you can use any Agent specification in the chosen Agent pool.

    Wyświetl zadania dla etapu dev na karcie zadania

  8. W zadaniu pytań i odpowiedzi wybierz znak plus ( + ), aby dodać dwa zadania.On the QA job, select the plus sign (+) to add two tasks. Wyszukaj i Dodaj Azure IoT Edge dwa razy.Search for and add Azure IoT Edge twice.

  9. Wybierz pierwsze zadanie Azure IoT Edge i skonfiguruj je przy użyciu następujących wartości:Select the first Azure IoT Edge task and configure it with the following values:

    ParametrParameter OpisDescription
    Nazwa wyświetlanaDisplay name Nazwa wyświetlana jest automatycznie aktualizowana, gdy pole akcji ulega zmianie.The display name is automatically updated when the Action field changes.
    AkcjaAction Wybierz pozycję Generate deployment manifest.Select Generate deployment manifest.
    .template.jspliku.template.json file Określ ścieżkę: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json .Specify the path: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Ścieżka jest publikowana z potoku kompilacji.The path is published from build pipeline.
    Platforma domyślnaDefault platform Wybierz odpowiedni system operacyjny dla modułów w oparciu o Twoje urządzenie IoT Edge.Select the appropriate operating system for your modules based on your targeted IoT Edge device.
    Ścieżka wyjściowaOutput path Umieść ścieżkę $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json .Put the path $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Ta ścieżka to końcowy plik manifestu wdrażania IoT Edge.This path is the final IoT Edge deployment manifest file.

    Te konfiguracje ułatwiają zastępowanie adresów URL obrazów modułów w deployment.template.json pliku.These configurations helps replace the module image URLs in the deployment.template.json file. Funkcja Generuj manifest wdrożenia pomaga również zastąpić zmienne dokładnie wartością określoną w deployment.template.json pliku.The Generate deployment manifest also helps replace the variables with the exact value you defined in the deployment.template.json file. W programie VS/VS Code określasz wartość rzeczywistą w .env pliku.In VS/VS Code, you are specifying the actual value in a .env file. W Azure Pipelines należy ustawić wartość na karcie zmienne potoku wydania . Przejdź do karty zmienne i skonfiguruj nazwę i wartość w następujący sposób: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: Azure Container Registry wartość serwera logowania .ACR_ADDRESS: Your Azure Container Registry Login server value. Serwer logowania można pobrać ze strony Przegląd rejestru kontenerów w Azure Portal.You can retrieve the Login server from the Overview page of your container registry in the Azure portal.
    • ACR_PASSWORD: hasło Azure Container Registry.ACR_PASSWORD: Your Azure Container Registry password.
    • ACR_USER: Azure Container Registry nazwy użytkownika.ACR_USER: Your Azure Container Registry username.

    Jeśli w projekcie znajdują się inne zmienne, możesz określić nazwę i wartość na tej karcie. Manifest dotyczący generowania wdrożenia może rozpoznawać tylko zmienne, które są w wersji ${VARIABLE} .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 that are in ${VARIABLE} flavor. Upewnij się, że używasz tego *.template.json pliku w plikach.Make sure you are using this flavor in your *.template.json files.

    "registryCredentials": {
      "<ACR name>": { // Your Azure Container Registry **Registry name** value
        "username": "${ACR_USER}",
        "password": "${ACR_PASSWORD}",
        "address": "${ACR_ADDRESS}"
      }
    }
    

    Konfigurowanie zmiennych dla potoku wydania na karcie zmienne

  10. Wybierz drugie zadanie Azure IoT Edge i skonfiguruj je przy użyciu następujących wartości:Select the second Azure IoT Edge task and configure it with the following values:

    ParametrParameter OpisDescription
    Nazwa wyświetlanaDisplay name Nazwa wyświetlana jest automatycznie aktualizowana, gdy pole akcji ulega zmianie.The display name is automatically updated when the Action field changes.
    AkcjaAction Wybierz pozycję Deploy to IoT Edge devices.Select Deploy to IoT Edge devices.
    Plik wdrożeniaDeployment file Umieść ścieżkę $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json .Put the path $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Ta ścieżka jest plikiem manifestu wdrażania IoT Edge.This path is the file IoT Edge deployment manifest file.
    Subskrypcja platformy AzureAzure subscription Wybierz subskrypcję zawierającą IoT Hub.Select the subscription that contains your IoT Hub.
    Nazwa IoT HubIoT Hub name Wybierz Centrum IoT Hub.Select your IoT hub.
    Wybieranie jednego/wielu urządzeńChoose single/multiple device Zdecyduj, czy potok wydania ma zostać wdrożony na jednym, czy na wielu urządzeniach.Choose whether you want the release pipeline to deploy to one or multiple devices. W przypadku wdrażania na jednym urządzeniu wprowadź IoT Edge identyfikator urządzenia.If you deploy to a single device, enter the IoT Edge device ID. W przypadku wdrażania na wielu urządzeniach należy określić warunek docelowy urządzenia.If you are deploying to multiple devices, specify the device target condition. Warunek docelowy to filtr zgodny z zestawem IoT Edge urządzeń w IoT Hub.The target condition is a filter to match a set of IoT Edge devices in IoT Hub. Jeśli chcesz używać tagów urządzenia jako warunku, musisz zaktualizować odpowiednie znaczniki urządzeń za pomocą sznurka urządzenia IoT Hub.If you want to use device tags as the condition, you need to update your corresponding devices tags with IoT Hub device twin. Zaktualizuj IoT Edge identyfikator wdrożenia i IoT Edge priorytet wdrożenia w obszarze Ustawienia zaawansowane.Update the IoT Edge deployment ID and IoT Edge deployment priority in the advanced settings. Aby uzyskać więcej informacji na temat tworzenia wdrożenia dla wielu urządzeń, zobacz opis IoT Edge wdrożeń automatycznych.For more information about creating a deployment for multiple devices, see Understand IoT Edge automatic deployments.
    Identyfikator urządzenia lub warunek docelowyDevice ID or target condition W zależności od wcześniejszego wyboru Określ identyfikator urządzenia lub warunek docelowy , który ma zostać wdrożony na wielu urządzeniach.Depending on the prior selection, specify a device ID or target condition to deploy to multiple devices.
    ZaawansowanyAdvanced Dla identyfikatora wdrożenia IoT Edge Określ $(System.TeamProject)-$(Release.EnvironmentName) .For the IoT Edge deployment ID, specify $(System.TeamProject)-$(Release.EnvironmentName). Ta zmienna mapuje projekt i nazwę wydania na identyfikator wdrożenia IoT Edge.This variable maps the project and release name with your IoT Edge deployment ID.

    Jeśli zadanie obejmuje korzystanie z obrazu, który znajduje się w prywatnym rejestrze platformy Docker, który nie jest widoczny dla chmury publicznej, można ustawić zmienną środowiskową SKIP_MODULE_IMAGE_VALIDATION , aby true pominąć sprawdzanie poprawności obrazu.If your task involves using an image that resides in a private Docker Trusted Registry that isn't visible to the public cloud, you can set the SKIP_MODULE_IMAGE_VALIDATION environment variable to true to skip image validation.

    Dodawanie Azure IoT Edge zadań dla etapu deweloperskiego

  11. Wybierz pozycję Zapisz , aby zapisać zmiany w nowym potoku wydania.Select Save to save your changes to the new release pipeline. Wróć do widoku potoku, wybierając z menu pozycję Karta potoku .Return to the pipeline view by selecting Pipeline tab from the menu.

Weryfikuj IoT Edge ciągłej integracji/ciągłego wdrażania przy użyciu potoków kompilacja i wydanieVerify IoT Edge CI/CD with the build and release pipelines

Aby wyzwolić zadanie kompilacji, można wypchnąć zatwierdzenie do repozytorium kodu źródłowego lub ręcznie je wyzwolić.To trigger a build job, you can either push a commit to source code repository or manually trigger it. W tej sekcji ręcznie wyzwolimy potok ciągłej integracji/ciągłego wdrażania, aby sprawdzić, czy działa.In this section, you manually trigger the CI/CD pipeline to test that it works. Następnie sprawdź, czy wdrożenie powiodło się.Then verify that the deployment succeeds.

  1. W menu po lewej stronie wybierz pozycję potoki i Otwórz potok kompilacji utworzony na początku tego artykułu.From the left pane menu, select Pipelines and open the build pipeline that you created at the beginning of this article.

  2. Możesz wyzwolić zadanie kompilacji w potoku kompilacji, wybierając przycisk Uruchom potok w prawym górnym rogu.You can trigger a build job in your build pipeline by selecting the Run pipeline button in the top right.

    Ręczne wyzwalanie potoku kompilacji przy użyciu przycisku Uruchom potok

  3. Przejrzyj ustawienia przebiegu potoku .Review the Run pipeline settings. Następnie wybierz pozycję Uruchom.Then, select Run.

    Określ opcje przebiegu potoku i wybierz pozycję Uruchom

  4. Wybierz zadanie agenta 1 , aby obserwować postęp przebiegu.Select Agent job 1 to watch the run's progress. Możesz przejrzeć dzienniki danych wyjściowych zadania, wybierając zadanie.You can review the logs of the job's output by selecting the job.

    Przejrzyj dane wyjściowe dziennika zadania

  5. W przypadku pomyślnego ukończenia potoku kompilacji jest wyzwalane wydanie do etapu dev .If the build pipeline is completed successfully, it triggers a release to dev stage. Pomyślne wydanie deweloperskie tworzy IoT Edge wdrożenie IoT Edge urządzeń docelowych.The successful dev release creates IoT Edge deployment to target IoT Edge devices.

    Wydanie do deweloperów

  6. Kliknij pozycję etap deweloperów , aby wyświetlić dzienniki wydań.Click dev stage to see release logs.

    Dzienniki wydań

  7. Jeśli potok kończy się niepowodzeniem, Zacznij od przejrzenia dzienników.If your pipeline is failing, start by looking at the logs. Dzienniki można wyświetlić, przechodząc do podsumowania uruchomienia potoku i wybierając zadanie i zadanie.You can view logs by navigating to the pipeline run summary and selecting the job and task. Jeśli określone zadanie zakończy się niepowodzeniem, Sprawdź dzienniki dla tego zadania.If a certain task is failing, check the logs for that task. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania i używania dzienników, zobacz Przeglądanie dzienników w celu diagnozowania problemów z potokiem.For detailed instructions for configuring and using logs, see Review logs to diagnose pipeline issues.

Następne krokiNext steps