Share via


Zelfstudie: Omgevingen implementeren in CI/CD met behulp van GitHub- en Azure-implementatieomgevingen

In deze zelfstudie leert u hoe u Azure Deployment Environments kunt integreren in uw CI/CD-pijplijn. U kunt elke GitOps-provider gebruiken die ONDERSTEUNING biedt voor CI/CD, zoals GitHub Actions, Azure Arc, GitLab of Jenkins.

Continue integratie en continue levering (CI/CD) is een softwareontwikkelingsbenadering waarmee teams het proces van het bouwen, testen en implementeren van softwarewijzigingen kunnen automatiseren. Met CI/CD kunt u softwarewijzigingen vaker en met meer vertrouwen vrijgeven.

U gebruikt een werkstroom met drie vertakkingen: main, dev en test.

  • De hoofdbranch wordt altijd beschouwd als productie.
  • U maakt functietakken van de hoofdbranch .
  • U maakt pull-aanvragen om functiebranches samen te voegen in de hoofdmap.

Deze werkstroom is een klein voorbeeld voor deze zelfstudie. Werkstromen in de praktijk kunnen complexer zijn.

Voordat u aan deze zelfstudie begint, kunt u vertrouwd raken met resources en concepten voor implementatieomgevingen door belangrijke concepten voor Azure Deployment Environments te bekijken.

In deze zelfstudie leert u het volgende:

  • Een ontwikkelaarscentrum maken en configureren
  • Maak een sleutelkluis.
  • Een GitHub-opslagplaats maken en configureren
  • Verbinding maken de catalogus naar uw ontwikkelaarscentrum
  • Implementatie-identiteiten configureren
  • GitHub-omgevingen configureren
  • De CI/CD-pijplijn testen

Vereisten

  • Een Azure-account met een actief abonnement.
  • Eigenaarsmachtigingen voor het Azure-abonnement.
  • Een GitHub-account.
    • Als u geen account hebt, kunt u zich registreren voor een gratis account.
  • Installeer Git.
  • Installeer de Azure CLI.

1. Een ontwikkelaarscentrum maken en configureren

In deze sectie maakt u een ontwikkelaarscentrum voor Azure Deployment Environments en een project met drie omgevingstypen: Dev, Test en Prod.

  • Het prod-omgevingstype bevat de individuele productieomgeving.
  • Voor elke functiebranch wordt een nieuwe omgeving gemaakt in Dev .
  • Er wordt een nieuwe omgeving gemaakt in Test voor elke pull-aanvraag.

1.1 De Azure CLI instellen

Meld u om te beginnen aan bij Azure. Voer de volgende opdracht uit en volg de aanwijzingen om het verificatieproces te voltooien.

az login

Installeer vervolgens de Azure DevCenter-extensie voor de Azure CLI.

az extension add --name devcenter --upgrade

Nu de huidige extensie is geïnstalleerd, registreert u de Microsoft.DevCenter naamruimte.

az provider register --namespace Microsoft.DevCenter

Tip

In deze zelfstudie slaat u verschillende waarden op als omgevingsvariabelen die u later kunt gebruiken. U kunt deze waarde ook ergens anders vastleggen om ervoor te zorgen dat deze beschikbaar zijn wanneer dat nodig is.

Haal de gebruikers-id op en stel deze in op een omgevingsvariabele voor later:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Haal de abonnements-id voor uw huidige abonnement op.

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Haal de tenant-id voor uw huidige tenant op.

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Stel de volgende omgevingsvariabelen in:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Notitie

U moet een wereldwijd unieke sleutelkluisnaam gebruiken. Anders krijgt u mogelijk de volgende fout: Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2 Een ontwikkelaarscentrum maken

Een ontwikkelaarscentrum is een verzameling projecten en omgevingen met vergelijkbare instellingen. Ontwikkelaarscentra bieden toegang tot een catalogus met sjablonen en artefacten die kunnen worden gebruikt om omgevingen te maken. Ontwikkelaarscentra bieden ook een manier om toegang tot omgevingen en projecten te beheren.

Maak een resourcegroep.

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Maak een nieuw ontwikkelaarscentrum.

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Met de vorige opdracht wordt JSON uitgevoerd. Sla de waarden voor id en identity.principalId als omgevingsvariabelen op om later te gebruiken.

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Rol van eigenaar van ontwikkelaarscentrum-id toewijzen aan abonnement

Een ontwikkelaarscentrum heeft machtigingen nodig om rollen toe te wijzen aan abonnementen die zijn gekoppeld aan omgevingstypen.

Als u onnodige complexiteit wilt verminderen, gebruikt u in deze zelfstudie één abonnement voor het ontwikkelaarscentrum en alle omgevingstypen. In de praktijk zijn het ontwikkelaarscentrum en de doelimplementatieabonnementen waarschijnlijk afzonderlijke abonnementen waarop verschillende beleidsregels zijn toegepast.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Maak de omgevingstypen

Op het niveau van het ontwikkelaarscentrum definiëren omgevingstypen de omgevingen die ontwikkelteams kunnen maken, zoals ontwikkelen, testen, sandbox, preproductie of productie.

Maak drie nieuwe omgevingstypen: Dev, Test en Prod.

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5 Een project maken

Een project is het punt van toegang voor het ontwikkelteam. Elk project is gekoppeld aan een ontwikkelaarscentrum.

Een nieuw project maken.

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

Met de vorige opdracht wordt JSON uitgevoerd. Sla de id waarde op als een omgevingsvariabele die u later wilt gebruiken.

AZURE_PROJECT_ID=<id>

Wijs uzelf de rol DevCenter Project Beheer toe aan het project.

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Projectomgevingstypen maken

Op projectniveau geven platformtechnici op welke omgevingstypen geschikt zijn voor het ontwikkelteam.

Maak een nieuw projectomgevingstype voor elk van de omgevingstypen die u in het ontwikkelcentrum hebt gemaakt.

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Een sleutelkluis maken

In deze sectie maakt u een nieuwe sleutelkluis. U gebruikt deze sleutelkluis verderop in de zelfstudie om een persoonlijk toegangstoken op te slaan vanuit GitHub.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

Sla de id JSON-uitvoer van de vorige opdracht opnieuw op als een omgevingsvariabele.

AZURE_KEYVAULT_ID=<id>

Geef uzelf de rol key vault Beheer istrator voor de nieuwe sleutelkluis.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Wijs de identiteit van het ontwikkelaarscentrum toe aan de rol van Key Vault Secrets User.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. Een GitHub-opslagplaats maken en configureren

In deze sectie maakt u een nieuwe GitHub-opslagplaats voor het opslaan van een catalogus. Azure Deployment Environments ondersteunt zowel GitHub- als Azure DevOps-opslagplaatsen. In deze zelfstudie gebruikt u GitHub.

3.1 Een nieuwe GitHub-opslagplaats maken

In deze stap maakt u een nieuwe opslagplaats in uw GitHub-account met een vooraf gedefinieerde mapstructuur, vertakkingen en bestanden. Deze items worden gegenereerd vanuit een voorbeeldsjabloonopslagplaats.

  1. Gebruik deze koppeling om een nieuwe GitHub-opslagplaats te genereren op basis van de voorbeeldsjabloon.

    Screenshot showing the GitHub create repository from template page.

  2. Als u geen betaald GitHub-account hebt, stelt u uw opslagplaats in op Openbaar.

  3. Selecteer Opslagplaats maken van sjabloon.

  4. Op het tabblad Acties ziet u dat de actie Omgeving maken mislukt. Dit gedrag wordt verwacht. U kunt doorgaan met de volgende stap.

3.2 Beveilig de hoofdbranch van de opslagplaats

U kunt belangrijke vertakkingen beveiligen door vertakkingsbeveiligingsregels in te stellen. Beveiligingsregels bepalen of samenwerkers pushen naar de vertakking kunnen verwijderen of forceren. Ze stellen ook vereisten in voor pushes naar de vertakking, zoals het doorgeven van statuscontroles of een lineaire doorvoergeschiedenis.

Notitie

Beveiligde vertakkingen zijn beschikbaar in openbare opslagplaatsen met GitHub Free en GitHub Free voor organisaties, en in openbare en privéopslagplaatsen met GitHub Pro, GitHub Team, GitHub Enterprise Cloud en GitHub Enterprise Server. Zie de producten van GitHub voor meer informatie.

  1. Als deze nog niet is geopend, gaat u naar de hoofdpagina van uw opslagplaats.

  2. Selecteer Instellingen onder de naam van de opslagplaats. Als u het tabblad Instellingen niet ziet, selecteert u de vervolgkeuzelijst ... en selecteert u vervolgens Instellingen.

    Screenshot showing the GitHub repository page with settings highlighted.

  3. Selecteer Branches in de sectie Code en automatisering van de zijbalk.

    Screenshot showing the settings page, with branches highlighted.

  4. Selecteer onder Vertakkingsbeveiligingsregels de optie Vertakkingsbeveiligingsregel toevoegen.

    Screenshot showing the branch protection rule page, with Add branch protection rule highlighted.

  5. Voer onder Het patroon Vertakkingsnaam het veld in main.

    Screenshot showing the branch name pattern text box, with main highlighted.

  6. Selecteer onder Overeenkomende vertakkingen beveiligen de optie Een pull-aanvraag vereisen voordat u samenvoegt.

    Screenshot showing protect matching branches with Require a pull request before merging selected and highlighted.

  7. U kunt desgewenst meer beveiligingsregels inschakelen.

  8. Selecteer Maken.

3.3 Opslagplaatsvariabelen configureren

Notitie

Configuratievariabelen voor GitHub Actions zijn bèta en kunnen worden gewijzigd.

  1. Selecteer geheimen en variabelen in de sectie Beveiliging van de zijbalk en selecteer vervolgens Acties.

    Screenshot showing the Security section of the sidebar with Actions highlighted.

  2. Selecteer het tabblad Variabelen.

  3. Voor elk item in de tabel:

    1. Selecteer de variabele Nieuwe opslagplaats.
    2. Voer in het veld Naam de naam van de variabele in.
    3. Voer in het veld Waarde de waarde in die in de tabel wordt beschreven.
    4. Selecteer Variabele toevoegen.
    Naam variabele Variabele waarde
    AZURE_DEVCENTER De naam van uw ontwikkelaarscentrum
    AZURE_PROJECT Uw projectnaam
    AZURE_CATALOG Ingesteld op 'Omgevingen'
    AZURE_CATALOG_ITEM Ingesteld op 'FunctionApp'
    AZURE_SUBSCRIPTION_ID De id van uw Azure-abonnement
    AZURE_TENANT_ID Uw Azure-tenant-id

    Screenshot showing the variables page with the variables table.

3.4 Een persoonlijk GitHub-toegangstoken maken

Maak vervolgens een fijnmazig persoonlijk toegangstoken om uw Azure Deployment Environments-ontwikkelaarscentrum in staat te stellen verbinding te maken met uw opslagplaats en de omgevingscatalogus te gebruiken.

Notitie

Fijnmazige persoonlijke toegangstokens zijn momenteel in bèta en kunnen worden gewijzigd. Als u feedback wilt achterlaten, raadpleegt u de feedbackdiscussie.

  1. Selecteer uw profielfoto in de rechterbovenhoek van een pagina op GitHub.com en selecteer vervolgens Instellingen.

  2. Selecteer in de linkerzijbalk instellingen voor ontwikkelaars.

  3. Selecteer in de linkerzijbalk onder Persoonlijke toegangstokens de optie Fijnmazige tokens en selecteer vervolgens Nieuw token genereren.

    Screenshot showing the GitHub personal access token options, with Fine-grained tokens and Generate new token highlighted.

  4. Voer op de pagina Nieuw gedetailleerd persoonlijk toegangstoken onder Tokennaam een naam in voor het token.

  5. Selecteer onder Vervaldatum een vervaldatum voor het token.

  6. Selecteer uw GitHub-gebruiker onder Resource-eigenaar.

  7. Selecteer onder Toegang tot opslagplaatsen alleen opslagplaatsen en zoek en selecteer de opslagplaats die u hebt gemaakt in de vervolgkeuzelijst Geselecteerde opslagplaatsen.

    Screenshot showing GitHub repository access options, with Only select repositories highlighted.

  8. Selecteer onder Machtigingen opslagplaatsmachtigingen en wijzig inhoud in Alleen-lezen.

    Screenshot showing GitHub repository permissions with Contents highlighted.

  9. Selecteer Het token genereren.

  10. Kopieer en sla uw persoonlijke toegangstoken nu op. U kunt het niet meer weergeven.

3.5 Sla uw persoonlijke toegangstoken op in de sleutelkluis

Sla vervolgens het persoonlijke toegangstoken op als een sleutelkluisgeheim met de naam pat.

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Verbinding maken de catalogus naar uw ontwikkelaarscentrum

In Azure Deployment Environments is een catalogus een opslagplaats die een set omgevingsdefinities bevat. Catalogusitems bestaan uit een sjabloon voor infrastructuur als code (IaC) en een omgevingsbestand dat als manifest fungeert. De sjabloon definieert de omgeving en het omgevingsbestand bevat metagegevens over de sjabloon. Ontwikkelteams gebruiken omgevingsdefinities uit de catalogus om omgevingen te maken.

De sjabloon die u hebt gebruikt om uw GitHub-opslagplaats te maken, bevat een catalogus in de map Omgevingen .

De catalogus toevoegen aan uw ontwikkelaarscentrum

Vervang in de volgende opdracht de < Organization/Repository > naam van uw GitHub-organisatie en opslagplaats.

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Implementatie-identiteiten configureren

OpenID Verbinding maken met GitHub Actions is een verificatiemethode die gebruikmaakt van kortdurende tokens om beperkte beveiliging te bieden. Dit is de aanbevolen manier om GitHub Actions te verifiëren bij Azure.

U kunt een service-principal ook rechtstreeks verifiëren met behulp van een geheim, maar dat valt buiten het bereik van deze zelfstudie.

5.1 Implementatie-identiteiten genereren

  1. Registreer Microsoft Entra-toepassingen en service-principals voor elk van de drie omgevingstypen .

    Maak de Microsoft Entra-toepassing voor Dev.

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Met deze opdracht wordt JSON uitgevoerd met een id die u gebruikt bij het maken van federatieve referenties met Graph API en een appId (ook wel client-id genoemd).

    Stel de volgende omgevingsvariabelen in:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Herhaal dit voor test.

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    En voor Prod.

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Maak een service-principal voor elke toepassing.

    Voer de volgende opdracht uit om een nieuwe service-principal voor Dev te maken.

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Met deze opdracht wordt JSON-uitvoer gegenereerd met een andere id en wordt in de volgende stap gebruikt.

    Stel de volgende omgevingsvariabelen in:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Herhaal dit voor test.

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    En voor Prod.

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Voer de volgende opdrachten uit om een nieuwe federatieve identiteitsreferenties te maken voor elke Active Directory-toepassing.

    Vervang in elk van de drie volgende opdrachten door < Organization/Repository > de naam van uw GitHub-organisatie en opslagplaats.

    Maak de federatieve identiteitsreferentie voor Dev.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    Voor test.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    En voor Prod.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Rollen toewijzen aan implementatie-identiteiten

  1. Wijs elke implementatie-id de rol Lezer toe aan het project.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Wijs elke implementatie-id de gebruikersrol Implementatieomgevingen toe aan het bijbehorende omgevingstype.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. GitHub-omgevingen configureren

Met GitHub-omgevingen kunt u omgevingen configureren met beveiligingsregels en geheimen. Een werkstroomtaak die verwijst naar een omgeving, moet alle beveiligingsregels voor de omgeving volgen voordat de geheimen van de omgeving worden uitgevoerd of geopend.

Ontwikkel-, test- en Prod-omgevingen maken die zijn toegewezen aan de omgevingstypen in het Azure Deployment Environments-project.

Notitie

Omgevingen, omgevingsgeheimen en omgevingsbeveiligingsregels zijn beschikbaar in openbare opslagplaatsen voor alle producten. Voor toegang tot omgevingen, omgevingsgeheimen en implementatiebranches in privé - of interne opslagplaatsen moet u GitHub Pro, GitHub Team of GitHub Enterprise gebruiken. Voor toegang tot andere omgevingsbeveiligingsregels in privé - of interne opslagplaatsen moet u GitHub Enterprise gebruiken. Zie de producten van GitHub voor meer informatie.

6.1 De ontwikkelomgeving maken

  1. Navigeer op GitHub naar de hoofdpagina van uw opslagplaats.

  2. Selecteer Instellingen onder de naam van de opslagplaats. Als u het tabblad Instellingen niet ziet, selecteert u de vervolgkeuzelijst ... en selecteert u vervolgens Instellingen.

  3. Selecteer omgevingen in de zijbalk aan de linkerkant.

  4. Selecteer Nieuwe omgeving en voer Dev in voor de omgevingsnaam en selecteer Omgeving configureren.

    Screenshot showing the Environments Add pane, with the environment name Dev, and Configure Environment highlighted.

  5. Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.

    Screenshot showing the Environment Configure Dev pane, with Add secret highlighted.

  6. Voer voor Waarde de client-id (appId) in voor de *Dev**Microsoft Entra-app die u eerder hebt gemaakt (opgeslagen als de $DEV_AZURE_CLIENT_ID omgevingsvariabele).

    Screenshot of the Add secret box with the name AZURE CLIENT ID, the value set to an ID number, and add secret highlighted.

  7. Selecteer Geheim toevoegen.

6.2 De testomgeving maken

Ga terug naar de pagina met hoofdomgevingen door omgevingen in de linkerzijbalk te selecteren.

  1. Selecteer Nieuwe omgeving en voer Test voor de naam van de omgeving in en selecteer Omgeving configureren.

  2. Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.

  3. Voer voor Waarde de client-id (appId) in voor de Test Microsoft Entra-app die u eerder hebt gemaakt (opgeslagen als de $TEST_AZURE_CLIENT_ID omgevingsvariabele).

  4. Selecteer Geheim toevoegen.

6.3 De Prod-omgeving maken

Ga nogmaals terug naar de pagina met hoofdomgevingen door Omgevingen in de linkerzijbalk te selecteren

  1. Selecteer Nieuwe omgeving en voer Prod in als omgevingsnaam en selecteer Omgeving configureren.

  2. Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.

  3. Voer voor Waarde de client-id (appId) in voor de Prod Microsoft Entra-app die u eerder hebt gemaakt (opgeslagen als de $PROD_AZURE_CLIENT_ID omgevingsvariabele).

  4. Selecteer Geheim toevoegen.

Stel uzelf vervolgens in als een vereiste revisor voor deze omgeving. Wanneer u probeert te implementeren naar Prod, wachten de GitHub Actions op een goedkeuring voordat u begint. Terwijl een taak wacht op goedkeuring, heeft deze de status Wachten. Als een taak niet binnen 30 dagen is goedgekeurd, mislukt deze automatisch.

Zie Omgevingen gebruiken voor implementatie voor meer informatie over omgevingen en vereiste goedkeuringen.

  1. Selecteer Vereiste revisoren.

  2. Zoek en selecteer uw GitHub-gebruiker. U kunt maximaal zes personen of teams invoeren. Slechts één van de vereiste revisoren moet de taak goedkeuren om door te gaan.

  3. Selecteer Beveiligingsregels opslaan.

Configureer ten slotte main als de implementatiebranch:

  1. Kies geselecteerde vertakkingen in de vervolgkeuzelijst Implementatievertakkingen.

  2. Selecteer Implementatiebranchregel toevoegen en voer dit in main voor het branchnaampatroon.

  3. Selecteer Regel toevoegen.

7. De CI/CD-pijplijn testen

In deze sectie gaat u enkele wijzigingen aanbrengen in de opslagplaats en de CI/CD-pijplijn testen.

7.1 Kloon de opslagplaats

  1. In uw terminal gaat u naar een map waarin u de opslagplaats lokaal wilt klonen.

  2. Kloon de opslagplaats. Zorg ervoor dat u de volgende opdracht vervangt < Organization/Repository > door de naam van uw GitHub-organisatie en opslagplaats.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Navigeer naar de gekloonde map.

    cd <repository>
    
  4. Maak vervolgens een nieuwe vertakking en publiceer deze op afstand.

    git checkout -b feature1
    
    git push -u origin feature1
    

    Er wordt een nieuwe omgeving gemaakt in Azure die specifiek is voor deze vertakking.

  5. Navigeer op GitHub naar de hoofdpagina van uw zojuist gemaakte opslagplaats.

  6. Selecteer Acties onder de naam van de opslagplaats.

    Er wordt nu een nieuwe werkstroom omgeving maken uitgevoerd.

7.2 Breng een wijziging aan in de code

  1. Open de lokaal gekloonde opslagplaats in VS Code.

  2. In de ADE. Zelfstudiemap , breng een wijziging aan in een bestand.

  3. Sla uw wijziging op.

7.3 Push uw wijzigingen om de omgeving bij te werken

  1. Faseer uw wijzigingen en push naar de feature1 vertakking.

    git add .
    git commit -m '<commit message>'
    git push
    
  2. Op de pagina Acties van uw opslagplaats ziet u een nieuwe updateomgevingswerkstroom die wordt uitgevoerd.

7.4 Een pull-aanvraag maken

  1. Maak een GitHub-pull-aanvraag main <- feature1.

  2. Op de pagina Acties van uw opslagplaats ziet u dat er een nieuwe werkstroom wordt gestart om een omgeving te maken die specifiek is voor de pull-aanvraag met behulp van het testomgevingstype.

7.5 De pull-aanvraag samenvoegen

  1. Navigeer op GitHub naar de pull-aanvraag die u hebt gemaakt.

  2. Voeg de pull-aanvraag samen.

    Uw wijzigingen worden gepubliceerd in de productieomgeving en de vertakkings- en pull-aanvraagomgevingen worden verwijderd.

Resources opschonen

Als u niet van plan bent om een van de resources te gebruiken die u hebt gemaakt, verwijdert u deze zodat er geen extra kosten in rekening worden gebracht. Als u de voorbeeldtoepassing in een andere resourcegroep hebt geïmplementeerd, kunt u de volgende stappen herhalen.

Resources verwijderen met behulp van Azure Portal:

  1. Selecteer de menuknop in de linkerbovenhoek en selecteer vervolgens Resourcegroepen.

  2. Selecteer de resourcegroep die u hebt gemaakt uit de lijst.

  3. Selecteer Resourcegroep verwijderen.

  4. Voer de naam van de resourcegroup in. Selecteer daarna Verwijderen.

Als u resources wilt verwijderen met behulp van de Azure CLI, voert u de volgende opdracht in:

az group delete --name <my-dev-center-rg>

Vergeet niet dat als u de resourcegroep verwijdert, alle resources erin worden verwijderd.