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.
Gebruik deze koppeling om een nieuwe GitHub-opslagplaats te genereren op basis van de voorbeeldsjabloon.
Als u geen betaald GitHub-account hebt, stelt u uw opslagplaats in op Openbaar.
Selecteer Opslagplaats maken van sjabloon.
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.
Als deze nog niet is geopend, gaat u naar de hoofdpagina van uw opslagplaats.
Selecteer Instellingen onder de naam van de opslagplaats. Als u het tabblad Instellingen niet ziet, selecteert u de vervolgkeuzelijst ... en selecteert u vervolgens Instellingen.
Selecteer Branches in de sectie Code en automatisering van de zijbalk.
Selecteer onder Vertakkingsbeveiligingsregels de optie Vertakkingsbeveiligingsregel toevoegen.
Voer onder Het patroon Vertakkingsnaam het veld in
main
.Selecteer onder Overeenkomende vertakkingen beveiligen de optie Een pull-aanvraag vereisen voordat u samenvoegt.
U kunt desgewenst meer beveiligingsregels inschakelen.
Selecteer Maken.
3.3 Opslagplaatsvariabelen configureren
Notitie
Configuratievariabelen voor GitHub Actions zijn bèta en kunnen worden gewijzigd.
Selecteer geheimen en variabelen in de sectie Beveiliging van de zijbalk en selecteer vervolgens Acties.
Selecteer het tabblad Variabelen.
Voor elk item in de tabel:
- Selecteer de variabele Nieuwe opslagplaats.
- Voer in het veld Naam de naam van de variabele in.
- Voer in het veld Waarde de waarde in die in de tabel wordt beschreven.
- 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
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.
Selecteer uw profielfoto in de rechterbovenhoek van een pagina op GitHub.com en selecteer vervolgens Instellingen.
Selecteer in de linkerzijbalk instellingen voor ontwikkelaars.
Selecteer in de linkerzijbalk onder Persoonlijke toegangstokens de optie Fijnmazige tokens en selecteer vervolgens Nieuw token genereren.
Voer op de pagina Nieuw gedetailleerd persoonlijk toegangstoken onder Tokennaam een naam in voor het token.
Selecteer onder Vervaldatum een vervaldatum voor het token.
Selecteer uw GitHub-gebruiker onder Resource-eigenaar.
Selecteer onder Toegang tot opslagplaatsen alleen opslagplaatsen en zoek en selecteer de opslagplaats die u hebt gemaakt in de vervolgkeuzelijst Geselecteerde opslagplaatsen.
Selecteer onder Machtigingen opslagplaatsmachtigingen en wijzig inhoud in Alleen-lezen.
Selecteer Het token genereren.
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
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 eenappId
(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>
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>
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
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
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
Navigeer op GitHub naar de hoofdpagina van uw opslagplaats.
Selecteer Instellingen onder de naam van de opslagplaats. Als u het tabblad Instellingen niet ziet, selecteert u de vervolgkeuzelijst ... en selecteert u vervolgens Instellingen.
Selecteer omgevingen in de zijbalk aan de linkerkant.
Selecteer Nieuwe omgeving en voer Dev in voor de omgevingsnaam en selecteer Omgeving configureren.
Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.
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).Selecteer Geheim toevoegen.
6.2 De testomgeving maken
Ga terug naar de pagina met hoofdomgevingen door omgevingen in de linkerzijbalk te selecteren.
Selecteer Nieuwe omgeving en voer Test voor de naam van de omgeving in en selecteer Omgeving configureren.
Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.
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).Selecteer Geheim toevoegen.
6.3 De Prod-omgeving maken
Ga nogmaals terug naar de pagina met hoofdomgevingen door Omgevingen in de linkerzijbalk te selecteren
Selecteer Nieuwe omgeving en voer Prod in als omgevingsnaam en selecteer Omgeving configureren.
Selecteer Onder Omgevingsgeheimen de optie Geheim toevoegen en voer AZURE_CLIENT_ID in als naam.
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).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.
Selecteer Vereiste revisoren.
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.
Selecteer Beveiligingsregels opslaan.
Configureer ten slotte main
als de implementatiebranch:
Kies geselecteerde vertakkingen in de vervolgkeuzelijst Implementatievertakkingen.
Selecteer Implementatiebranchregel toevoegen en voer dit in
main
voor het branchnaampatroon.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
In uw terminal gaat u naar een map waarin u de opslagplaats lokaal wilt klonen.
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
Navigeer naar de gekloonde map.
cd <repository>
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.
Navigeer op GitHub naar de hoofdpagina van uw zojuist gemaakte opslagplaats.
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
Open de lokaal gekloonde opslagplaats in VS Code.
In de ADE. Zelfstudiemap , breng een wijziging aan in een bestand.
Sla uw wijziging op.
7.3 Push uw wijzigingen om de omgeving bij te werken
Faseer uw wijzigingen en push naar de
feature1
vertakking.git add . git commit -m '<commit message>' git push
Op de pagina Acties van uw opslagplaats ziet u een nieuwe updateomgevingswerkstroom die wordt uitgevoerd.
7.4 Een pull-aanvraag maken
Maak een GitHub-pull-aanvraag
main <- feature1
.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
Navigeer op GitHub naar de pull-aanvraag die u hebt gemaakt.
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:
Selecteer de menuknop in de linkerbovenhoek en selecteer vervolgens Resourcegroepen.
Selecteer de resourcegroep die u hebt gemaakt uit de lijst.
Selecteer Resourcegroep verwijderen.
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.