Delen 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 hoofd--branch wordt altijd als productie beschouwd.
  • U creëert feature branches vanuit de hoofdtak.
  • U maakt pull-aanvragen om functiebranches samen te voegen in hoofd-.

De werkstroom in deze handleiding is een vereenvoudigd voorbeeld. Werkstromen in de praktijk kunnen complexer zijn.

Voordat u aan deze zelfstudie begint, kunt u vertrouwd raken met de onderdelen en concepten van implementatieomgevingen door belangrijkste concepten voor Azure Deployment Environmentste bekijken.

In deze zelfstudie leert u het volgende:

  • Een ontwikkelaarscentrum maken en configureren
  • Een sleutelkluis maken
  • Een GitHub-opslagplaats maken en configureren
  • De catalogus verbinden met uw ontwikkelaarscentrum
  • Implementatie-identiteiten configureren
  • GitHub-omgevingen configureren
  • De CI/CD-pijplijn testen

Vereiste voorwaarden

Product Vereisten
Azuur - Een Azure-abonnement.
- Eigenaarsmachtigingen voor het Azure-abonnement.
- Azure CLI geïnstalleerd.
Git - Een GitHub-account.
- Git- geïnstalleerd.

1. Een ontwikkelaarscentrum maken en configureren

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

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

1.1 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 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

Hint

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

Haal uw 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.

Een resourcegroep maken:

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

Een ontwikkelaarscentrum maken:

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

De vorige opdracht geeft JSON-uitvoer. Sla de waarden voor id en identity.principalId op als omgevingsvariabelen om later te gebruiken:

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

1.3 Wijs de rol van eigenaar van het ontwikkelaarscentrum-identiteit toe aan het 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 zouden het ontwikkelaarscentrum en de doelimplementatieabonnementen waarschijnlijk afzonderlijke abonnementen zijn 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 en productie.

Maak drie nieuwe omgevingstypen: Dev, Testen 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 toegangspunt voor het ontwikkelteam. Elk project is gekoppeld aan een ontwikkelaarscentrum.

Een project maken:

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

De vorige opdracht geeft JSON weer. Sla de id waarde op als een omgevingsvariabele om later te gebruiken:

AZURE_PROJECT_ID=<id>

Wijs uzelf de rol DevCenter-projectbeheerder 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 opnieuw de id op uit de JSON-uitvoer van de vorige opdracht als een omgevingsvariabele:

AZURE_KEYVAULT_ID=<id>

Geef uzelf de rol Key Vault-beheerder 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 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. Genereer een nieuwe GitHub-opslagplaats op basis van de voorbeeldsjabloon:

    schermafbeelding van de GitHub-pagina voor het maken van een nieuwe opslagplaats.

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

  3. Selecteer Opslagplaats maken.

3.2 Beveilig de hoofdbranch van de opslagplaats

U kunt belangrijke branches beveiligen door branch-beschermingsregels in te stellen. Beveiligingsregels bepalen of medewerkers een vertakking kunnen verwijderen of forceren om naar de vertakking te pushen. Ze stellen ook vereisten in voor pushes naar de branch, zoals het doorgeven van statuschecks of het afdwingen van een lineaire commitgeschiedenis.

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. Voor meer informatie, zie GitHub-plannen.

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

  2. Selecteer Instellingen in het menu bovenaan het venster:

    schermopname van de pagina GitHub-opslagplaats. Instellingen zijn gemarkeerd.

  3. Selecteer in het gedeelte Code en automatisering van de linkerzijbalk Branches:

    schermopname van de pagina Instellingen. Vertakkingen zijn gemarkeerd.

  4. Selecteer onder Regels voor takbeschermingNieuwe takregel set toevoegen:

    Schermopname van de pagina Regels voor vertakkingsbeveiliging. Regelset voor vertaktak toevoegen is gemarkeerd.

  5. Voer op de pagina Nieuwe vertakkingsregelset, in de naam van regelset, CI-CD-tutorial-rulesetin:

    schermopname van het vak Naam van regelset. De naam van de regelset is gemarkeerd.

  6. Selecteer onder doelvertakkingenDoel toevoegenen selecteer vervolgens Standaardvertakking opnemen of Alle vertakkingen opnemen:

    Schermopname van de sectie Doelbranches. De twee opties voor Doel toevoegen zijn gemarkeerd.

  7. Selecteer onder VertakkingsregelsEen pull-aanvraag vereisen voordat usamenvoegt:

    Schermopname met vertakkingsregels. Het selectievakje 'Een pull-aanvraag vereisen voordat samenvoegen' is geselecteerd en gemarkeerd.

  8. U kunt desgewenst meer beveiligingsregels inschakelen.

  9. Klik op Creëren.

3.3 Opslagplaatsvariabelen configureren

  1. Selecteer in de sectie Security van de zijbalk Geheimen en variabelenen selecteer vervolgens Acties:

    Schermopname van de sectie Beveiliging van de zijbalk. Acties zijn gemarkeerd.

  2. Selecteer het tabblad Variabelen.

  3. Voor elk item in de volgende tabel:

    1. Selecteer nieuwe opslagplaatsvariabele.
    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. Kies Variabele toevoegen.
    Variabelenaam Variabele waarde
    AZURE_DEVCENTER De naam van uw ontwikkelaarscentrum
    AZURE_PROJECT Uw projectnaam
    AZURE_CATALOG Instellen voor omgevingen
    AZURE_CATALOG_ITEM Instellen op FunctionApp-
    AZURE_SUBSCRIPTION_ID Uw Azure-abonnements-id
    AZURE_TENANT_ID Uw Azure-tenant-id

    Schermopname van de pagina variabelen met de tabel variabelen.

3.4 Een persoonlijk GitHub-toegangstoken maken

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

Notitie

U kunt feedback geven over verfijnde persoonlijke toegangstokens in de feedback discussie .

  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 toegangstokensfijnmazige tokensen selecteer vervolgens Nieuw token genereren:

    schermopname met de persoonlijke toegangstokenopties van GitHub. De fijnmazige tokens en opties voor het genereren van een nieuw token zijn gemarkeerd.

  4. Voer op de pagina Nieuwe fijnmazige persoonlijke toegangstoken, onder Tokennaam, een naam in voor het token.

  5. Selecteer onder Vervaldatumeen vervaldatum voor het token.

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

  7. Selecteer onder OpslagplaatstoegangAlleen opslagplaatsen selecteren. Zoek en selecteer onder Geselecteerde opslagplaatsende opslagplaats die u hebt gemaakt:

    Schermopname van toegangsopties voor GitHub-opslagplaatsen. De optie Alleen opslagplaatsen selecteren is gemarkeerd.

  8. Selecteer onder machtigingenopslagplaatsmachtigingenen wijzig inhoud in alleen-lezen:

    Schermopname met machtigingen voor GitHub-opslagplaatsen. De sectie Inhoud is gemarkeerd.

  9. Selecteer Token genereren.

  10. Kopieer en sla uw persoonlijke toegangstoken op. U kunt deze 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. Verbind de catalogus met uw ontwikkelaarscentrum

In Azure Deployment Environments is een -catalogus een opslagplaats met een set omgevingsdefinities. Catalogusitems bestaan uit een IaC-sjabloon (Infrastructure-as-Code) 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 < Organization/Repository > door de 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 Connect met GitHub Actions is een verificatiemethode die gebruikmaakt van kortstondige tokens om beveiligde beveiliging te bieden. Dit is de aanbevolen manier om GitHub Actions te verifiëren bij Azure.

U kunt een service-principal ook rechtstreeks authenticeren met een geheim, maar dat valt buiten het bereik van deze handleiding.

5.1 Implementatie-identiteiten genereren

  1. Registreer Microsoft Entra-toepassingen en serviceprincipals voor elk van de drie soorten omgevingen.

    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 een client-idgenoemd).

    Stel de volgende omgevingsvariabelen in:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Herhaal deze stappen voor Test:

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

    Herhaal de stappen opnieuw 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 te maken voor Dev:

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

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

    Stel de volgende omgevingsvariabele in:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Herhaal deze stappen voor Test:

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

    Herhaal de stappen opnieuw 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 identiteitsreferentie te maken voor elke Microsoft Entra-toepassing.

    Vervang in elk van de drie volgende opdrachten < Organization/Repository > door 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"]}'
    

    Maak de inloggegevens 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"]}'
    

    Maak de referentie 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-identiteit de rol Lezer toe binnen 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 de gebruikersrol Implementatieomgevingen toe aan het bijbehorende omgevingstype van elke implementatie-identiteit:

    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.

Maak Dev, Testen Prod-omgevingen 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 GitHub-plannenvoor meer informatie.

6.1 De ontwikkelomgeving maken

  1. Ga in 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. In de zijbalk aan de linkerkant, selecteer Omgevingen.

  4. Selecteer nieuwe omgeving en voer Dev- in voor de naam van de omgeving en selecteer vervolgens Omgeving configureren:

    schermopname met het deelvenster Omgevingen toevoegen/deelvenster. De naam van de omgeving is Dev en de knop Omgeving configureren is gemarkeerd.

  5. Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.

    schermopname van het deelvenster Omgeving/Dev configureren. Omgevingsgeheim toevoegen is gemarkeerd.

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

    Schermopname van het vak Geheim toevoegen. De naam is ingesteld op AZURE CLIENT-id, de waarde wordt ingesteld op een id-nummer en de knop Geheim toevoegen is gemarkeerd.

  7. Selecteer Geheimetoevoegen.

6.2 De testomgeving maken

Ga terug naar de hoofdomgevingspagina door Omgevingen te selecteren in de linkerzijbalk.

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

  2. Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.

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

  4. Selecteer Geheimetoevoegen.

6.3 De Prod-omgeving maken

Ga nogmaals terug naar de hoofdpagina met omgevingen door Omgevingen te selecteren in de linkerzijbalk.

  1. Selecteer Nieuwe omgeving, voer Prod- in voor de naam van de omgeving en selecteer vervolgens Omgeving configureren.

  2. Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.

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

  4. Selecteer Geheimetoevoegen.

Stel vervolgens uzelf in als een vereiste revisor voor deze omgeving. Wanneer er een poging wordt gedaan om te implementeren in Prod-, wacht 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 implementatievoor meer informatie over omgevingen en vereiste goedkeuringen.

  1. Selecteer Vereiste revisoren.

  2. Zoek en selecteer uw GitHub-gebruikersnaam. 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.

Ten slotte, configureer main als de deployment branch.

  1. Selecteer Geselecteerde vertakkingen en tagsin de lijst Deployment-vertakkingen en tags.

  2. Selecteer Implementatievertakking of tagregel toevoegen, zorg ervoor dat Ref type: Vertakking is geselecteerd en voer main in het Naam patroon in.

  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. Gebruik in Git Bash cd om over te schakelen naar een map waarin u de opslagplaats lokaal wilt klonen.

  2. Kloon de opslagplaats. Vervang < Organization/Repository > in de volgende opdracht 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 een nieuwe vertakking en publiceer deze extern:

    git checkout -b feature1
    
    git push -u origin feature1
    

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

  5. Ga in GitHub naar de hoofdpagina van uw zojuist gemaakte opslagplaats.

  6. Selecteer onder de naam van de opslagplaats Acties:

    Er zou een nieuw workflowproces voor het maken van een omgeving moeten worden uitgevoerd.

7.2 Breng een wijziging aan in de code

  1. Open de lokaal gekloonde opslagplaats in Visual Studio Code.

  2. In de ADE.Tutorial map, maak een wijziging 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-tak.

    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. Het testomgevingstype wordt gebruikt.

7.5 De pull-aanvraag samenvoegen

  1. Ga in 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.

Hulpmiddelen opruimen

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.