Delen via


Continue integratie en continue implementatie op Azure IoT Edge-apparaten

Van toepassing op:IoT Edge 1.5-vinkje IoT Edge 1.5 Vinkje voor IoT Edge 1.4 IoT Edge 1.4

Belangrijk

IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

U kunt DevOps eenvoudig gebruiken met uw Azure IoT Edge-toepassingen met de ingebouwde Azure IoT Edge-taken in Azure Pipelines. In dit artikel wordt beschreven hoe u Azure Pipelines kunt gebruiken om Azure IoT Edge-modules te bouwen, testen en implementeren met behulp van YAML. U kunt ook de klassieke editor gebruiken.

Diagram van vertakkingen voor continue integratie en continue ontwikkeling voor ontwikkeling en productie.

In dit artikel leert u hoe u de ingebouwde Azure IoT Edge-taken voor Azure Pipelines gebruikt om build- en release-pijplijnen te maken voor uw IoT Edge-oplossing. Elke Azure IoT Edge-taak die aan uw pijplijn is toegevoegd, implementeert een van de volgende vier acties:

Actie Beschrijving
Module-installatiekopieën bouwen Neemt uw IoT Edge-oplossingscode en bouwt de containerinstallatiekopieën.
Installatiekopieën van pushmodules Pusht module-installatiekopieën naar het containerregister dat u hebt opgegeven.
Implementatiemanifest genereren Neemt een deployment.template.json bestand en de variabelen en genereert vervolgens het uiteindelijke Manifestbestand van de IoT Edge-implementatie.
Implementeren naar IoT Edge-apparaten Hiermee maakt u IoT Edge-implementaties op een of meer IoT Edge-apparaten.

Tenzij anders opgegeven, verkennen de procedures in dit artikel niet alle functionaliteit die beschikbaar is via taakparameters. Voor meer informatie raadpleegt u de volgende bronnen:

Vereisten

  • Een Opslagplaats voor Azure-opslagplaatsen. Als u er nog geen hebt, kunt u een nieuwe Git-opslagplaats maken in uw project. Voor dit artikel hebben we een opslagplaats gemaakt met de naam IoTEdgeRepo.

  • Een IoT Edge-oplossing die is doorgevoerd en naar uw opslagplaats gepusht. Als u een nieuwe voorbeeldoplossing wilt maken voor het testen van dit artikel, volgt u de stappen in Azure IoT Edge-modules ontwikkelen met Behulp van Visual Studio Code. Voor dit artikel hebben we een oplossing gemaakt in onze opslagplaats met de naam IoTEdgeSolution, die de code bevat voor een module met de naam filtermodule.

    Voor dit artikel hebt u alleen de oplossingsmap nodig die is gemaakt door de IoT Edge-sjablonen in Visual Studio Code of Visual Studio. U hoeft deze code niet te bouwen, pushen, implementeren of fouten op te sporen voordat u doorgaat. U gaat deze processen instellen in Azure Pipelines.

    Het pad naar het deployment.template.json-bestand in uw oplossing kennen, dat in verschillende stappen wordt gebruikt. Als u niet bekend bent met de rol van de implementatiesjabloon, raadpleegt u Meer informatie over het implementeren van modules en het opzetten van routes.

    Tip

    Als u een nieuwe oplossing maakt, kloont u eerst uw opslagplaats lokaal. Wanneer u vervolgens de oplossing maakt, kunt u ervoor kiezen om deze rechtstreeks in de opslagplaatsmap te maken. U kunt de nieuwe bestanden eenvoudig doorvoeren en pushen.

  • Een containerregister waar u module-installatiekopieën kunt pushen. U kunt Azure Container Registry of een register van derden gebruiken.

  • Een actieve Azure IoT-hub met ten minste twee IoT Edge-apparaten voor het testen van de afzonderlijke test- en productie-implementatiefasen. U kunt de quickstart-artikelen volgen om een IoT Edge-apparaat te maken in Linux of Windows

Zie Uw code delen met Visual Studio en Azure-opslagplaatsen voor meer informatie over het gebruik van Azure-opslagplaatsen.

Een build-pijplijn maken voor continue integratie

In deze sectie maakt u een nieuwe build-pijplijn. U configureert de pijplijn zo dat deze automatisch wordt uitgevoerd wanneer u wijzigingen in de IoT Edge-voorbeeldoplossing incheckt en buildlogboeken publiceert.

  1. Meld u aan bij uw Azure DevOps-organisatie (https://dev.azure.com/{your organization}) en open het project dat uw IoT Edge-oplossingsopslagplaats bevat.

    Schermopname die laat zien hoe u uw DevOps-project opent.

  2. Selecteer Pijplijnen in het linkerdeelvenstermenu in uw project. Selecteer Pijplijn maken in het midden van de pagina. Als u al build-pijplijnen hebt, selecteert u de knop Nieuwe pijplijn in de rechterbovenhoek.

    Schermopname die laat zien hoe u een nieuwe build-pijplijn maakt met behulp van de knop Nieuwe pijplijn.

  3. Selecteer Op de pagina Waar is uw code? de optie Git YAMLvoor Azure-opslagplaatsen. Als u de klassieke editor wilt gebruiken om de build-pijplijnen van uw project te maken, raadpleegt u de klassieke editorhandleiding.

  4. Selecteer de opslagplaats waarvoor u een pijplijn maakt.

    Schermopname die laat zien hoe u de opslagplaats voor uw build-pijplijn selecteert.

  5. Selecteer Starter-pijplijn op de pagina Uw pijplijn configureren. Als u een bestaand YAML-bestand van Azure Pipelines hebt dat u wilt gebruiken om deze pijplijn te maken, kunt u bestaand YAML-bestand voor Azure Pipelines selecteren en de vertakking en het pad in de opslagplaats opgeven voor het bestand.

    Selecteer Starter-pijplijn of bestaand YAML-bestand van Azure Pipelines om te beginnen met uw build-pijplijn

  6. Op de pagina Uw pijplijn YAML controleren kunt u de standaardnaam selecteren om de naam azure-pipelines.yml van het configuratiebestand van uw pijplijn te wijzigen.

    Selecteer Assistent weergeven om het takenpalet te openen.

    Schermopname die laat zien hoe u Assistent Weergeven selecteert om het takenpalet te openen.

  7. Als u een taak wilt toevoegen, plaatst u de cursor aan het einde van de YAML of op de plaats waar u de instructies voor uw taak wilt toevoegen. Zoek en selecteer Azure IoT Edge. Vul de parameters van de taak als volgt in. Selecteer vervolgens Toevoegen.

    Parameter Description
    Actie Selecteer Installatiekopieën van buildmodules.
    .template.json-bestand Geef het pad op naar het deployment.template.json-bestand in de opslagplaats die uw IoT Edge-oplossing bevat.
    Standaardplatform Selecteer het juiste besturingssysteem voor uw modules op basis van uw beoogde IoT Edge-apparaat.

    Zie de Azure IoT Edge-taak voor meer informatie over deze taak en de bijbehorende parameters.

    Schermopname van het palet Taken gebruiken en hoe u taken toevoegt aan uw pijplijn.

    Tip

    Nadat elke taak is toegevoegd, markeert de editor automatisch de toegevoegde regels. Als u onbedoeld overschrijven wilt voorkomen, moet u de regels deselecteren en een nieuwe ruimte voor uw volgende taak opgeven voordat u extra taken toevoegt.

  8. Herhaal dit proces om nog drie taken toe te voegen met de volgende parameters:

    • Taak: Azure IoT Edge

      Parameter Description
      Actie Selecteer Installatiekopieën van pushmodules.
      Containerregistertype Gebruik het standaardtype: Azure Container Registry.
      Azure-abonnement Selecteer uw abonnement.
      Azure Container Registry Kies het register dat u wilt gebruiken voor de pijplijn.
      .template.json-bestand Geef het pad op naar het deployment.template.json-bestand in de opslagplaats die uw IoT Edge-oplossing bevat.
      Standaardplatform Selecteer het juiste besturingssysteem voor uw modules op basis van uw beoogde IoT Edge-apparaat.

      Zie de Azure IoT Edge-taak voor meer informatie over deze taak en de bijbehorende parameters.

    • Taak: Bestanden kopiëren

      Parameter Description
      Bronmap De bronmap waaruit u wilt kopiëren. Leeg is de hoofdmap van de opslagplaats. Gebruik variabelen als bestanden zich niet in de opslagplaats bevinden. Voorbeeld: $(agent.builddirectory).
      Inhoud Voeg twee regels toe: deployment.template.json en **/module.json.
      Doelmap Geef de variabele $(Build.ArtifactStagingDirectory)op. Zie Build-variabelen voor meer informatie over de beschrijving.

      Zie De taak Bestanden kopiëren voor meer informatie over deze taak en de bijbehorende parameters.

    • Taak: Build-artefacten publiceren

      Parameter Description
      Pad om te publiceren Geef de variabele $(Build.ArtifactStagingDirectory)op. Zie Build-variabelen voor meer informatie over de beschrijving.
      Naam van het artefact Geef de standaardnaam op: drop
      Locatie voor publicatie van artefacten Gebruik de standaardlocatie: Azure Pipelines

      Zie De taak Build-artefacten publiceren voor meer informatie over deze taak en de bijbehorende parameters.

  9. Selecteer Opslaan in de vervolgkeuzelijst Opslaan en uitvoeren in de rechterbovenhoek.

  10. De trigger voor continue integratie is standaard ingeschakeld voor uw YAML-pijplijn. Als u deze instellingen wilt bewerken, selecteert u uw pijplijn en selecteert u Bewerken in de rechterbovenhoek. Selecteer Meer acties naast de knop Uitvoeren in de rechterbovenhoek en ga naar Triggers. Continue integratie wordt weergegeven als ingeschakeld onder de naam van uw pijplijn. Als u de details van de trigger wilt zien, schakelt u de YAML-trigger voor continue integratie overschrijven vanuit dit vak.

Schermopname die laat zien hoe u de triggerinstellingen van uw pijplijn controleert in het menu Triggers onder Meer acties.

Ga door naar de volgende sectie om de release-pijplijn te bouwen.

Een release-pijplijn maken voor continue implementatie

In deze sectie maakt u een release-pijplijn die is geconfigureerd om automatisch te worden uitgevoerd wanneer uw build-pijplijn artefacten verwijdert en worden implementatielogboeken in Azure Pipelines weergegeven.

Maak een nieuwe pijplijn en voeg een nieuwe fase toe:

  1. Kies + Nieuwe pijplijn op het tabblad Releases onder Pijplijnen. Als u al release-pijplijnen hebt, kiest u de knop + Nieuw en selecteert u + Nieuwe release-pijplijn.

    Een release-pijplijn toevoegen met de knop + Nieuwe pijplijn

  2. Wanneer u wordt gevraagd om een sjabloon te selecteren, kiest u ervoor om te beginnen met een lege taak.

    Begin met een lege taak voor uw release-pijplijn

  3. De nieuwe release-pijplijn initialiseert met één fase, fase 1 genoemd. Wijzig de naam van fase 1 in dev en behandel deze als een pijplijn voor continue implementatie voor uw ontwikkelomgeving. Pijplijnen voor continue implementatie hebben meestal meerdere fasen, waaronder ontwikkelen, faseren en prod. U kunt verschillende namen gebruiken en meer maken op basis van uw DevOps-praktijk. Sluit het detailvenster van de fase zodra de naam ervan is gewijzigd.

    U kunt de naam van de release-pijplijn ook wijzigen door bovenaan de tekst 'Nieuwe release-pijplijn' te selecteren.

  4. Koppel de release aan de buildartefacten die zijn gepubliceerd door de build-pijplijn. Klik op Het gebied Artefacten toevoegen .

    Klik op Toevoegen in het gebied artefacten van de interface

  5. Selecteer Build als brontype op de pagina Een artefact toevoegen. Kies het project en de build-pijplijn die u hebt gemaakt. Als u wilt, kunt u de bronalias wijzigen in iets beschrijvender. Selecteer vervolgens Toevoegen.

    Selecteer Op de pagina Een artefact toevoegen de optie Toevoegen om het artefact te maken

  6. Open de artefacttriggers en selecteer de wisselknop om de continue implementatietrigger in te schakelen. Er wordt nu een nieuwe release gemaakt telkens wanneer er een nieuwe build beschikbaar is.

    Open de artefacttriggers en wisselknop om de continue implementatietrigger in te schakelen

  7. De ontwikkelfase is vooraf geconfigureerd met één taak en nul taken. Selecteer taken in het pijplijnmenu en kies vervolgens de ontwikkelfase . Selecteer de agenttaak en wijzig de weergavenaam in QA. U kunt details over de agenttaak configureren, maar de implementatietaak is platformgevoelig, zodat u elke agentspecificatie in de gekozen agentgroep kunt gebruiken.

    De taken voor uw ontwikkelfase weergeven op het tabblad Taken

  8. Selecteer in de QA-taak het plusteken (+) om twee taken toe te voegen. Zoek en voeg Azure IoT Edge twee keer toe.

  9. Selecteer de eerste Azure IoT Edge-taak en configureer deze met de volgende waarden:

    Parameter Description
    Display name De weergavenaam wordt automatisch bijgewerkt wanneer het veld Actie wordt gewijzigd.
    Actie Selecteer Generate deployment manifest.
    .template.json-bestand Geef het pad op: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Het pad wordt gepubliceerd vanuit de build-pijplijn.
    Standaardplatform Selecteer het juiste besturingssysteem voor uw modules op basis van uw beoogde IoT Edge-apparaat.
    Uitvoerpad Plaats het pad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Dit pad is het uiteindelijke manifestbestand voor de IoT Edge-implementatie.

    Deze configuraties helpen de URL's van de module-installatiekopieën in het deployment.template.json bestand te vervangen. Het distributiemanifest Genereren helpt ook bij het vervangen van de variabelen door de exacte waarde die u in het deployment.template.json bestand hebt gedefinieerd. In Visual Studio/Visual Studio Code geeft u de werkelijke waarde in een .env bestand op. In Azure Pipelines stelt u de waarde in op het tabblad Release Pipeline Variables . Ga naar het tabblad Variabelen en configureer de naam en waarde als volgt:

    • ACR_ADDRESS: de azure Container Registry-aanmeldingsserverwaarde. U vindt de aanmeldingsserver op de overzichtspagina van het containerregister in de Azure-portal.
    • ACR_PASSWORD: uw Azure Container Registry-wachtwoord.
    • ACR_USER: uw Azure Container Registry-gebruikersnaam.

    Als u andere variabelen in uw project hebt, kunt u de naam en waarde op dit tabblad opgeven. Het distributiemanifest Genereren kan alleen de variabelen herkennen die in ${VARIABLE} smaak zijn. Zorg ervoor dat u deze smaak in uw *.template.json bestanden gebruikt.

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

    Configureer de variabelen voor uw release-pijplijn op het tabblad Variabelen

  10. Selecteer de tweede Azure IoT Edge-taak en configureer deze met de volgende waarden:

    Parameter Description
    Display name De weergavenaam wordt automatisch bijgewerkt wanneer het veld Actie wordt gewijzigd.
    Actie Selecteer Deploy to IoT Edge devices.
    Implementatiebestand Plaats het pad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Dit pad is het manifestbestand voor de IoT Edge-implementatie.
    Azure-abonnement Selecteer het abonnement dat uw IoT Hub bevat.
    Naam van de IoT Hub Selecteer uw IoT-hub.
    Eén/meerdere apparaten kiezen Kies of u de release-pijplijn wilt implementeren op een of meerdere apparaten. Als u implementeert op één apparaat, voert u de IoT Edge-apparaat-id in. Als u op meerdere apparaten implementeert, geeft u de doelvoorwaarde van het apparaat op. De doelvoorwaarde is een filter dat overeenkomt met een set IoT Edge-apparaten in IoT Hub. Als u apparaattags als voorwaarde wilt gebruiken, moet u de bijbehorende apparaattags bijwerken met IoT Hub-apparaatdubbel. Werk de ioT Edge-implementatie-id en de prioriteit van de IoT Edge-implementatie bij in de geavanceerde instellingen. Zie Automatische implementaties van IoT Edge begrijpen voor meer informatie over het maken van een implementatie voor meerdere apparaten.
    Apparaat-id of doelvoorwaarde Geef, afhankelijk van de vorige selectie, een apparaat-id of doelvoorwaarde op die op meerdere apparaten moet worden geïmplementeerd.
    Geavanceerd Geef voor de IoT Edge-implementatie-id op $(System.TeamProject)-$(Release.EnvironmentName). Deze variabele wijst het project en de releasenaam toe aan uw IoT Edge-implementatie-id.

    Als uw taak betrekking heeft op het gebruik van een installatiekopieën die zich in een persoonlijk Vertrouwd Docker-register bevinden dat niet zichtbaar is voor de openbare cloud, kunt u de omgevingsvariabele SKIP_MODULE_IMAGE_VALIDATION instellen om de validatie van installatiekopieën over te true slaan.

    Azure IoT Edge-taken toevoegen voor uw ontwikkelfase

  11. Selecteer Opslaan om uw wijzigingen op te slaan in de nieuwe release-pijplijn. Ga terug naar de pijplijnweergave door het tabblad Pijplijn te selecteren in het menu.

IoT Edge CI/CD verifiëren met de build- en release-pijplijnen

Als u een buildtaak wilt activeren, kunt u een doorvoering naar de broncodeopslagplaats pushen of handmatig activeren. In deze sectie activeert u handmatig de CI/CD-pijplijn om te testen of deze werkt. Controleer vervolgens of de implementatie is geslaagd.

  1. Selecteer Pijplijnen in het linkerdeelvenstermenu en open de build-pijplijn die u aan het begin van dit artikel hebt gemaakt.

  2. U kunt een buildtaak in uw build-pijplijn activeren door de knop Pijplijn uitvoeren in de rechterbovenhoek te selecteren.

    Uw build-pijplijn handmatig activeren met behulp van de knop Pijplijn uitvoeren

  3. Controleer de instellingen van de pijplijn uitvoeren . Selecteer vervolgens Uitvoeren.

    Opties voor run-pijplijn opgeven en Uitvoeren selecteren

  4. Selecteer Agenttaak 1 om de voortgang van de uitvoering te bekijken. U kunt de logboeken van de uitvoer van de taak bekijken door de taak te selecteren.

    De logboekuitvoer van de taak controleren

  5. Als de build-pijplijn is voltooid, wordt er een release naar de ontwikkelfase geactiveerd. Met de geslaagde dev-release wordt een IoT Edge-implementatie gemaakt om IoT Edge-apparaten te targeten.

    Release naar dev

  6. Klik op ontwikkelfase om releaselogboeken weer te geven.

    Release-logboeken

  7. Als uw pijplijn mislukt, kijkt u eerst naar de logboeken. U kunt logboeken bekijken door naar het overzicht van de pijplijnuitvoering te navigeren en de taak en taak te selecteren. Als een bepaalde taak mislukt, controleert u de logboeken voor die taak. Zie Logboeken controleren om pijplijnproblemen vast te stellen voor gedetailleerde instructies voor het configureren en gebruiken van logboeken.

Volgende stappen