Övning – Konfigurera din Azure DevOps-miljö

Slutförd

I den här lektionen ser du till att din Azure DevOps-organisation har konfigurerats för att slutföra resten av den här modulen. Du skapar även de Azure App Service-miljöer som du ska distribuera till.

För att uppnå dessa mål gör du följande:

  • Lägg till en användare för att säkerställa att Azure DevOps kan ansluta till din Azure-prenumeration.
  • Konfigurera ett Azure DevOps-projekt för den här modulen.
  • Flytta arbetsobjektet för den här modulen till kolumnen Doing (Gör ) i Azure Boards.
  • Kontrollera att projektet har konfigurerats lokalt så att du kan skicka ändringar till pipelinen.
  • Skapa Azure App Service- och Azure Functions-appen med hjälp av Azure CLI i Azure Cloud Shell.
  • Skapa pipelinevariabler som definierar namnen på din App Service- och Azure Functions-instans.
  • Skapa en tjänstanslutning som gör det möjligt för Azure Pipelines att få säker åtkomst till din Azure-prenumeration.

Lägga till en användare i Azure DevOps

För att slutföra den här modulen behöver du en egen Azure-prenumeration. Du kan komma igång med Azure kostnadsfritt.

Även om du inte behöver en Azure-prenumeration för att fungera med Azure DevOps använder den här övningen Azure DevOps för att distribuera till Azure-resurser i din Azure-prenumeration. För att förenkla processen använder du samma Microsoft-konto för att logga in på både din Azure-prenumeration och din Azure DevOps-organisation.

Viktigt!

Om du loggar in med olika konton bör du lägga till en användare i din DevOps-organisation under det Microsoft-konto som du använder för att logga in på Azure. Mer information finns i Lägga till användare i din organisation eller ditt projekt. När du lägger till användaren väljer du åtkomstnivån Grundläggande .

Logga sedan ut från Azure DevOps och logga in med det nya användarkontot. Använd det Microsoft-konto som du använder för att logga in på din Azure-prenumeration.

Hämta Azure DevOps-projektet

Kontrollera att din Azure DevOps-organisation har konfigurerats för att slutföra resten av den här modulen. För att göra det kör du en mall som skapar ett projekt i Azure DevOps.

Modulerna i den här utbildningsvägen utgör en utveckling när du följer Tailspin-webbteamet genom deras DevOps-resa. I utbildningssyfte har varje modul ett eget Azure DevOps-projekt.

Kör mallen

  1. Kör en mall som konfigurerar din Azure DevOps-organisation:

  2. På webbplatsen Azure DevOps Demo Generator väljer du Logga in. Om du uppmanas till det godkänner du användningsvillkoren. Sidan Skapa nytt projekt visas.

  3. På sidan Skapa nytt projekt anger du ett projektnamn, till exempel Space Game – web – Azure Functions, och väljer sedan den organisation som du använder för din Azure-prenumeration för Välj organisation.

    En skärmbild av Azure DevOps Demo Generator som visar hur du skapar projektet.

  4. I nästa avsnitt väljer du Ja, jag vill förgrena den här lagringsplatsen och väljer sedan Auktorisera.

    Om ett fönster visas godkänner du åtkomst till ditt GitHub-konto.

    Viktigt!

    Du måste aktivera det här förgreningsalternativet för att mallen ska kunna ansluta till din GitHub-lagringsplats. Välj det även om du redan har förgrenat space game-webbplatsprojektet . I mallen används din befintliga förgrening.

  5. Välj Skapa projekt.

    Det tar en stund att köra mallen.

  6. När projektet har etablerats väljer du Navigera till projektet för att gå till projektet i Azure DevOps.

Viktigt!

Sidan Rensa din Azure DevOps-miljö i den här modulen innehåller viktiga steg som du måste slutföra, även om du inte slutför den här modulen. Med rensningen kan du säkerställa att du inte får slut på lediga byggminuter.

Ange projektets synlighet

Ursprungligen är din förgrening av Space Game-lagringsplatsen på GitHub inställd på offentlig medan projektet som skapats av Azure DevOps-mallen är inställt på privat. En offentlig lagringsplats på GitHub kan nås av vem som helst, medan en privat lagringsplats endast är tillgänglig för dig och de personer som du väljer att dela den med. På samma sätt ger offentliga projekt i Azure DevOps skrivskyddad åtkomst till icke-autentiserade användare, medan privata projekt kräver att användarna beviljas åtkomst och autentiseras för att få åtkomst till tjänsterna.

För närvarande är det inte nödvändigt att ändra någon av dessa inställningar i den här modulen. För dina personliga projekt måste du dock fastställa den synlighet och åtkomst som du vill bevilja andra. Om projektet till exempel är öppen källkod kan du välja att göra både din GitHub-lagringsplats och ditt Azure DevOps-projekt offentliga. Om projektet är proprietärt skulle du vanligtvis göra både din GitHub-lagringsplats och ditt Azure DevOps-projekt privata.

Senare kan följande resurser vara användbara för att avgöra vilket alternativ som är bäst för projektet:

Tilldela ett arbetsobjekt och flytta det till tillståndet Doing

Här tilldelar du ett arbetsobjekt till dig själv i Azure Boards och anger arbetsobjektets tillstånd till Doing (Gör). I praktiken skulle du och ditt team skapa arbetsobjekt i början av varje sprint eller arbetst iteration.

Den här övningen skapar en checklista som du kan arbeta från. Det ger andra teammedlemmar insyn i vad du arbetar med och hur mycket arbete som återstår. Arbetsobjektet hjälper också till att framtvinga pågående begränsningar (WIP) så att teamet inte tar på sig för mycket arbete samtidigt.

  1. Från Azure DevOps navigerar du till kategorin Boards och väljer sedan Boards (Tavlor ) på menyn.

    Azure DevOps som visar platsen för menyn Boards.

  2. Öppna API:et Refactor leaderboard som ett Azure Function-arbetsobjekt genom att välja rubriken. Tilldela det här arbetsobjektet till dig själv och välj sedan Spara och stäng.

  3. Välj nedåtpilen längst ned på kortet och välj Gör eller välj kortet och dra det till kolumnen Doing (Gör).

    Skärmbild av arbetsobjektkortet som markerar platsen för nedåtpilen.

  4. Arbetsobjektet flyttas från kolumnen Att göra till kolumnen Doing (Gör).

    Skärmbild av Azure Boards som markerar arbetsobjektkortet i kolumnen Doing (Gör).

I slutet av den här modulen flyttar du kortet till kolumnen Klar när du har slutfört uppgiften.

Skapa Azure App Service- och Azure Functions-miljöer

Här skapar du den App Service- och Azure Functions-app som krävs för att distribuera den nya versionen av webbplatsen och API:et.

I modulen Create a release pipeline with Azure Pipelines Learn (Skapa en versionspipeline med Azure Pipelines Learn) tog du upp App Service via Azure-portalen. Även om portalen är ett bra sätt att utforska vad som är tillgängligt i Azure eller att utföra grundläggande uppgifter kan det vara tråkigt att ta upp komponenter som App Service.

I den här modulen använder du Azure CLI för att skapa en App Service-instans. Du kan använda Azure CLI från en terminal eller via Visual Studio Code. Här får vi åtkomst till Azure CLI från Azure Cloud Shell. Den här webbläsarbaserade gränssnittsmiljön är molnbaserad. I Cloud Shell är Azure CLI konfigurerat för användning med din Azure-prenumeration.

Viktigt!

Du behöver en egen Azure-prenumeration för att kunna utföra övningarna i den här modulen.

Ta upp Cloud Shell via Azure-portalen

  1. Logga in på Azure-portalen.

  2. Från de globala kontrollerna i sidhuvudet väljer du Cloud Shell.

    En skärmbild av Azure-portalen som visar platsen för Cloud Shell-menyalternativet.

    En terminal öppnas och ansluter till Azure Cloud Shell.

  3. Om det behövs väljer du Bash på terminalmenyn.

    Kommentar

    Cloud Shell kräver att en Azure Storage-resurs bevarar alla filer som du skapar i Cloud Shell. När du först öppnar Cloud Shell uppmanas du att skapa en resursgrupp, ett lagringskonto och en Azure Files-resurs. Den här konfigurationen används automatiskt för alla framtida Cloud Shell-sessioner.

Välj en Azure-region

En region är ett eller flera Azure-datacenter inom en geografisk plats. USA, östra, USA, västra och Europa, norra är exempel på regioner. Varje Azure-resurs, inklusive en App Service-instans, tilldelas en region.

För att göra kommandon enklare att köra börjar vi med att ange en standardregion. När du har angett standardregionen använder kommandon som du anger använd den regionen tills du anger en annan region.

  1. Kör följande az account list-locations kommando från Cloud Shell för att visa de regioner som är tillgängliga från din Azure-prenumeration:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Name I kolumnen i utdata väljer du en region som är nära dig. Välj till exempel eastasia eller westus2.

  3. Kör az configure för att ange din standardregion. Ersätt <REGION> med namnet på den region som du valde.

    az configure --defaults location=<REGION>
    

    I det här exemplet anges westus2 som standardregion:

    az configure --defaults location=westus2
    

Skapa Bash-variabler

Här skapar du Bash-variabler för att göra installationsprocessen enklare och mindre felbenägen. Genom att använda variabler för delade textsträngar kan du undvika oavsiktliga stavfel.

  1. Generera ett slumptal från Cloud Shell som vi använder för att skapa globalt unika namn för vissa tjänster i nästa steg.

    resourceSuffix=$RANDOM
    
  2. Skapa tre globalt unika namn för dina App Service-, Azure-funktions- och lagringskonton. Dessa kommandon använder dubbla citattecken, vilket instruerar Bash att lösa variablerna med hjälp av infogad syntax.

    webName="tailspin-space-game-web-${resourceSuffix}"
    leaderboardName="tailspin-space-game-leaderboard-${resourceSuffix}"
    storageName="tailspinspacegame${resourceSuffix}"
    
  3. Skapa ytterligare två Bash-variabler för att lagra namnen på resursgruppen och tjänstplanen.

    rgName='tailspin-space-game-rg'
    planName='tailspin-space-game-asp'
    

Skapa de Azure-resurser som krävs

Vår lösning kräver flera Azure-resurser för distribution, som vi ska skapa nu.

Kommentar

I den här övningen används standardinställningarna för nätverk så att webbplatsen är tillgänglig från Internet. I praktiken kan du konfigurera ett virtuellt Azure-nätverk för att placera din webbplats i ett nätverk som bara du och ditt team kan komma åt. Senare kan du konfigurera om ditt virtuella nätverk för att göra webbplatsen tillgänglig för dina användare.

  1. Kör följande az group create kommando för att skapa en resursgrupp med det namn som definierades tidigare:

    az group create --name $rgName
    
  2. Kör följande az appservice plan create kommando för att skapa en App Service-plan med det namn som definierades i föregående uppgift:

    az appservice plan create \
      --name $planName \
      --resource-group $rgName \
      --sku B1 \
      --is-linux
    

    Parametern --sku anger B1-planen. Den här planen körs på basic-nivån. Parametern --is-linux anger Linux-arbetare (trådar som används i händelser och schemaläggning av uppgifter).

    Viktigt!

    Om B1-SKU:n inte är tillgänglig i din Azure-prenumeration väljer du en annan plan, till exempel S1 (Standard).

  3. Kör följande az webapp create kommando för att skapa App Service-instansen:

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "DOTNETCORE|6.0"
    
  4. Azure Functions kräver ett lagringskonto för distribution. Kör följande az storage account create kommando för att skapa det:

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Kör följande az functionapp create kommando för att skapa Azure Functions-appinstansen. <region> Ersätt med önskad region.

    az functionapp create \
      --name $leaderboardName \
      --resource-group $rgName \
      --storage-account $storageName \
      --functions-version 4 \
      --consumption-plan-location <region>
    
  6. Kör följande az webapp list kommando för att visa värdnamnet och tillståndet för App Service-instansen:

    az webapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Observera värdnamnet för din tjänst som körs. Det bör se ut ungefär så här, men slumptalsidentifieraren skiljer sig åt. Du behöver webbvärdnamnet senare när du verifierar ditt arbete.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Kör följande az functionapp list kommando för att visa värdnamnet och tillståndet för Azure Functions-instansen.

    az functionapp list \
      --resource-group $rgName \
      --query "[].{hostName: defaultHostName, state: state}" \
      --output table
    

    Observera värdnamnet för din tjänst som körs. Det bör se ut ungefär så här, men slumptalsidentifieraren skiljer sig åt. Du behöver värdnamnet för rankningslistan senare när du verifierar ditt arbete.

    HostName                                                State
    ------------------------------------------------------  -------
    tailspin-space-game-leaderboard-4692.azurewebsites.net  Running
    
  8. Kopiera dessa två värdnamn till en plats som du enkelt kan komma åt senare.

  9. Som ett valfritt steg öppnar du en webbläsare och anger ett värdnamn för att kontrollera att den körs. Standardstartsidan visas.

Viktigt!

Sidan Clean up your Azure DevOps environment (Rensa upp din Azure DevOps-miljö) i den här modulen innehåller viktiga rensningssteg. Genom att rensa upp ser du till att du inte debiteras för Azure-resurser när du har slutfört den här modulen. Glöm inte att utföra rensningsstegen även om du inte slutför modulen.

Skapa pipelinevariabler i Azure Pipelines

I modulen Skapa en versionspipeline med Azure Pipelines lade du till en variabel i din pipeline som lagrar namnet på din webbapp i App Service. Här gör du samma sak. Dessutom lägger du till namnet på din leaderboard-app för Azure Functions-instansen.

Du kan hårdkoda dessa namn i pipelinekonfigurationen, men om du definierar dem som variabler blir konfigurationen mer återanvändbar. Om namnen på dina instanser ändras kan du dessutom uppdatera variablerna och utlösa pipelinen utan att ändra konfigurationen.

Nu ska vi lägga till en variabelgrupp i projektet.

  1. Space Game – webben – Azure Functions-projektet bör vara öppet i Azure DevOps.

  2. Välj Pipelines på menyn och välj sedan Bibliotek under Pipelines. Fönstret Bibliotek visas.

    Skärmbild av Azure DevOps-menyn som markerar alternativet Bibliotek under Pipelines.

  3. I kommandofältet eller i mitten av fönstret väljer du Variabelgrupp. Sidan Ny variabelgrupp visas.

  4. För variabelgruppens namn anger du Version.

  5. Under Variabler väljer du Lägg till.

  6. Som namn på variabeln anger du WebAppName. För värdet anger du namnet på App Service-instansen som skapades för din webbapp, till exempel tailspin-space-game-web-4692.

    Viktigt!

    Ange namnet på App Service-instansen, inte dess fullständiga värdnamn. I den här övningen är till exempel tailspin-space-game-web-4692 instansdelen av värdnamnet tailspin-space-game-web-4692.azurewebsites.net.

  7. Lägg till en annan variabel med namnet LeaderboardAppName med värdet för din leaderboard-instans, till exempel tailspin-space-game-leaderboard-4692.

  8. Lägg till en sista variabel med namnet ResourceGroupName med värdet tailspin-space-game-rg.

  9. I kommandofältet längst upp på sidan väljer du Spara för att spara variabelgruppen Release i pipelinen.

    Variablerna i din variabelgrupp bör vara liknande:

    En skärmbild av Azure Pipelines som visar variabelgruppen. Gruppen innehåller tre variabler.

Skapa toppmiljön

I tidigare moduler skapade du miljöer för utvecklings-, test- och mellanlagringsmiljöer. Här gör du samma sak. Den här gången skapar du en miljö med namnet spike.

  1. På Menyn Azure DevOps går du till Pipelines och väljer Miljöer.

    En skärmbild av Azure Pipelines som visar platsen för menyalternativet Miljöer.

  2. Välj Skapa miljö. Fönstret Ny miljö visas.

  3. Som Namn anger du topp.

  4. Lämna de återstående fälten som standardvärden.

  5. Välj Skapa.

Skapa en tjänstanslutning

Här skapar du en tjänstanslutning som gör att Azure Pipelines kan komma åt din Azure-prenumeration. Azure Pipelines använder den här tjänstanslutningen för att distribuera webbplatsen till App Service. Du skapade en liknande tjänstanslutning i föregående modul.

Viktigt!

Kontrollera att du är inloggad på både Azure-portalen och Azure DevOps under samma Microsoft-konto.

  1. I Azure DevOps, Space Game – web – Azure Functions-pipelineprojekt , under menyn väljer du Projektinställningar. Fönstret Projektinformation visas.

  2. Välj Tjänstanslutningar under Pipelines på menyn.

  3. På sidan Tjänstanslutningar väljer du Ny tjänstanslutning och i fönstret Ny tjänstanslutning väljer du Azure Resource Manager och sedan Nästa.

  4. I fönstret Ny tjänstanslutning väljer du Tjänstens huvudnamn (automatiskt) och sedan Nästa.

  5. I fönstret Ny Azure-tjänstanslutning väljer eller anger du följande inställningar:

    Fält Värde
    Omfångsnivå Abonnemang
    Prenumeration Välj din Azure-prenumeration
    Resursgrupp tailspin-space-game-rg
    Namn på tjänstanslutning Resource Manager – Tailspin – Space Game

    Under processen kan du uppmanas att logga in på ditt Microsoft-konto.

  6. Se till att Bevilja åtkomstbehörighet till alla pipelines har valts .

  7. Välj Spara.

Azure DevOps utför en testanslutning för att kontrollera att den kan ansluta till din Azure-prenumeration. Om Azure DevOps inte kan ansluta har du chansen att logga in en andra gång.