Oefening: uw Azure DevOps-omgeving instellen

Voltooid

In deze les zorgt u ervoor dat uw Azure DevOps-organisatie is ingesteld om de rest van deze module te voltooien. U maakt ook de Azure App Service-omgevingen waarnaar u gaat implementeren.

Als u deze doelen wilt bereiken, gaat u het volgende doen:

  • Voeg een gebruiker toe om ervoor te zorgen dat Azure DevOps verbinding kan maken met uw Azure-abonnement.
  • Een Azure DevOps-project instellen voor deze module.
  • Verplaats op Azure Boards het werkitem voor deze module naar de kolom Uitvoeren.
  • Zorg ervoor dat uw project lokaal is ingesteld, zodat u wijzigingen naar de pijplijn kunt pushen.
  • Maak de Azure App Service- en Azure Functions-app met behulp van de Azure CLI in Azure Cloud Shell.
  • Maak pijplijnvariabelen waarmee de namen van uw App Service- en Azure Functions-exemplaar worden gedefinieerd.
  • Maak een serviceverbinding waarmee Azure Pipelines veilig toegang kan krijgen tot uw Azure-abonnement.

Een gebruiker toevoegen aan Azure DevOps

Als u deze module wilt voltooien, hebt u uw eigen Azure-abonnement nodig. U kunt gratis aan de slag met Azure.

Hoewel u geen Azure-abonnement nodig hebt om met Azure DevOps te werken, gebruikt deze oefening Azure DevOps om te implementeren in Azure-resources in uw Azure-abonnement. Gebruik hetzelfde Microsoft-account om u aan te melden bij zowel uw Azure-abonnement als uw Azure DevOps-organisatie om het proces te vereenvoudigen.

Belangrijk

Als u zich met verschillende accounts aanmeldt, moet u een gebruiker toevoegen aan uw DevOps-organisatie onder het Microsoft-account dat u gebruikt om u aan te melden bij Azure. Zie Gebruikers toevoegen aan uw organisatie of projectvoor meer informatie. Wanneer u de gebruiker toevoegt, kiest u het Basic toegangsniveau.

Meld u vervolgens af bij Azure DevOps en meld u aan met het nieuwe gebruikersaccount. Gebruik het Microsoft-account dat u gebruikt om u aan te melden bij uw Azure-abonnement.

Het Azure DevOps-project ophalen

Zorg ervoor dat uw Azure DevOps-organisatie is ingesteld om de rest van deze module te voltooien. Hiervoor voert u een sjabloon uit waarmee een project wordt gemaakt in Azure DevOps.

De modules in dit leertraject vormen een voortgang terwijl u het Tailspin-webteam volgt via hun DevOps-traject. Voor leerdoeleinden heeft elke module een eigen Azure DevOps-project.

De sjabloon uitvoeren

  1. Voer een sjabloon uit waarmee uw Azure DevOps-organisatie wordt ingesteld:

    de sjabloon uitvoeren

  2. Op de Azure DevOps Demo Generator-site, selecteer Aanmelden. Accepteer de gebruiksvoorwaarden als u hierom wordt gevraagd. De pagina Nieuw project maken wordt weergegeven.

  3. Voer op de pagina Nieuw project maken een projectnaam in, zoals Space Game - web - Azure Functionsen selecteer vervolgens voor Organisatie selecterende organisatie die u gebruikt bij uw Azure-abonnement.

    Een schermopname van de Azure DevOps-demogenerator die laat zien hoe u het project maakt.

  4. Selecteer in de volgende sectie Ja, ik wil deze opslagplaatssplitsen en vervolgens Autoriserenselecteren.

    Als er een venster wordt weergegeven, autoriseert u de toegang tot uw GitHub-account.

    Belangrijk

    De optie voor het inschakelen van deze fork is nodig voor de sjabloon om verbinding te maken met uw GitHub-opslagplaats. Selecteer deze zelfs als u het Space Game-project al hebt gesplitst websiteproject. De sjabloon maakt gebruik van uw bestaande fork.

  5. Selecteer Project aanmaken.

    Het duurt even voordat de sjabloon wordt uitgevoerd.

  6. Wanneer het project is ingericht, selecteert u Navigeer naar project om naar uw project in Azure DevOps te gaan.

Belangrijk

De Uw Azure DevOps-omgeving opschonen pagina in deze module bevat belangrijke stappen die u moet voltooien, zelfs als u deze module niet voltooit. Opschonen helpt ervoor te zorgen dat u geen gratis buildminuten meer hebt.

De zichtbaarheid van uw project instellen

In eerste instantie is uw fork van de Space Game-opslagplaats op GitHub ingesteld op openbaar terwijl het project dat is gemaakt door de Azure DevOps-sjabloon is ingesteld op privé. Een openbare opslagplaats op GitHub is toegankelijk voor iedereen, terwijl een privéopslagplaats alleen toegankelijk is voor u en de personen met wie u deze wilt delen. Op dezelfde manier bieden openbare projecten op Azure DevOps alleen-lezentoegang tot niet-geauthenticeerde gebruikers, terwijl privéprojecten vereisen dat gebruikers toegang krijgen en geauthenticeerd zijn om de diensten te kunnen gebruiken.

Op dit moment is het niet nodig om deze instellingen te wijzigen voor de doeleinden van deze module. Voor uw persoonlijke projecten moet u echter bepalen welke zichtbaarheid en toegang u aan anderen wilt verlenen. Als uw project bijvoorbeeld open source is, kunt u ervoor kiezen om zowel uw GitHub-opslagplaats als uw Azure DevOps-project openbaar te maken. Als uw project eigendom is, maakt u doorgaans zowel uw GitHub-opslagplaats als uw Azure DevOps-project privé.

Later kunt u de volgende resources nuttig vinden om te bepalen welke optie het beste is voor uw project:

Een werkitem toewijzen en naar de status Uitvoeren verplaatsen

Hier wijst u een werkitem aan uzelf toe op Azure Boards en stelt u de status van het werkitem in op Bezig. In de praktijk zouden u en uw team aan het begin van elke sprint, of werkiteratie, werkitems aanmaken.

In deze oefening maakt u een controlelijst waaruit u kunt werken. Het geeft andere teamleden inzicht in waar u aan werkt en hoeveel werk er nog over is. Het werkitem helpt ook om WIP-limieten (work-in-progress) af te dwingen, zodat het team niet te veel werk tegelijkertijd op zich neemt.

  1. Ga vanuit Azure DevOps naar Boards categorie en selecteer vervolgens Boards in het menu.

    Azure DevOps die de locatie van het Bordenmenu laat zien.

  2. Open de Leaderboard-API refactoren als Azure Functions werkitem door op de titel te klikken. Wijs dit werkitem toe aan uzelf en selecteer Opslaan &sluiten.

  3. Selecteer de pijl-omlaag onder aan de kaart en kies Bezig met, of selecteer de kaart en sleep deze naar de kolom Bezig.

    Schermopname van de kaart met werkitems waarin de locatie van de pijl-omlaag wordt gemarkeerd.

  4. Het werkitem wordt verplaatst van de kolom To Do naar de kolom Doing.

    Schermopname van Azure Boards waarin de werkitemkaart in de kolom In uitvoering wordt gemarkeerd.

Aan het einde van deze module verplaatst u de kaart naar de kolom Gereed nadat u de taak hebt voltooid.

De Azure App Service- en Azure Functions-omgevingen maken

Hier maakt u de App Service- en Azure Functions-app die nodig is om de nieuwe versie van de site en API te implementeren.

In de Een release-pijplijn maken met Azure Pipelines Learn-module, hebt u App Service via de Azure-portal in werking gezet. Hoewel de portal een uitstekende manier is om te verkennen wat er beschikbaar is in Azure of om basistaken uit te voeren, kan het vervelend zijn om onderdelen zoals App Service op te halen.

In deze module gebruikt u de Azure CLI om een App Service-exemplaar weer te geven. U hebt toegang tot de Azure CLI vanuit een terminal of via Visual Studio Code. Hier hebben we toegang tot de Azure CLI vanuit Azure Cloud Shell. Deze browsergebaseerde shell-ervaring wordt gehost in de cloud. In Cloud Shell is de Azure CLI geconfigureerd voor gebruik met uw Azure-abonnement.

Belangrijk

U hebt uw eigen Azure-abonnement nodig om de oefeningen in deze module te voltooien.

Cloud Shell openen via de Azure Portal

  1. Meld u aan bij de Azure Portal.

  2. Kies vanuit de globale bedieningselementen in de pagina-header Cloud Shell.

    Een schermopname van Azure Portal met de locatie van het menu-item Cloud Shell.

    Er wordt een terminal geopend en maakt verbinding met De Azure Cloud Shell.

  3. Selecteer indien nodig Bash- in het terminalmenu.

    Notitie

    Voor Cloud Shell is een Azure-opslagresource vereist om alle bestanden die u in Cloud Shell maakt, te behouden. Wanneer u Cloud Shell voor het eerst opent, wordt u gevraagd om een resourcegroep, opslagaccount en Azure Files-share te maken. Deze installatie wordt automatisch gebruikt voor alle toekomstige Cloud Shell-sessies.

Een Azure-regio selecteren

Een regio is een of meer Azure-datacenters binnen een geografische locatie. VS - oost, VS - west en Europa - noord zijn voorbeelden van regio's. Aan elke Azure-resource, inclusief een App Service-exemplaar, wordt een regio toegewezen.

Laten we beginnen met het instellen van een standaardregio om opdrachten gemakkelijker uit te voeren. Nadat u de standaardregio hebt opgegeven, gebruiken de commando's die u invoert die regio totdat u een andere regio specificeert.

  1. Voer vanuit Cloud Shell de volgende az account list-locations opdracht uit om de regio's weer te geven die beschikbaar zijn vanuit uw Azure-abonnement:

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. Kies in de Name-kolom in de uitvoer een regio die nabij u is. Kies bijvoorbeeld eastasia of westus2.

  3. Voer az configure uit om uw standaardregio in te stellen. Vervang <REGION> door de naam van de regio die u hebt gekozen.

    az configure --defaults location=<REGION>
    

    In dit voorbeeld wordt westus2 ingesteld als de standaardregio:

    az configure --defaults location=westus2
    

Bash-variabelen maken

Hier maakt u Bash-variabelen om het installatieproces handiger en minder foutgevoelig te maken. Het gebruik van variabelen voor gedeelde teksttekenreeksen helpt onbedoelde typfouten te voorkomen.

  1. Genereer vanuit Cloud Shell een willekeurig getal, dat we in de volgende stap gebruiken om wereldwijd unieke namen voor bepaalde services te maken.

    resourceSuffix=$RANDOM
    
  2. Maak drie wereldwijd unieke namen voor uw App Service-, Azure-functie- en opslagaccounts. Deze commando's gebruiken dubbele aanhalingstekens, waarmee Bash de variabelen kan oplossen met behulp van inline-syntaxis.

    webName="tailspin-space-game-web-${resourceSuffix}"
    leaderboardName="tailspin-space-game-leaderboard-${resourceSuffix}"
    storageName="tailspinspacegame${resourceSuffix}"
    
  3. Maak nog twee Bash-variabelen om de namen van uw resourcegroep en serviceplan op te slaan.

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

De vereiste Azure-resources maken

Voor onze oplossing zijn verschillende Azure-resources vereist voor implementatie, die we nu gaan maken.

Notitie

In deze oefening worden de standaardnetwerkinstellingen gebruikt, zodat uw site toegankelijk is vanaf internet. In de praktijk kunt u een virtueel Azure-netwerk configureren om uw website in een netwerk te plaatsen waartoe alleen u en uw team toegang hebben. Later kunt u uw virtuele netwerk opnieuw configureren om de website beschikbaar te maken voor uw gebruikers.

  1. Voer de volgende az group create opdracht uit om een resourcegroep te maken met behulp van de eerder gedefinieerde naam:

    az group create --name $rgName
    
  2. Voer de volgende az appservice plan create opdracht uit om een App Service-plan te maken met behulp van de naam die in de vorige taak is gedefinieerd:

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

    De parameter --sku geeft het B1-plan op. Dit plan wordt uitgevoerd op de Basic-laag. De parameter --is-linux specificeert Linux-werkers (threads die worden gebruikt bij gebeurtenissen en het plannen van taken).

    Belangrijk

    Als de B1-SKU niet beschikbaar is in uw Azure-abonnement, een ander abonnement kiezen, zoals S1 (Standard).

  3. Voer de volgende az webapp create opdracht uit om het App Service-exemplaar te maken:

    az webapp create \
      --name $webName \
      --resource-group $rgName \
      --plan $planName \
      --runtime "DOTNETCORE|6.0"
    
  4. Azure Functions vereist een opslagaccount voor implementatie. Voer de volgende az storage account create opdracht uit om deze te maken:

    az storage account create \
      --name $storageName \
      --resource-group $rgName \
      --sku Standard_LRS
    
  5. Voer de volgende az functionapp create opdracht uit om het Azure Functions-app-exemplaar te maken. Vervang de <region> door uw voorkeursregio.

    az functionapp create \
      --name $leaderboardName \
      --resource-group $rgName \
      --storage-account $storageName \
      --functions-version 4 \
      --consumption-plan-location <region>
    
  6. Voer de volgende az webapp list opdracht uit om de hostnaam en -status van het App Service-exemplaar weer te geven:

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

    Noteer de hostnaam voor de actieve service. Deze moet er ongeveer als volgt uitzien, maar de willekeurige getal-ID verschilt. U hebt de naam van de webhost later nodig wanneer u uw werk verifieert.

    HostName                                        State
    ----------------------------------------------  -------
    tailspin-space-game-web-4692.azurewebsites.net  Running
    
  7. Voer de volgende az functionapp list opdracht uit om de hostnaam en -status van het Azure Functions-exemplaar weer te geven.

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

    Noteer de hostnaam voor de actieve service. Deze moet er ongeveer als volgt uitzien, maar de willekeurige getal-id verschilt. U hebt de hostnaam van het leaderboard later nodig wanneer u uw werk verifieert.

    HostName                                                State
    ------------------------------------------------------  -------
    tailspin-space-game-leaderboard-4692.azurewebsites.net  Running
    
  8. Kopieer deze twee hostnamen naar een locatie die u later eenvoudig kunt openen.

  9. Als optionele stap opent u een browser en voert u een hostnaam in om te controleren of deze actief is. De standaardstartpagina wordt weergegeven.

Belangrijk

De Uw Azure DevOps-omgeving opschonen pagina in deze module bevat belangrijke opschoonstappen. Opschonen zorgt ervoor dat er geen kosten in rekening worden gebracht voor Azure-resources nadat u deze module hebt voltooid. Zorg ervoor dat u de opschoonstappen uitvoert, zelfs als u deze module niet voltooit.

Pijplijnvariabelen maken in Azure Pipelines

In de Een release-pijplijn maken met Azure Pipelines module hebt u een variabele toegevoegd aan uw pijplijn waarin de naam van uw web-app in App Service wordt opgeslagen. Hier doe je hetzelfde. Daarnaast voegt u de naam van uw leaderboard-app toe voor het Azure Functions-exemplaar.

U kunt deze namen hardcoden in uw pijplijnconfiguratie, maar als u ze definieert als variabelen, is uw configuratie beter herbruikbaar. En als de namen van uw exemplaren veranderen, kunt u de variabelen bijwerken en uw pijplijn activeren zonder de configuratie te wijzigen.

We gaan een variabelegroep toevoegen aan uw project.

  1. Uw Space Game - web - Azure Functions-project moet zijn geopend in Azure DevOps.

  2. Selecteer in het menu Pijplijnenen selecteer dan onder PijplijnenBibliotheek. Het Bibliotheek-deelvenster verschijnt.

    Schermopname van het Menu Azure DevOps waarin de optie Bibliotheek onder Pijplijnen wordt gemarkeerd.

  3. Selecteer in de opdrachtbalk of in het midden van het venster Variabelegroep. De pagina Nieuwe variabelegroep verschijnt.

  4. Voer voor de naam van de variabelegroep Releasein.

  5. Selecteer onder Variabelende optie Toevoegen.

  6. Voer voor de naam van de variabele WebAppNamein. Voer voor de waarde de naam in van de App Service-instantie die is gemaakt voor uw webapp, zoals tailspin-space-game-web-4692.

    Belangrijk

    Stel de naam van het App Service-exemplaar in, niet de volledige hostnaam. In deze oefening is bijvoorbeeld tailspin-space-game-web-4692 de instantie van de hostnaam tailspin-space-game-web-4692.azurewebsites.net.

  7. Voeg nog een variabele toe met de naam LeaderboardAppName met de waarde van uw leaderboard-exemplaar, bijvoorbeeld tailspin-space-game-leaderboard-4692.

  8. Voeg een laatste variabele toe met de naam ResourceGroupName met de waarde tailspin-space-game-rg.

  9. Selecteer in de opdrachtbalk boven aan de pagina Opslaan om de release-variabelengroep op te slaan in de pijplijn.

    De variabelen in de variabelegroep moeten er ongeveer als volgt uitzien:

    Een schermopname van Azure Pipelines met de variabelegroep. De groep bevat drie variabelen.

Maak de piekomgeving

In eerdere modules hebt u omgevingen gemaakt voor dev, testen faseringsomgevingen. Hier doe je hetzelfde. Deze keer maakt u een omgeving met de naam spike.

  1. In het Azure DevOps-menu, selecteer onder Pipelinesde optie Environments.

    Een schermopname van Azure Pipelines met de locatie van de menuoptie Omgevingen.

  2. Selecteer Omgeving maken. Het deelvenster Nieuwe omgeving wordt weergegeven.

  3. Voer voor Naampiekin.

  4. Laat de resterende velden op de standaardwaarden staan.

  5. Selecteer , maak.

Een serviceverbinding maken

Hier maakt u een serviceverbinding waarmee Azure Pipelines toegang heeft tot uw Azure-abonnement. Azure Pipelines maakt gebruik van deze serviceverbinding om de website te implementeren in App Service. U hebt in de vorige module een vergelijkbare serviceverbinding gemaakt.

Belangrijk

Zorg ervoor dat u bent aangemeld bij zowel Azure Portal als Azure DevOps onder hetzelfde Microsoft-account.

  1. Selecteer in Azure DevOps, in het pijplijnproject Space Game - web - Azure Functions, onder het menu de optie Project-instellingen. Het deelvenster Projectdetails wordt weergegeven.

  2. Selecteer in het menu onder PijplijnenServiceverbindingen.

  3. Selecteer op de pagina Serviceverbindingen de optie Nieuwe serviceverbinding. Kies vervolgens in het deelvenster Nieuwe serviceverbinding de optie Azure Resource Manageren klik daarna op Volgende.

  4. Selecteer in het deelvenster Nieuwe serviceverbindingService-principal (automatisch)en selecteer vervolgens Volgende.

  5. Selecteer of voer in het deelvenster Nieuwe Azure-serviceverbinding de volgende instellingen in:

    Veld Waarde
    Bereikniveau abonnement
    Abonnement Uw Azure-abonnement selecteren
    Resourcegroep tailspin-space-game-rg-
    Serviceverbindingsnaam Resource Manager - Tailspin - Ruimtespel

    Tijdens het proces wordt u mogelijk gevraagd u aan te melden bij uw Microsoft-account.

  6. Zorg ervoor dat Toegangsmachtigingen verlenen aan alle pijplijnen is geselecteerd.

  7. Selecteer opslaan.

Azure DevOps voert een testverbinding uit om te controleren of deze verbinding kan maken met uw Azure-abonnement. Als Azure DevOps geen verbinding kan maken, kunt u zich een tweede keer aanmelden.