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.
Genereer een nieuwe GitHub-opslagplaats op basis van de voorbeeldsjabloon:
Als u geen betaald GitHub-account hebt, stelt u uw opslagplaats in op Openbare.
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.
Als deze nog niet is geopend, gaat u naar de hoofdpagina van uw opslagplaats.
Selecteer Instellingen in het menu bovenaan het venster:
Selecteer in het gedeelte Code en automatisering van de linkerzijbalk Branches:
Selecteer onder Regels voor takbeschermingNieuwe takregel set toevoegen:
Voer op de pagina Nieuwe vertakkingsregelset, in de naam van regelset, CI-CD-tutorial-rulesetin:
Selecteer onder doelvertakkingenDoel toevoegenen selecteer vervolgens Standaardvertakking opnemen of Alle vertakkingen opnemen:
Selecteer onder VertakkingsregelsEen pull-aanvraag vereisen voordat usamenvoegt:
U kunt desgewenst meer beveiligingsregels inschakelen.
Klik op Creëren.
3.3 Opslagplaatsvariabelen configureren
Selecteer in de sectie Security van de zijbalk Geheimen en variabelenen selecteer vervolgens Acties:
Selecteer het tabblad Variabelen.
Voor elk item in de volgende tabel:
- Selecteer nieuwe opslagplaatsvariabele.
- 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.
- 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
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.
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 toegangstokensfijnmazige tokensen selecteer vervolgens Nieuw token genereren:
Voer op de pagina Nieuwe fijnmazige persoonlijke toegangstoken, onder Tokennaam, een naam in voor het token.
Selecteer onder Vervaldatumeen vervaldatum voor het token.
Selecteer uw GitHub-gebruikersnaam onder Resource-eigenaar.
Selecteer onder OpslagplaatstoegangAlleen opslagplaatsen selecteren. Zoek en selecteer onder Geselecteerde opslagplaatsende opslagplaats die u hebt gemaakt:
Selecteer onder machtigingenopslagplaatsmachtigingenen wijzig inhoud in alleen-lezen:
Selecteer Token genereren.
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
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 eenappId
(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>
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>
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
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
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
Ga in 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.
In de zijbalk aan de linkerkant, selecteer Omgevingen.
Selecteer nieuwe omgeving en voer Dev- in voor de naam van de omgeving en selecteer vervolgens Omgeving configureren:
Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.
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
):Selecteer Geheimetoevoegen.
6.2 De testomgeving maken
Ga terug naar de hoofdomgevingspagina door Omgevingen te selecteren in de linkerzijbalk.
Selecteer Nieuwe omgeving, voer Test in voor de naam van de omgeving en selecteer vervolgens Omgeving configureren.
Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.
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
).Selecteer Geheimetoevoegen.
6.3 De Prod-omgeving maken
Ga nogmaals terug naar de hoofdpagina met omgevingen door Omgevingen te selecteren in de linkerzijbalk.
Selecteer Nieuwe omgeving, voer Prod- in voor de naam van de omgeving en selecteer vervolgens Omgeving configureren.
Selecteer onder OmgevingsgeheimenOmgevingsgeheim toevoegenen voer AZURE_CLIENT_ID in het vak Naam in.
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
).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.
Selecteer Vereiste revisoren.
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.
Selecteer Beveiligingsregels opslaan.
Ten slotte, configureer main
als de deployment branch.
Selecteer Geselecteerde vertakkingen en tagsin de lijst Deployment-vertakkingen en tags.
Selecteer Implementatievertakking of tagregel toevoegen, zorg ervoor dat Ref type: Vertakking is geselecteerd en voer main in het Naam patroon in.
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
Gebruik in Git Bash
cd
om over te schakelen naar een map waarin u de opslagplaats lokaal wilt klonen.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
Navigeer naar de gekloonde map:
cd <repository>
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.
Ga in GitHub naar de hoofdpagina van uw zojuist gemaakte opslagplaats.
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
Open de lokaal gekloonde opslagplaats in Visual Studio Code.
In de ADE.Tutorial map, maak een wijziging 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
-tak.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. Het testomgevingstype wordt gebruikt.
7.5 De pull-aanvraag samenvoegen
Ga in 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.
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:
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.