Samouczek: wdrażanie środowisk w ciągłej integracji/ciągłego wdrażania przy użyciu usług GitHub i Azure Deployment Environment
Z tego samouczka dowiesz się, jak zintegrować środowiska wdrażania platformy Azure z potokiem ciągłej integracji/ciągłego wdrażania. Możesz użyć dowolnego dostawcy GitOps, który obsługuje ciągłą integrację/ciągłe wdrażanie, na przykład GitHub Actions, Azure Arc, GitLab lub Jenkins.
Ciągła integracja i ciągłe dostarczanie (CI/CD) to podejście programistyczne, które pomaga zespołom zautomatyzować proces tworzenia, testowania i wdrażania zmian oprogramowania. Ciągła integracja/ciągłe wdrażanie umożliwia częstsze wydawanie zmian oprogramowania i większe zaufanie.
Używasz przepływu pracy, który zawiera trzy gałęzie: główne, deweloperskie i testowe.
- Gałąź główna jest zawsze uważana za produkcyjną.
- Gałęzie funkcji są tworzone z gałęzi głównej.
- Żądania ściągnięcia są tworzone w celu scalenia gałęzi funkcji z gałęziami głównymi.
Ten przepływ pracy jest małym przykładem na potrzeby tego samouczka. Rzeczywiste przepływy pracy mogą być bardziej złożone.
Przed rozpoczęciem tego samouczka możesz zapoznać się z zasobami i pojęciami dotyczącymi środowisk wdrażania, przeglądając artykuł Kluczowe pojęcia dotyczące środowisk wdrażania platformy Azure.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie i konfigurowanie centrum deweloperskiego
- Tworzenie magazynu kluczy
- Tworzenie i konfigurowanie repozytorium GitHub
- Połączenie katalogu do centrum deweloperów
- Konfigurowanie tożsamości wdrożenia
- Konfigurowanie środowisk usługi GitHub
- Testowanie potoku ciągłej integracji/ciągłego wdrażania
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją.
- Uprawnienia właściciela subskrypcji platformy Azure.
- Konto usługi GitHub.
- Jeśli nie masz takiego konta, zarejestruj się bezpłatnie.
- Zainstalowanie oprogramowania Git.
- Zainstaluj interfejs wiersza polecenia platformy Azure.
1. Tworzenie i konfigurowanie centrum deweloperskiego
W tej sekcji utworzysz centrum deweloperskie środowiska wdrażania platformy Azure i projekt z trzema typami środowisk: Tworzenie, testowanie i prod.
- Typ środowiska Prod zawiera jedno środowisko produkcyjne.
- Nowe środowisko jest tworzone w środowisku deweloperskim dla każdej gałęzi funkcji.
- Nowe środowisko jest tworzone w obszarze Test dla każdego żądania ściągnięcia.
1.1 Konfigurowanie interfejsu wiersza polecenia platformy Azure
Aby rozpocząć, zaloguj się do platformy Azure. Uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.
az login
Następnie zainstaluj rozszerzenie devcenter platformy Azure dla interfejsu wiersza polecenia platformy Azure.
az extension add --name devcenter --upgrade
Po zainstalowaniu bieżącego Microsoft.DevCenter
rozszerzenia zarejestruj przestrzeń nazw.
az provider register --namespace Microsoft.DevCenter
Napiwek
W tym samouczku zapiszesz kilka wartości jako zmiennych środowiskowych do późniejszego użycia. Możesz również zarejestrować te wartości w innym miejscu, aby upewnić się, że są one dostępne w razie potrzeby.
Pobierz identyfikator użytkownika i ustaw go na zmienną środowiskową na później:
MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)
Pobierz identyfikator subskrypcji dla bieżącej subskrypcji.
AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)
Pobierz identyfikator dzierżawy dla bieżącej dzierżawy.
AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)
Ustaw następujące zmienne środowiskowe:
LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>
Uwaga
Musisz użyć globalnie unikatowej nazwy magazynu kluczy. W przeciwnym razie może zostać wyświetlony następujący błąd: 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. Tworzenie centrum deweloperskiego
Centrum deweloperów to kolekcja projektów i środowisk, które mają podobne ustawienia. Centra deweloperów zapewniają dostęp do katalogu szablonów i artefaktów, których można użyć do tworzenia środowisk. Centra deweloperów zapewniają również sposób zarządzania dostępem do środowisk i projektów.
Utwórz grupę zasobów.
az group create \
--name $AZURE_RESOURCE_GROUP \
--location $LOCATION
Utwórz nowe centrum deweloperskie.
az devcenter admin devcenter create \
--name $AZURE_DEVCENTER \
--identity-type SystemAssigned \
--resource-group $AZURE_RESOURCE_GROUP \
--location $LOCATION
Poprzednie polecenie zwraca dane JSON. Zapisz wartości zmiennych id
środowiskowych i identity.principalId
jako zmienne środowiskowe do późniejszego użycia.
AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>
1.3 Przypisywanie roli właściciela tożsamości centrum deweloperskiego w subskrypcji
Centrum deweloperów musi mieć uprawnienia do przypisywania ról w subskrypcjach skojarzonych z typami środowiska.
Aby zmniejszyć niepotrzebną złożoność, w tym samouczku użyjesz jednej subskrypcji centrum deweloperskiego i wszystkich typów środowisk. W praktyce subskrypcje centrum deweloperów i docelowych wdrożeń prawdopodobnie będą oddzielnymi subskrypcjami z zastosowaniem różnych zasad.
az role assignment create \
--scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
--role Owner \
--assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
--assignee-principal-type ServicePrincipal
1.4. Tworzenie typów środowisk
Na poziomie centrum deweloperskiego typy środowisk definiują środowiska, które zespoły deweloperskie mogą tworzyć, takie jak tworzenie, testowanie, piaskownica, przedprodukcja lub produkcja.
Utwórz trzy nowe typy środowisk: Tworzenie, testowanie i 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 Tworzenie projektu
Projekt jest punktem dostępu dla zespołu deweloperów. Każdy projekt jest skojarzony z centrum deweloperów.
Tworzenie nowego projektu.
az devcenter admin project create \
--name $AZURE_PROJECT \
--resource-group $AZURE_RESOURCE_GROUP \
--location $LOCATION \
--dev-center-id $AZURE_DEVCENTER_ID
Poprzednie polecenie zwraca dane JSON. id
Zapisz wartość jako zmienną środowiskową do późniejszego użycia.
AZURE_PROJECT_ID=<id>
Przypisz sobie rolę Administracja projektu DevCenter w projekcie.
az role assignment create \
--scope "$AZURE_PROJECT_ID" \
--role "DevCenter Project Admin" \
--assignee-object-id $MY_AZURE_ID \
--assignee-principal-type User
1.6. Tworzenie typów środowisk projektu
Na poziomie projektu inżynierowie platformy określają, które typy środowisk są odpowiednie dla zespołu deweloperskiego.
Utwórz nowy typ środowiska projektu dla każdego typu środowiska utworzonego w centrum deweloperów.
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. Tworzenie magazynu kluczy
W tej sekcji utworzysz nowy magazyn kluczy. Ten magazyn kluczy zostanie użyty w dalszej części samouczka, aby zapisać osobisty token dostępu z usługi GitHub.
az keyvault create \
--name $AZURE_KEYVAULT \
--resource-group $AZURE_RESOURCE_GROUP \
--location $LOCATION \
--enable-rbac-authorization true
Ponownie zapisz dane id
wyjściowe JSON poprzedniego polecenia jako zmienną środowiskową.
AZURE_KEYVAULT_ID=<id>
Nadaj sobie rolę Administracja istratora usługi Key Vault w nowym magazynie kluczy.
az role assignment create \
--scope $AZURE_KEYVAULT_ID \
--role "Key Vault Administrator" \
--assignee-object-id $MY_AZURE_ID \
--assignee-principal-type User
Przypisz tożsamość centrum deweloperskiego rolę użytkownika wpisów tajnych usługi Key Vault.
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. Tworzenie i konfigurowanie repozytorium GitHub
W tej sekcji utworzysz nowe repozytorium GitHub do przechowywania katalogu. Środowiska wdrażania platformy Azure obsługują repozytoria GitHub i Azure DevOps. W tym samouczku użyjesz usługi GitHub.
3.1 Tworzenie nowego repozytorium GitHub
W tym kroku utworzysz nowe repozytorium na koncie usługi GitHub, które ma wstępnie zdefiniowaną strukturę katalogów, gałęzie i pliki. Te elementy są generowane z przykładowego repozytorium szablonów.
Użyj tego linku, aby wygenerować nowe repozytorium GitHub na podstawie przykładowego szablonu.
Jeśli nie masz płatnego konta usługi GitHub, ustaw repozytorium na Wartość Publiczna.
Wybierz pozycję Utwórz repozytorium na podstawie szablonu.
Na karcie Akcje zwróć uwagę, że akcja Utwórz środowisko kończy się niepowodzeniem. To zachowanie jest oczekiwane. Możesz przejść do następnego kroku.
3.2 Ochrona głównej gałęzi repozytorium
Ważne gałęzie można chronić, ustawiając reguły ochrony gałęzi. Reguły ochrony określają, czy współpracownicy mogą usuwać lub wymuszać wypychanie do gałęzi. Ustawiają również wymagania dotyczące wszystkich wypchnięć do gałęzi, takich jak przekazywanie testów stanu lub liniowa historia zatwierdzeń.
Uwaga
Chronione gałęzie są dostępne w repozytoriach publicznych za pomocą usługi GitHub Free i GitHub Free dla organizacji oraz w repozytoriach publicznych i prywatnych za pomocą usług GitHub Pro, GitHub Team, GitHub Enterprise Cloud i GitHub Enterprise Server. Aby uzyskać więcej informacji, zobacz Produkty usługi GitHub.
Jeśli jeszcze nie jest otwarty, przejdź do strony głównej repozytorium.
W obszarze nazwy repozytorium wybierz pozycję Ustawienia. Jeśli nie widzisz karty Ustawienia, wybierz menu rozwijane ..., a następnie wybierz pozycję Ustawienia.
W sekcji Kod i automatyzacja paska bocznego wybierz pozycję Gałęzie.
W obszarze Reguły ochrony gałęzi wybierz pozycję Dodaj regułę ochrony gałęzi.
W obszarze Wzorzec nazwy gałęzi wprowadź .
main
W obszarze Ochrona pasujących gałęzi wybierz pozycję Wymagaj żądania ściągnięcia przed scaleniem.
Opcjonalnie możesz włączyć więcej reguł ochrony.
Wybierz pozycję Utwórz.
3.3. Konfigurowanie zmiennych repozytorium
Uwaga
Zmienne konfiguracji funkcji GitHub Actions są w wersji beta i mogą ulec zmianie.
W sekcji Zabezpieczenia paska bocznego wybierz pozycję Wpisy tajne i zmienne, a następnie wybierz pozycję Akcje.
Wybierz kartę Zmienne.
Dla każdego elementu w tabeli:
- Wybierz pozycję Nowa zmienna repozytorium.
- W polu Nazwa wprowadź nazwę zmiennej.
- W polu Wartość wprowadź wartość opisaną w tabeli.
- Wybierz pozycję Dodaj zmienną.
Nazwa zmiennej Wartość zmiennej AZURE_DEVCENTER Nazwa centrum deweloperskiego AZURE_PROJECT Nazwa projektu AZURE_CATALOG Ustaw wartość "Środowiska" AZURE_CATALOG_ITEM Ustaw wartość "FunctionApp" AZURE_SUBSCRIPTION_ID Identyfikator subskrypcji platformy Azure AZURE_TENANT_ID Identyfikator dzierżawy platformy Azure
3.4 Tworzenie osobistego tokenu dostępu usługi GitHub
Następnie utwórz szczegółowe osobiste tokeny dostępu, aby umożliwić centrum deweloperów środowisk wdrażania platformy Azure łączenie się z repozytorium i korzystanie z katalogu środowiska.
Uwaga
Szczegółowe osobiste tokeny dostępu są obecnie w wersji beta i mogą ulec zmianie. Aby zostawić opinię, zobacz dyskusję na temat opinii.
W prawym górnym rogu dowolnej strony na GitHub.com wybierz swoje zdjęcie profilowe, a następnie wybierz pozycję Ustawienia.
Na lewym pasku bocznym wybierz pozycję Ustawienia dewelopera.
Na pasku bocznym po lewej stronie w obszarze Osobiste tokeny dostępu wybierz pozycję Szczegółowe tokeny, a następnie wybierz pozycję Generuj nowy token.
Na stronie Nowy szczegółowe osobiste tokeny dostępu w obszarze Nazwa tokenu wprowadź nazwę tokenu.
W obszarze Wygaśnięcie wybierz wygaśnięcie tokenu.
Wybierz użytkownika usługi GitHub w obszarze Właściciel zasobu.
W obszarze Dostęp do repozytorium wybierz pozycję Tylko wybierz repozytoria , a następnie na liście rozwijanej Wybrane repozytoria wyszukaj i wybierz utworzone repozytorium.
W obszarze Uprawnienia wybierz pozycję Uprawnienia repozytorium i zmień wartość Zawartość na Tylko do odczytu.
Wybierz pozycję Generuj token.
Skopiuj i zapisz osobisty token dostępu teraz. Nie można go ponownie wyświetlić.
3.5 Zapisywanie osobistego tokenu dostępu do magazynu kluczy
Następnie zapisz osobisty token dostępu jako wpis tajny magazynu kluczy o nazwie pat.
az keyvault secret set \
--name pat \
--vault-name $AZURE_KEYVAULT \
--value <personalAccessToken>
4. Połączenie katalogu do centrum deweloperów
W środowiskach wdrażania platformy Azure wykaz to repozytorium zawierające zestaw definicji środowiska. Elementy wykazu składają się z szablonu infrastruktury jako kodu (IaC) i pliku środowiska, który działa jako manifest. Szablon definiuje środowisko, a plik środowiska zawiera metadane dotyczące szablonu. Zespoły deweloperów używają definicji środowiska z katalogu do tworzenia środowisk.
Szablon użyty do utworzenia repozytorium GitHub zawiera katalog w folderze Środowiska .
Dodawanie wykazu do centrum deweloperów
W poniższym poleceniu zastąp < Organization/Repository >
ciąg nazwą organizacji i repozytorium GitHub.
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. Konfigurowanie tożsamości wdrożenia
OpenID Połączenie z funkcją GitHub Actions to metoda uwierzytelniania, która używa tokenów krótkotrwałych w celu zapewnienia bezpieczeństwa ze wzmocnionymi zabezpieczeniami. Jest to zalecany sposób uwierzytelniania funkcji GitHub Actions na platformie Azure.
Możesz również uwierzytelnić jednostkę usługi bezpośrednio przy użyciu wpisu tajnego, ale nie jest to możliwe w tym samouczku.
5.1 Generowanie tożsamości wdrożenia
Zarejestruj aplikacje i jednostki usługi firmy Microsoft dla każdego z trzech typów środowisk.
Utwórz aplikację Microsoft Entra dla deweloperów.
az ad app create --display-name "$AZURE_PROJECT-Dev"
To polecenie zwraca dane JSON z
id
identyfikatorem używanym podczas tworzenia poświadczeń federacyjnych przy użyciu interfejsu API programu Graph oraz (nazywanego również identyfikatoremappId
klienta).Ustaw następujące zmienne środowiskowe:
DEV_AZURE_CLIENT_ID=<appId> DEV_APPLICATION_ID=<id>
Powtórz dla testu.
az ad app create --display-name "$AZURE_PROJECT-Test"
TEST_AZURE_CLIENT_ID=<appId> TEST_APPLICATION_ID=<id>
I dla Prod.
az ad app create --display-name "$AZURE_PROJECT-Prod"
PROD_AZURE_CLIENT_ID=<appId> PROD_APPLICATION_ID=<id>
Utwórz jednostkę usługi dla każdej aplikacji.
Uruchom następujące polecenie, aby utworzyć nową jednostkę usługi dla deweloperów.
az ad sp create --id $DEV_AZURE_CLIENT_ID
To polecenie generuje dane wyjściowe JSON z inną
id
wartością i będzie używane w następnym kroku.Ustaw następujące zmienne środowiskowe:
DEV_SERVICE_PRINCIPAL_ID=<id>
Powtórz dla testu.
az ad sp create --id $TEST_AZURE_CLIENT_ID
TEST_SERVICE_PRINCIPAL_ID=<id>
I dla Prod.
az ad sp create --id $PROD_AZURE_CLIENT_ID
PROD_SERVICE_PRINCIPAL_ID=<id>
Uruchom następujące polecenia, aby utworzyć nowe poświadczenia tożsamości federacyjnej dla każdej aplikacji usługi Active Directory.
W każdym z trzech następujących poleceń zastąp ciąg
< Organization/Repository >
nazwą organizacji i repozytorium GitHub.Utwórz poświadczenie tożsamości federacyjnej dla dewelopera.
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"]}'
W przypadku testowania.
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"]}'
I dla 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 Przypisywanie ról do tożsamości wdrożenia
Przypisz każdą tożsamość wdrożenia rolę Czytelnik w projekcie.
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
Przypisz każdą tożsamość wdrożenia rolę użytkownika Środowiska wdrażania do odpowiedniego typu środowiska.
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. Konfigurowanie środowisk usługi GitHub
Za pomocą środowisk GitHub można konfigurować środowiska z regułami ochrony i wpisami tajnymi. Zadanie przepływu pracy, które odwołuje się do środowiska, musi przestrzegać wszelkich reguł ochrony środowiska przed uruchomieniem lub uzyskaniem dostępu do wpisów tajnych środowiska.
Tworzenie środowisk deweloperskich, testowych i prod mapowanych na typy środowisk w projekcie Środowiska wdrażania platformy Azure.
Uwaga
Środowiska, wpisy tajne środowiska i reguły ochrony środowiska są dostępne w repozytoriach publicznych dla wszystkich produktów. Aby uzyskać dostęp do środowisk, wpisów tajnych środowiska i gałęzi wdrażania w repozytoriach prywatnych lub wewnętrznych , należy użyć usługi GitHub Pro, zespołu GitHub lub usługi GitHub Enterprise. Aby uzyskać dostęp do innych reguł ochrony środowiska w repozytoriach prywatnych lub wewnętrznych , należy użyć usługi GitHub Enterprise. Aby uzyskać więcej informacji, zobacz Produkty usługi GitHub.
6.1 Tworzenie środowiska deweloperskiego
W usłudze GitHub przejdź do strony głównej repozytorium.
W obszarze nazwy repozytorium wybierz pozycję Ustawienia. Jeśli nie widzisz karty Ustawienia, wybierz menu rozwijane ..., a następnie wybierz pozycję Ustawienia.
Na lewym pasku bocznym wybierz pozycję Środowiska.
Wybierz pozycję Nowe środowisko i wprowadź wartość Dev jako nazwę środowiska, a następnie wybierz pozycję Konfiguruj środowisko.
W obszarze Wpisy tajne środowiska wybierz pozycję Dodaj wpis tajny i wprowadź AZURE_CLIENT_ID w polu Nazwa.
W polu Wartość wprowadź identyfikator klienta (
appId
) dla utworzonej wcześniej aplikacji *Dev**Microsoft Entra (zapisanej jako zmienna$DEV_AZURE_CLIENT_ID
środowiskowa).Wybierz przycisk Add secret (Dodaj wpis tajny).
6.2. Tworzenie środowiska testowego
Wróć do strony środowiska głównego, wybierając pozycję Środowiska na lewym pasku bocznym.
Wybierz pozycję Nowe środowisko i wprowadź ciąg Test dla nazwy środowiska, a następnie wybierz pozycję Konfiguruj środowisko.
W obszarze Wpisy tajne środowiska wybierz pozycję Dodaj wpis tajny i wprowadź AZURE_CLIENT_ID w polu Nazwa.
W polu Wartość wprowadź identyfikator klienta (
appId
) dla utworzonej wcześniej aplikacji Test Microsoft Entra (zapisanej jako zmienna$TEST_AZURE_CLIENT_ID
środowiskowa).Wybierz przycisk Add secret (Dodaj wpis tajny).
6.3 Tworzenie środowiska Prod
Po raz kolejny wróć do strony głównych środowisk, wybierając pozycję Środowiska na lewym pasku bocznym
Wybierz pozycję Nowe środowisko i wprowadź ciąg Prod jako nazwę środowiska, a następnie wybierz pozycję Konfiguruj środowisko.
W obszarze Wpisy tajne środowiska wybierz pozycję Dodaj wpis tajny i wprowadź AZURE_CLIENT_ID w polu Nazwa.
W polu Wartość wprowadź identyfikator klienta (
appId
) dla utworzonej wcześniej aplikacji Prod Microsoft Entra (zapisanej jako zmienna$PROD_AZURE_CLIENT_ID
środowiskowa).Wybierz przycisk Add secret (Dodaj wpis tajny).
Następnie ustaw się jako wymagany recenzent dla tego środowiska. Podczas próby wdrożenia w usłudze Prod funkcja GitHub Actions czeka na zatwierdzenie przed rozpoczęciem. Gdy zadanie oczekuje na zatwierdzenie, ma stan Oczekiwanie. Jeśli zadanie nie zostanie zatwierdzone w ciągu 30 dni, automatycznie zakończy się niepowodzeniem.
Aby uzyskać więcej informacji na temat środowisk i wymaganych zatwierdzeń, zobacz Używanie środowisk do wdrożenia.
Wybierz pozycję Wymagane recenzenci.
Wyszukaj i wybierz użytkownika usługi GitHub. Możesz wprowadzić maksymalnie sześć osób lub zespołów. Aby kontynuować, tylko jeden z wymaganych recenzentów musi zatwierdzić zadanie.
Wybierz pozycję Zapisz reguły ochrony.
Na koniec skonfiguruj main
jako gałąź wdrożenia:
Z listy rozwijanej Gałęzie wdrożenia wybierz pozycję Wybrane gałęzie.
Wybierz pozycję Dodaj regułę gałęzi wdrożenia i wprowadź
main
wzorzec nazwy gałęzi.Wybierz Dodaj regułę.
7. Testowanie potoku ciągłej integracji/ciągłego wdrażania
W tej sekcji wprowadzisz pewne zmiany w repozytorium i przetestujesz potok ciągłej integracji/ciągłego wdrażania.
7.1 Klonowanie repozytorium
W terminalu przejdź do folderu, w którym chcesz sklonować repozytorium lokalnie.
Sklonuj repozytorium. Pamiętaj, aby zastąpić
< Organization/Repository >
w poniższym poleceniu nazwą organizacji i repozytorium GitHub.git clone https://github.com/< Organization/Repository >.git
Przejdź do sklonowanego katalogu.
cd <repository>
Następnie utwórz nową gałąź i opublikuj ją zdalnie.
git checkout -b feature1
git push -u origin feature1
Nowe środowisko jest tworzone na platformie Azure specyficzne dla tej gałęzi.
W usłudze GitHub przejdź do strony głównej nowo utworzonego repozytorium.
W obszarze nazwy repozytorium wybierz pozycję Akcje.
Powinien zostać wyświetlony nowy przepływ pracy Tworzenie środowiska.
7.2 Wprowadź zmianę w kodzie
Otwórz sklonowane lokalnie repozytorium w programie VS Code.
W programie ADE. Folder samouczka , wprowadź zmianę w pliku.
Zapisz zmianę.
7.3 Wypychanie zmian w celu zaktualizowania środowiska
Przygotuj zmiany i wypchnij do
feature1
gałęzi.git add . git commit -m '<commit message>' git push
Na stronie Akcje repozytorium zostanie wyświetlony nowy przepływ pracy środowiska aktualizacji.
7.4. Tworzenie żądania ściągnięcia
Utwórz żądanie
main <- feature1
ściągnięcia usługi GitHub.Na stronie Akcje repozytorium zobaczysz, że nowy przepływ pracy jest uruchamiany w celu utworzenia środowiska specyficznego dla żądania ściągnięcia przy użyciu typu środowiska testowego.
7.5 Scal żądanie ściągnięcia
W usłudze GitHub przejdź do utworzonego żądania ściągnięcia.
Scal żądanie ściągnięcia.
Zmiany są publikowane w środowisku produkcyjnym, a środowiska żądań ściągnięcia i gałęzi są usuwane.
Czyszczenie zasobów
Jeśli nie planujesz korzystać z żadnych utworzonych zasobów, usuń je, aby nie ponosić żadnych dodatkowych opłat. Jeśli przykładowa aplikacja została wdrożona w innej grupie zasobów, warto powtórzyć poniższe kroki.
Aby usunąć zasoby przy użyciu witryny Azure Portal:
Wybierz przycisk menu w lewym górnym rogu, a następnie wybierz pozycję Grupy zasobów.
Z listy wybierz utworzoną grupę zasobów.
Wybierz pozycję Usuń grupę zasobów.
Wpisz nazwę grupy zasobów. Następnie wybierz Usuń.
Aby usunąć zasoby przy użyciu interfejsu wiersza polecenia platformy Azure, wprowadź następujące polecenie:
az group delete --name <my-dev-center-rg>
Należy pamiętać, że usunięcie grupy zasobów spowoduje usunięcie wszystkich zawartych w niej zasobów.
Powiązana zawartość
- Tworzenie środowiska i uzyskiwanie do tego dostępu przy użyciu interfejsu wiersza polecenia platformy Azure
- Aby uzyskać pełne listy poleceń, zobacz dokumentację interfejsu wiersza polecenia platformy Azure dla usług Microsoft Dev Box i Azure Deployment Environments