Continue integratie en continue implementatie op Azure IoT Edge apparaten
Van toepassing op:
IoT Edge 1,1
IOT Edge 1,2
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 gedemonstreerd hoe u Azure Pipelines kunt gebruiken voor het bouwen, testen en implementeren van Azure IoT Edge modules met behulp van YAML. U kunt ook de klassieke editor gebruiken.

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 wordt toegevoegd, implementeert een van de volgende vier acties:
| Actie | Beschrijving |
|---|---|
| Module-afbeeldingen bouwen | Neemt uw IoT Edge oplossingscode en bouwt de containerafbeeldingen. |
| Module-afbeeldingen pushen | Hiermee pusht u module-afbeeldingen naar het containerregister dat u hebt opgegeven. |
| Implementatiemanifest genereren | Neemt een deployment.template.jsbestand en de variabelen en genereert vervolgens het uiteindelijke IoT Edge manifestbestand van de implementatie. |
| Implementeren naar IoT Edge-apparaten | Maakt IoT Edge implementaties op een of meer IoT Edge apparaten. |
Tenzij anders aangegeven, verkennen de procedures in dit artikel niet alle functionaliteit die beschikbaar is via taakparameters. Zie de volgende resources voor meer informatie:
Vereisten
Een Opslagplaats voor Azure-opslagplaatsen. Als u nog geen git-repo hebt, kunt u een nieuwe Git-repo maken in uw project. Voor dit artikel hebben we een opslagplaats met de naam IoTEdgeRepo gemaakt.
Een IoT Edge oplossing die is vastgelegd en naar uw opslagplaats wordt pushen. Als u een nieuwe voorbeeldoplossing wilt maken om dit artikel te testen, volgt u de stappen in Modules ontwikkelen en fouten opsporen in Visual Studio Code of C#-modulesontwikkelen en fouten opsporen in Visual Studio . 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, te pushen, te implementeren of fouten op te sporen voordat u doorgaat. U stelt deze processen in Azure Pipelines in.
Kent u het pad naar deployment.template.jsbestand in uw oplossing, dat in verschillende stappen wordt gebruikt. Als u niet bekend bent met de rol van de implementatiesjabloon, zie Learn how to deploy modules and establish routes (Meer informatie over het implementeren van modules en het maken 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 map van de opslagplaats te maken. U kunt de nieuwe bestanden daar eenvoudig door commiten en pushen.
Een containerregister waar u module-afbeeldingen kunt pushen. U kunt Azure Container Registry register van derden gebruiken.
Een actieve Azure IoT-hub met ten minste twee IoT Edge voor het testen van de afzonderlijke test- en productie-implementatiefasen. U kunt de quickstart-artikelen volgen om een IoT Edge te maken in Linux of Windows
Zie Uw code delen met Visual Studio en Azure-Visual Studio voor meer informatie over het gebruik van Azure-Visual Studio
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 voorbeeldoplossing IoT Edge en buildlogboeken publiceert.
Meld u aan bij uw Azure DevOps-organisatie ( ) en open het project dat uw
https://dev.azure.com/{your organization}opslagplaats IoT Edge oplossing bevat.
Selecteer pijplijnen in het menu van het linkerdeelvenster van uw project. Selecteer Pijplijn maken in het midden van de pagina. Als u al build-pijplijnen hebt, selecteert u rechtsboven de knop Nieuwe pijplijn.

Selecteer op de pagina Waar is uw code? de optie Azure Repos Git
YAML. Zie de klassieke editorhandleiding als u de klassieke editor wilt gebruiken om de build-pijplijnen van uw project te maken.Selecteer de opslagplaats voor wie u een pijplijn maakt.

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

Op de pagina Uw pijplijn-YAML controleren kunt u de standaardnaam selecteren om de naam van het configuratiebestand van uw
azure-pipelines.ymlpijplijn te wijzigen.Selecteer Assistent tonen om het palet Taken te openen.

Als u een taak wilt toevoegen, plaatst u de cursor aan het einde van de YAML of waar u de instructies voor de taak wilt toevoegen. Zoek en selecteer Azure IoT Edge. Vul de parameters van de taak als volgt in. Selecteer vervolgens Toevoegen.
Parameter Beschrijving Actie Selecteer Build module images. .template.jsin het bestand Geef het pad op naar deployment.template.jsbestand in de opslagplaats die uw IoT Edge oplossing bevat. Standaardplatform Selecteer het juiste besturingssysteem voor uw modules op basis van uw IoT Edge apparaat. Zie voor meer informatie over deze taak en de parameters Azure IoT Edge taak.

Tip
Nadat elke taak is toegevoegd, markeert de editor automatisch de toegevoegde regels. Om onbedoeld overschrijven te voorkomen, deselecteert u de regels en geeft u een nieuwe ruimte op voor uw volgende taak voordat u extra taken toevoegt.
Herhaal dit proces om nog drie taken toe te voegen met de volgende parameters:
Taak: Azure IoT Edge
Parameter Beschrijving Actie Selecteer Push-module-afbeeldingen. Type containerregister 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.jsin het bestand Geef het pad op naar deployment.template.jsbestand in de opslagplaats die uw IoT Edge oplossing bevat. Standaardplatform Selecteer het juiste besturingssysteem voor uw modules op basis van uw IoT Edge apparaat. Zie voor meer informatie over deze taak en de parameters Azure IoT Edge taak.
Taak: Bestanden kopiëren
Parameter Beschrijving Bronmap De bronmap waar u van wilt kopiëren. Leeg is de hoofdmap van de repo. Gebruik variabelen als bestanden zich niet in de repo. Bijvoorbeeld: $(agent.builddirectory).Inhoud Voeg twee regels toe: deployment.template.jsonen**/module.json.Doelmap Geef de variabele $(Build.ArtifactStagingDirectory)op. Zie Variabelen bouwen voor meer informatie over de beschrijving.Zie Copy files task (Bestandstaak kopiëren) voor meer informatie over deze taak en de parameters ervan.
Taak: Buildartefacten publiceren
Parameter Beschrijving Te publiceren pad Geef de variabele $(Build.ArtifactStagingDirectory)op. Zie Variabelen bouwen voor meer informatie over de beschrijving.Naam van het artefact Geef de standaardnaam op: dropPublicatielocatie voor artefacten Gebruik de standaardlocatie: Azure PipelinesZie Taak buildartefacten publiceren voor meer informatie over deze taak en deparameters ervan.
Selecteer Opslaan in de vervolgkeuzekeuze lijst Opslaan en uitvoeren in de rechterbovenboven.
De trigger voor continue integratie is standaard ingeschakeld voor uw YAML-pijplijn. Als u deze instellingen wilt bewerken, selecteert u uw pijplijn en klikt u rechtsboven op Bewerken. Selecteer Meer acties naast de knop Uitvoeren rechtsboven en ga naar Triggers. Continue integratie wordt als ingeschakeld onder de naam van uw pijplijn. Als u de details van de trigger wilt zien, controleert u het vakJep de YAML-trigger voor continue integratie overschrijven.

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-pijp lijn artefacten overneemt en de implementatie Logboeken in azure-pijp lijnen worden weer gegeven.
Maak een nieuwe pijp lijn en voeg een nieuwe fase toe:
Kies op het tabblad releases onder pijp lijnen de optie + nieuwe pijp lijn. Als u al release pijplijnen hebt, kiest u de knop + Nieuw en selecteert u + nieuwe release pijplijn.

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

Uw nieuwe release pijplijn wordt geïnitialiseerd met één fase, de naam fase 1. Wijzig de naam fase 1 in dev en behandel dit als een continue implementatie pijplijn voor uw ontwikkel omgeving. Doorgaans hebben doorlopende implementatie pijplijnen meerdere fasen, waaronder ontwikkeling, fase ring en productie. U kunt verschillende namen gebruiken en meer maken op basis van uw DevOps-prak tijken. Sluit het venster met fase details zodra de naam ervan is gewijzigd.
U kunt ook de naam van de release pijplijn wijzigen door de tekst ' nieuwe release pijplijn ' bovenaan te selecteren.
Koppel de release aan de constructie-artefacten die worden gepubliceerd door de build-pijp lijn. Klik op toevoegen in het gebied artefacten.

Selecteer op de pagina een artefact toevoegen de optie Build als bron type. Kies het project en de build-pijp lijn die u hebt gemaakt. Als u wilt, kunt u de bron alias wijzigen in een duidelijkere beschrijving. Selecteer vervolgens toevoegen.

Open de artefact triggers en selecteer de schakel optie om de continue implementatie trigger in te scha kelen. Er wordt nu een nieuwe release gemaakt wanneer een nieuwe build beschikbaar is.

De ontwikkelings fase is vooraf geconfigureerd met één taak en nul taken. Selecteer in het menu pijp lijn taken en kies vervolgens de ontwikkelings fase. Selecteer de Agent taak en wijzig de weergave naam in QA. U kunt details over de agent taak configureren, maar de implementatie taak is ingevoelig voor een platform, zodat u elke agent specificatie in de gekozen agent groep kunt gebruiken.

Selecteer op de QA-taak het plus teken ( + ) om twee taken toe te voegen. Zoek en Voeg twee keer Azure IOT Edge toe.
Selecteer de eerste Azure IOT Edge taak en configureer deze met de volgende waarden:
Parameter Beschrijving Weergavenaam De weergave naam wordt automatisch bijgewerkt wanneer het actie veld wordt gewijzigd. Bewerking Selecteer Generate deployment manifest..template.jsvoor bestand Geef het pad op: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json. Het pad wordt gepubliceerd vanuit een build-pijp lijn.Standaard platform Selecteer het juiste besturings systeem voor uw modules op basis van uw doel-IoT Edge apparaat. Uitvoerpad Plaats het pad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Dit pad is het uiteindelijke manifest bestand voor de implementatie van IoT Edge.Deze configuraties helpt bij het vervangen van de installatie kopie-Url's van de module in het
deployment.template.jsonbestand. Het genereren van het implementatie manifest helpt ook de variabelen te vervangen door de exacte waarde die u in het bestand hebt gedefinieerddeployment.template.json. In VS/VS-code geeft u de daad werkelijke waarde op in een.envbestand. In azure-pijp lijnen stelt u de waarde in op het tabblad release pijplijn variabelen . Ga naar het tabblad variabelen en configureer de naam en waarde als volgt:- ACR_ADDRESS: de waarde van de Azure container Registry- aanmeldings server . U vindt de aanmeldingsserver op de overzichtspagina van het containerregister in de Azure-portal.
- ACR_PASSWORD: uw Azure container Registry wacht woord.
- ACR_USER: de gebruikers naam van uw Azure container Registry.
Als u andere variabelen in uw project hebt, kunt u de naam en waarde op dit tabblad opgeven. Het manifest voor het genereren van implementaties kan alleen de variabelen herkennen die in de
${VARIABLE}smaak zijn. Zorg ervoor dat u deze versie in uw*.template.jsonbestanden gebruikt."registryCredentials": { "<ACR name>": { // Your Azure Container Registry **Registry name** value "username": "${ACR_USER}", "password": "${ACR_PASSWORD}", "address": "${ACR_ADDRESS}" } }
Selecteer de tweede Azure IOT Edge taak en configureer deze met de volgende waarden:
Parameter Beschrijving Weergavenaam De weergave naam wordt automatisch bijgewerkt wanneer het actie veld wordt gewijzigd. Bewerking Selecteer Deploy to IoT Edge devices.Implementatie bestand Plaats het pad $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json. Dit pad is het bestand IoT Edge implementatie manifest bestand.Azure-abonnement Selecteer het abonnement dat uw IoT Hub bevat. IoT Hub naam Selecteer uw IoT-hub. Kies één of meerdere apparaten Kies of u de release pijplijn wilt implementeren op een of meer apparaten. Als u op één apparaat implementeert, voert u de IOT edge apparaat-id in. Als u implementeert op meerdere apparaten, geeft u de voor waarde voor het apparaat doel op. De doel voorwaarde is een filter dat overeenkomt met een set IoT Edge apparaten in IoT Hub. Als u Device Tags als voor waarde wilt gebruiken, moet u de labels van de bijbehorende apparaten bijwerken met IoT Hub apparaat twee. Werk de IOT Edge implementatie-id en IOT Edge implementatie prioriteit bij in de geavanceerde instellingen. Zie inzicht IOT Edge automatische implementatiesvoor meer informatie over het maken van een implementatie voor meerdere apparaten. Apparaat-ID of doel voorwaarde Geef, afhankelijk van de vorige selectie, een apparaat-ID of doel voorwaarde op om op meerdere apparaten te implementeren. Geavanceerd Geef voor de IoT Edge implementatie-ID op $(System.TeamProject)-$(Release.EnvironmentName). Met deze variabele wordt de naam van het project en de release toegewezen aan uw IoT Edge-implementatie-ID.Als uw taak betrekking heeft op het gebruik van een installatie kopie die zich in een privé-docker-vertrouwd REGI ster bevindt dat niet zichtbaar is voor de open bare Cloud, kunt u de omgevings variabele SKIP_MODULE_IMAGE_VALIDATION instellen op
trueom installatie kopieën over te slaan.
Selecteer Opslaan om uw wijzigingen op te slaan in de nieuwe release pijplijn. Ga terug naar de pijplijn weergave door het tabblad pijp lijn te selecteren in het menu.
IoT Edge CI/CD controleren met pijp lijnen voor Build en release
Als u een build-taak wilt activeren, kunt u een door voeren naar de opslag plaats van de bron code pushen of hand matig activeren. In deze sectie kunt u hand matig de CI/CD-pijp lijn activeren om te testen dat deze werkt. Controleer vervolgens of de implementatie slaagt.
Selecteer in het menu van het linkerdeel venster pijp lijnen en open de build-pijp lijn die u aan het begin van dit artikel hebt gemaakt.
U kunt een build-taak in uw build-pijp lijn activeren door de knop pijp lijn uitvoeren in de rechter bovenhoek te selecteren.

Controleer de instellingen voor het uitvoeren van de pijp lijn . Selecteer vervolgens uitvoeren.

Selecteer Agent taak 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.

Als de build-pijp lijn met succes is voltooid, wordt een release-naar- ontwikkelings fase geactiveerd. Met de geslaagde dev -versie wordt IOT Edge-implementatie gemaakt voor doel apparaten van IOT Edge.

Klik op ontwikkel fase om release logboeken te bekijken.

Als uw pijp lijn mislukt, gaat u naar de logboeken. U kunt logboeken weer geven door te navigeren naar het overzicht van de pijplijn uitvoering en de taak en taak te selecteren. Als een bepaalde taak mislukt, controleert u de logboeken voor die taak. Zie Logboeken bekijken voor het vaststellen van pijp lijn problemenvoor gedetailleerde instructies voor het configureren en gebruiken van Logboeken.
Volgende stappen
- IoT Edge DevOps-voorbeeld in Azure DevOps Starter voor IoT Edge
- Inzicht in IoT Edge implementatie in Inzicht in IoT Edge implementaties voor individuele apparaten of op schaal
- Doorloop de stappen voor het maken, bijwerken of verwijderen van een implementatie in Implementatie en IoT Edge modules op schaal.