Använda DevTest Labs i Build and Release-pipelines i Azure-pipelines

Den här artikeln innehåller information om hur DevTest Labs kan användas i Azure-pipelines bygg- och versionspipelines.

Övergripande flöde

Det grundläggande flödet innebär att ha en byggpipeline som utför följande uppgifter:

  1. Skapa programkoden.
  2. Skapa basmiljön i DevTest Labs.
  3. Uppdatera miljön med anpassad information.
  4. Distribuera programmet till DevTest Labs-miljön
  5. Testa koden.

När bygget har slutförts använder versionspipelinen byggartefakterna för att distribuera mellanlagring eller produktion.

En av de nödvändiga förutsättningarna är att all information som behövs för att återskapa det testade ekosystemet finns tillgänglig i byggartefakterna, inklusive konfigurationen av Azure-resurserna. Eftersom Azure resurser medför en kostnad när de används vill företag antingen kontrollera eller spåra användningen av dessa resurser. I vissa situationer kan Azure Resource Manager mallar som används för att skapa och konfigurera resurserna hanteras av en annan avdelning som IT. Och dessa mallar kan lagras på en annan lagringsplats. Det leder till en intressant situation när du skapar och testar ett bygge. Både koden och konfigurationen måste lagras i byggartefakterna för att återskapa systemet i produktion.

Med DevTest Labs under bygg- och testfasen kan du lägga till Azure Resource Manager mallar och stödfiler till byggkällorna. Under versionsfasen distribuerar du den exakta konfiguration som du använde i test till produktion. Uppgiften Skapa Azure DevTest Labs miljö med rätt konfiguration sparar Resource Manager mallar i byggartefakterna. I det här exemplet använder du koden från Självstudie: Skapa en .NET Core- och SQL Database-webbapp i Azure App Service för att distribuera och testa webbappen i Azure.

Diagram som visar övergripande flöde.

Konfigurera Azure-resurser

Du måste skapa ett par objekt i förväg:

  • Två lagringsplatser. Den första med koden från självstudien och en Resource Manager mall med ytterligare två virtuella datorer. Den andra innehåller basmallen Azure Resource Manager (befintlig konfiguration).
  • En resursgrupp för distribution av produktionskoden och konfigurationen.
  • Ett labb med en anslutning till konfigurationslagringsplatsen för bygg-pipelinen. Checka in Resource Manager-mallen i konfigurationsarkivet som azuredeploy.json tillsammans med metadata.json. Med det här namnet kan DevTest Labs identifiera och distribuera mallen.

Bygg-pipelinen skapar en DevTest Labs-miljö och distribuerar koden för testning.

Konfigurera en byggpipeline

I Azure-pipelines skapar du en versionspipeline med hjälp av koden från Självstudie: Skapa en .NET Core- och SQL Database-webbapp i Azure App Service. Använd mallen ASP.NET Core som fyller i den uppgift som krävs för att skapa, testa och publicera koden.

Skärmbild som visar hur du väljer mallen ASP.NET.

Lägg till tre fler uppgifter för att skapa miljön i DevTest Labs och distribuera till den.

Skärmbild som visar en pipeline med tre uppgifter.

Skapa miljöuppgift

I uppgiften Azure DevTest Labs Skapa miljö använder du listrutorna för att välja följande värden:

  • Azure prenumeration
  • Namnet på labbet
  • Namnet på lagringsplatsen
  • Namnet på mallen (som visar mappen där miljön lagras).

Vi rekommenderar att du använder listrutor på sidan i stället för att ange informationen manuellt. Om du anger uppgifterna manuellt ska du ange fullständiga Azure-resurs-ID:n. Uppgiften visar de egna namnen i stället för resurs-ID:t.

Miljönamnet är det namn som visas i DevTest Labs. Det bör vara ett unikt namn för varje version. Exempel: TestEnv$(Build.BuildId).

Du kan ange antingen parameterfil eller parametrar för att skicka information till Resource Manager-mallen.

Välj alternativet Skapa utdatavariabler baserat på utdata för miljömallen och ange ett referensnamn. I det här exemplet anger du BaseEnv som referensnamn. Du använder den här BaseEnv när du konfigurerar nästa uppgift.

Skärmbild som visar uppgiften Skapa Azure DevTest Labs miljö.

Fylla i miljöuppgift

Den andra uppgiften (Azure DevTest Labs-uppgiften Fyll i miljö) innebär att uppdatera den befintliga DevTest Labs-miljön. Aktiviteten Skapa miljö matar ut BaseEnv.environmentResourceId som används för att konfigurera miljönamnet för den här uppgiften. Mallen Resource Manager för det här exemplet har två parametrar – adminUserName och adminPassword.

Skärmbild som visar uppgiften Fyll i Azure DevTest Labs miljö.

Distributionsuppgift för App Service

Den tredje uppgiften är uppgiften Azure App Service Deploy. Apptypen är inställd på Webbapp och App Service-namnet är inställt på $(WebSite).

Skärmbild som visar aktiviteten Distribuera apptjänst.

Konfigurera releasepipeline

Du skapar en versionspipeline med två uppgifter: Azure Distribution: Skapa eller uppdatera resursgrupp och Distribuera Azure App Service.

För den första aktiviteten anger du namnet och platsen för resursgruppen. Mallens plats är en länkad artefakt. Om den Resource Manager mallen innehåller länkade mallar måste du implementera en anpassad resursgruppsdistribution. Mallen finns i den publicerade leveransartefakten. Åsidosätt mallparametrar för mallen Resource Manager. Du kan lämna återstående inställningar med standardvärden.

För den andra uppgiften Distribuera Azure App Service anger du den Azure prenumerationen, väljer Webbapp för Apptyp och $(WebSite) som App Service-namn. Du kan lämna återstående inställningar med standardvärden.

Testkörning

Nu när båda pipelinearna är konfigurerade kan du manuellt köa ett bygge och se hur det fungerar. Nästa steg är att ange lämplig utlösare för bygget och ansluta bygget till versionspipelinen.

Nästa steg

Se följande artiklar: