Kontinuerlig integrering och kontinuerlig distribution till Azure IoT Edge enheter

Gäller för:  Ja-ikonen IoT Edge 1,1  Ja-ikonen IoT Edge 1,2

Du kan enkelt använda DevOps med Azure IoT Edge program med de inbyggda Azure IoT Edge i Azure Pipelines. Den här artikeln visar hur du kan använda Azure Pipelines för att skapa, testa och distribuera Azure IoT Edge-moduler med hjälp av YAML. Du kan också använda den klassiska redigeraren.

Diagram – CI- och CD-grenar för utveckling och produktion

I den här artikeln får du lära dig hur du använder de inbyggda Azure IoT Edge för Azure Pipelines för att skapa bygg- och lanseringspipelines för din IoT Edge lösning. Varje Azure IoT Edge som läggs till i din pipeline implementerar någon av följande fyra åtgärder:

Åtgärd Beskrivning
Skapa modulavbildningar Tar din IoT Edge-lösningskod och skapar containeravbildningarna.
Push-modulavbildningar Push-modulens avbildningar till det containerregister som du angav.
Generera distributionsmanifest Tar en deployment.template.jspå filen och variablerna och genererar sedan den slutliga IoT Edge distributionsmanifestfilen.
Distribuera till IoT Edge-enheter Skapar IoT Edge distributioner till en eller flera IoT Edge enheter.

Om inget annat anges utforskar inte procedurerna i den här artikeln alla funktioner som är tillgängliga via aktivitetsparametrar. Mer information finns i följande resurser:

Förutsättningar

  • En Lagringsplats för Azure-lagringsplatsen. Om du inte har någon kan du skapa en ny Git-lagringsplatsen i projektet. I den här artikeln skapade vi en lagringsplats med namnet IoTEdgeRepo.

  • En IoT Edge lösning som har utförts och push-push-skickas till din lagringsplats. Om du vill skapa en ny exempellösning för att testa den här artikeln följer du stegen i Utveckla och felsöka moduler i Visual Studio Code eller Utveckla och felsöka C#-moduler i Visual Studio. I den här artikeln har vi skapat en lösning i vår lagringsplats med namnet IoTEdgeSolution, som innehåller koden för en modul med namnet filtermodule.

    I den här artikeln behöver du bara lösningsmappen som skapats av IoT Edge mallar i antingen Visual Studio Code eller Visual Studio. Du behöver inte skapa, skicka, distribuera eller felsöka den här koden innan du fortsätter. Du ska konfigurera dessa processer i Azure Pipelines.

    Känna till sökvägen tilldeployment.template.jspå filen i din lösning, som används i flera steg. Om du inte är bekant med distributionsmallens roll kan du läsa Mer information om hur du distribuerar moduler och etablerar vägar.

    Tips

    Om du skapar en ny lösning klonar du lagringsplatsen lokalt först. När du sedan skapar lösningen kan du välja att skapa den direkt i lagringsplatsmappen. Du kan enkelt genomföra och push-överföra de nya filerna därifrån.

  • Ett containerregister där du kan push-skicka modulavbildningar. Du kan använda Azure Container Registry eller ett register från tredje part.

  • En aktiv Azure IoT-hubb med minst två IoT Edge enheter för att testa de separata test- och produktionsdistributionsstegen. Du kan följa snabbstartsartiklarna för att skapa en IoT Edge på Linux eller Windows

Mer information om hur du använder Azure Repos finns i Dela din kod med Visual Studio och Azure Repos

Skapa en bygg-pipeline för kontinuerlig integrering

I det här avsnittet skapar du en ny bygg-pipeline. Du konfigurerar pipelinen så att den körs automatiskt när du checkar in ändringar i IoT Edge och publicerar byggloggar.

  1. Logga in på Din Azure DevOps-organisation ( https://dev.azure.com/{your organization} ) och öppna projektet som innehåller din IoT Edge-lösningslagringsplats.

    Öppna ditt DevOps-projekt

  2. Välj Pipelines på menyn till vänster i projektet. Välj Skapa pipeline i mitten av sidan. Eller, om du redan har bygg-pipelines, väljer du knappen Ny pipeline längst upp till höger.

    Skapa en ny bygg-pipeline med knappen Ny pipeline

  3. På sidan Var finns din kod? väljer du Azure Repos YAML Git. Om du vill använda den klassiska redigeraren för att skapa projektets bygg-pipelines kan du gå till den klassiska redigeringsguiden.

  4. Välj den lagringsplats som du skapar en pipeline för.

    Välj lagringsplatsen för din bygg-pipeline

  5. På sidan Konfigurera din pipeline väljer du Startpipeline. Om du har en BEFINTLIG YAML-fil för Azure Pipelines som du vill använda för att skapa den här pipelinen kan du välja YAML-filen för befintliga Azure Pipelines och ange grenen och sökvägen i lagringsplatsen till filen.

    Välj Startpipeline eller Befintlig YAML-fil för Azure Pipelines för att påbörja bygg-pipelinen

  6. På sidan Granska din PIPELINE-YAML kan du välja standardnamnet för azure-pipelines.yml att byta namn på pipelinens konfigurationsfil.

    Välj Visa assistenten för att öppna paletten Uppgifter.

    Välj Visa assistent för att öppna paletten Uppgifter

  7. Om du vill lägga till en uppgift placerar du markören i slutet av YAML-koden eller var du vill att anvisningarna för uppgiften ska läggas till. Sök efter och välj Azure IoT Edge. Fyll i aktivitetens parametrar på följande sätt. Välj sedan Lägg till.

    Parameter Beskrivning
    Åtgärd Välj Skapa modulavbildningar.
    .template.jspå fil Ange sökvägen till filendeployment.template.jspå den lagringsplats som innehåller din IoT Edge lösning.
    Standardplattform Välj lämpligt operativsystem för dina moduler baserat på din målenhet IoT Edge mål.

    Mer information om den här aktiviteten och dess parametrar finns i Azure IoT Edge aktivitet.

    Använda aktivitetspaletten för att lägga till uppgifter i din pipeline

    Tips

    När varje uppgift har lagts till markerar redigeringsredigeraren automatiskt de tillagda raderna. Om du vill förhindra oavsiktlig överskrivning avmarkerar du raderna och anger ett nytt utrymme för nästa uppgift innan du lägger till ytterligare uppgifter.

  8. Upprepa den här processen för att lägga till ytterligare tre uppgifter med följande parametrar:

    • Uppgift: Azure IoT Edge

      Parameter Beskrivning
      Åtgärd Välj Push-modulavbildningar.
      Containerregistertyp Använd standardtypen: Azure Container Registry.
      Azure-prenumeration Välj din prenumeration.
      Azure Container Registry Välj det register som du vill använda för pipelinen.
      .template.jspå fil Ange sökvägen till filendeployment.template.jspå den lagringsplats som innehåller din IoT Edge lösning.
      Standardplattform Välj lämpligt operativsystem för dina moduler baserat på din målenhet IoT Edge mål.

      Mer information om den här aktiviteten och dess parametrar finns i Azure IoT Edge aktivitet.

    • Uppgift: Kopiera filer

      Parameter Beskrivning
      Källmapp Källmappen att kopiera från. Tom är lagringsplatsens rot. Använd variabler om filerna inte finns på lagringsplatsen. Exempel: $(agent.builddirectory).
      Innehåll Lägg till två rader: deployment.template.json och **/module.json .
      Målmapp Ange variabeln $(Build.ArtifactStagingDirectory) . Mer information om beskrivningen finns i Skapa variabler.

      Mer information om den här aktiviteten och dess parametrar finns i Kopiera filer-uppgiften.

    • Uppgift: Publicera byggartefakter

      Parameter Beskrivning
      Sökväg för publicering Ange variabeln $(Build.ArtifactStagingDirectory) . Mer information om beskrivningen finns i Skapa variabler.
      Artefaktnamn Ange standardnamnet: drop
      Plats för artefakt-publicering Använd standardplatsen: Azure Pipelines

      Mer information om den här uppgiften och dess parametrar finns i Publicera build artifacts-uppgift.

  9. Välj Spara i listrutan Spara och kör längst upp till höger.

  10. Utlösaren för kontinuerlig integrering är aktiverad som standard för din YAML-pipeline. Om du vill redigera de här inställningarna väljer du din pipeline och klickar på Redigera längst upp till höger. Välj Fler åtgärder bredvid knappen Kör längst upp till höger och gå till Utlösare. Kontinuerlig integrering visas som aktiverat under pipelinens namn. Om du vill se information om utlösaren markerar du kryssrutan Åsidosätt utlösaren för kontinuerlig YAML-integrering härifrån.

    Information om hur du granskar utlösarinställningarna för din pipeline finns i Utlösare under Fler åtgärder

Fortsätt till nästa avsnitt för att skapa lanseringspipelinen.

Skapa en versions pipeline för kontinuerlig distribution

I det här avsnittet skapar du en versions pipeline som är konfigurerad för att köras automatiskt när din Bygg pipeline tappar ut artefakter och det visar distributions loggar i Azure-pipelines.

Skapa en ny pipeline och Lägg till ett nytt steg:

  1. På fliken utgåvor under pipelines väljer du + ny pipeline. Eller, om du redan har versions pipeliner, väljer du knappen + ny och väljer + ny versions pipeline.

    Lägg till en versions pipeline med knappen + Ny pipeline

  2. När du uppmanas att välja en mall väljer du att starta med ett tomt jobb.

    Börja med ett tomt jobb för din versions pipeline

  3. Din nya versions pipeline initieras med en fas, som kallas steg 1. Byt namn på steg 1 till dev och behandla den som en pipeline för kontinuerlig distribution för din utvecklings miljö. Vanligt vis har kontinuerliga distributions pipeliner flera steg, inklusive utveckling, mellanlagring och Prod. Du kan använda olika namn och skapa mer baserat på din DevOps-praxis. Stäng fönstret steg information när det har bytt namn.

    Du kan också byta namn på din versions pipeline genom att välja texten "ny version pipelining" längst upp.

  4. Länka versionen till de versions artefakter som publiceras av bygg pipelinen. Klicka på Lägg till i artefakter.

    Klicka på Lägg till i avsnittet artefakter i gränssnittet

  5. sidan Lägg till en artefakt väljer du skapa som Källtyp. Välj det projekt och den build-pipeline som du skapade. Om du vill kan du ändra käll Ali Aset till något mer beskrivande. Välj sedan Lägg till.

    På sidan Lägg till en artefakt väljer du Lägg till för att skapa artefakten

  6. Öppna artefakt utlösare och välj växla för att aktivera den kontinuerliga distributions utlösaren. Nu skapas en ny version varje gång en ny version är tillgänglig.

    Öppna utlösaren för att aktivera kontinuerlig distribution genom att öppna artefakt utlösare och växla

  7. Dev -fasen är förkonfigurerad med ett jobb och noll uppgifter. Från pipeline-menyn väljer du uppgifter och sedan dev -fasen. Välj Agent jobb och ändra dess visnings namn till frågor och svar. Du kan konfigurera information om Agent jobbet, men distributions aktiviteten är plattforms okänslig så att du kan använda vilken agent specifikation som helst i den valda poolen.

    Visa aktiviteterna för din dev-fas under fliken aktiviteter

  8. I frågor och svar-jobbet väljer du plus tecknet ( + ) för att lägga till två aktiviteter. Sök efter och Lägg till Azure IoT Edge två gånger.

  9. Välj den första Azure IoT Edge aktiviteten och konfigurera den med följande värden:

    Parameter Beskrivning
    Visningsnamn Visnings namnet uppdateras automatiskt när åtgärds fältet ändras.
    Action Välj Generate deployment manifest.
    .template.jspå fil Ange sökvägen: $(System.DefaultWorkingDirectory)/Drop/drop/deployment.template.json . Sökvägen publiceras från build-pipeline.
    Standard plattform Välj lämpligt operativ system för dina moduler baserat på din riktade IoT Edge-enhet.
    Sökväg för utdata Lägg till sökvägen $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json . Den här sökvägen är den slutliga IoT Edge distributions manifest filen.

    De här konfigurationerna ersätter modulens bild-URL: er i deployment.template.json filen. Med generera distributions manifestet kan du också ersätta variablerna med det exakta värdet som du definierade i deployment.template.json filen. I VS/VS Code anger du det faktiska värdet i en .env fil. I Azure-pipeliner ställer du in värdet på fliken släpp pipeline-variabler . Flytta till fliken variabler och konfigurera namnet och värdet enligt följande:

    • ACR_ADDRESS: ditt Azure Container Registry inloggnings Server värde. Du kan hämta inloggnings servern från sidan Översikt i behållar registret i Azure Portal.
    • ACR_PASSWORD: ditt Azure Container Registry lösen ord.
    • ACR_USER: ditt Azure Container Registry användar namn.

    Om du har andra variabler i projektet kan du ange namn och värde i den här fliken. Generera distributions manifestet kan bara identifiera variabler som är i ${VARIABLE} smak. Se till att du använder den här smaken i dina *.template.json filer.

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

    Konfigurera variablerna för din versions pipeline på fliken variabler

  10. Välj den andra Azure IoT Edge aktiviteten och konfigurera den med följande värden:

    Parameter Beskrivning
    Visningsnamn Visnings namnet uppdateras automatiskt när åtgärds fältet ändras.
    Action Välj Deploy to IoT Edge devices.
    Distributions fil Lägg till sökvägen $(System.DefaultWorkingDirectory)/Drop/drop/configs/deployment.json . Den här sökvägen är filen IoT Edge distributions manifest filen.
    Azure-prenumeration Välj den prenumeration som innehåller din IoT Hub.
    IoT Hub namn Välj din IoT-hubb.
    Välj en/flera enheter Välj om du vill att versions pipelinen ska distribueras till en eller flera enheter. Om du distribuerar till en enda enhet anger du IoT Edge enhets-ID. Om du distribuerar till flera enheter anger du enhetens mål villkor. Mål villkoret är ett filter som matchar en uppsättning IoT Edge enheter i IoT Hub. Om du vill använda enhets koder som villkor måste du uppdatera motsvarande enhets koder med IoT Hub enhets-till-enhet. Uppdatera IoT Edge distributions-ID och IoT Edge distributions prioritet i de avancerade inställningarna. Mer information om hur du skapar en distribution för flera enheter finns i förstå IoT Edge automatiska distributioner.
    Enhets-ID eller mål villkor Beroende på föregående val anger du ett enhets-ID eller mål villkor som ska distribueras till flera enheter.
    Avancerat För IoT Edge distributions-ID anger du $(System.TeamProject)-$(Release.EnvironmentName) . Den här variabeln mappar projektet och versions namnet med ditt IoT Edge-distributions-ID.

    Om din uppgift kräver att du använder en avbildning som finns i ett privat Docker-betrott register som inte är synligt för det offentliga molnet, kan du ange SKIP_MODULE_IMAGE_VALIDATION -miljövariabeln för true att hoppa över bild validering.

    Lägg till Azure IoT Edge uppgifter i dev-fasen

  11. Välj Spara för att spara ändringarna i den nya versions pipelinen. Gå tillbaka till vyn pipeline genom att välja pipeline -fliken på menyn.

Verifiera IoT Edge CI/CD med pipelinen build och release

Om du vill utlösa ett build-jobb kan du antingen skicka ett genomförande till käll kods databasen eller aktivera det manuellt. I det här avsnittet utlöser du CI/CD-pipeline manuellt för att testa att den fungerar. Kontrol lera sedan att distributionen lyckades.

  1. I menyn till vänster klickar du på pipelines och öppnar build-pipeline som du skapade i början av den här artikeln.

  2. Du kan utlösa ett build-jobb i din build-pipeline genom att välja knappen Kör pipeline överst till höger.

    Utlösa din versions pipeline manuellt med knappen Kör pipeline

  3. Granska inställningarna för att köra pipelinen . Välj sedan Kör.

    Ange alternativ för att köra pipeliner och välj Kör

  4. Välj Agent jobb 1 om du vill se körnings förloppet. Du kan granska loggarna för jobbets utdata genom att välja jobbet.

    Granska jobbets logg utdata

  5. Om build-pipeline har slutförts utlöses en version till dev -fasen. Den framgångs rik dev -versionen skapar IoT Edge distribution till mål IoT Edge enheter.

    Släpp till dev

  6. Klicka på dev Stage för att se versions loggarna.

    Lanseringsloggar

  7. Om din pipeline inte fungerar börjar du med att titta på loggarna. Du kan visa loggar genom att gå till pipeline-körningen och välja jobb och aktivitet. Om en viss aktivitet inte kan utföras, kontrol lera loggarna för aktiviteten. Detaljerade anvisningar för att konfigurera och använda loggar finns i Granska loggar för att diagnostisera problem med pipelinen.

Nästa steg