Cvičení – vytvoření dočasných prostředí pro žádosti o přijetí změn
Někteří členové týmu vám řekli, že si váží toho, že si před odesláním ostatním členům týmu, aby si prošli, získali automatickou zpětnou vazbu k kódu Bicep. Teď jste se rozhodli dát přispěvatelům a recenzentům možnost nasadit a zkontrolovat kód v dočasném prostředí.
V tomto cvičení aktualizujete pracovní postup žádosti o přijetí změn a nasadíte dočasné prostředí při každém otevření žádosti o přijetí změn a znovu ho nasadíte, když se kód odešle do větve žádosti o přijetí změn. Vytvoříte také další pracovní postup, který automaticky odstraní prostředí při zavření žádosti o přijetí změn. Změny otestujete tak, že vytvoříte žádost o přijetí změn pro váš web tak, aby používala image kontejneru Dockeru.
Během tohoto procesu:
- Aktualizujte pracovní postup žádosti o přijetí změn a nasaďte dočasné prostředí.
- Vytvořte pracovní postup odstranění žádosti o přijetí změn, který odstraní dočasné prostředí.
- Vytvořte žádost o přijetí změn a sledujte, jak se vytvoří dočasné prostředí.
- Schvalte žádost o přijetí změn a sledujte, jak se dočasné prostředí odstraní.
Aktualizace pracovního postupu žádosti o přijetí změn pro nasazení dočasného prostředí
Abyste mohli začít, musíte aktualizovat pracovní postup ověření žádostí o ověření , abyste vytvořili dočasné prostředí.
V terminálu editoru Visual Studio Code si prohlédněte hlavní větev úložiště.
git checkout main
Stáhněte si nejnovější verzi kódu z GitHubu, která zahrnuje změny, které jste sloučili v předchozím cvičení.
git pull
Otevřete soubor .github/workflows/pr-validation.yml v editoru Visual Studio Code.
V horní části souboru pod
name
nastavení přidejteconcurrency
nastavení:name: pr-validation concurrency: ${{ github.event.number }}
Toto nastavení brání spuštění více pracovních postupů pro stejnou žádost o přijetí změn ve stejnou dobu, což může způsobit nepředvídatelné výsledky při nasazování prostředků do Azure.
V horní části souboru v
on
části, která definuje trigger, definujtepermissions
oddíl:name: pr-validation concurrency: ${{ github.event.number }} on: pull_request permissions: id-token: write contents: read
permissions
Pod oddíl přidejte dvě nové proměnné prostředí:name: pr-validation concurrency: ${{ github.event.number }} on: pull_request permissions: id-token: write contents: read env: resourceGroupName: pr_${{ github.event.number }} resourceGroupLocation: westus3
Proměnná
resourceGroupName
prostředí určuje název skupiny prostředků, která se má použít pro každé dočasné prostředí. Každá skupina prostředků bude mít názevpr_123
, kde123
je jedinečné číslo žádosti o přijetí změn.Proměnná
resourceGroupLocation
prostředí určuje, že vaše dočasné prostředí by se měla nasadit do oblasti Azure USA – západ 3.Definujte novou úlohu s názvem
deploy
pod úlohoulint
:jobs: lint: uses: ./.github/workflows/lint.yml deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Úloha nejprve zkontroluje veškerý kód na GitHub Runneru a pak se přihlásí k prostředí Azure.
Tip
Soubory YAML jsou citlivé na odsazení. Bez ohledu na to, jestli tento kód napíšete nebo vložíte, zkontrolujte správnost odsazení. Později v tomto cvičení uvidíte úplnou definici pracovního postupu YAML, abyste mohli ověřit, že se váš soubor shoduje.
Přidejte krok pro vytvoření skupiny prostředků s názvem definovaným v proměnné prostředí:
- uses: Azure/cli@v1 name: Create resource group with: inlineScript: | az group create \ --name ${{ env.resourceGroupName }} \ --location ${{ env.resourceGroupLocation }}
Po vytvoření skupiny prostředků přidejte krok pro nasazení souboru Bicep do skupiny prostředků:
- uses: azure/arm-deploy@v1 id: deploy name: Deploy Bicep file with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.resourceGroupName }} template: ./deploy/main.bicep parameters: > environmentType=Test
Po kroku nasazení přidejte krok pro zobrazení webové adresy dočasného prostředí v protokolu pracovního postupu:
- name: Show website hostname run: | echo "Access the website at this address: https://${{ steps.deploy.outputs.appServiceAppHostName }}"
Uložte provedené změny.
Ověřte, že váš soubor pr-validation.yml vypadá takto:
name: pr-validation concurrency: ${{ github.event.number }} on: pull_request permissions: id-token: write contents: read env: resourceGroupName: pr_${{ github.event.number }} resourceGroupLocation: westus3 jobs: lint: uses: ./.github/workflows/lint.yml deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: Azure/cli@v1 name: Create resource group with: inlineScript: | az group create \ --name ${{ env.resourceGroupName }} \ --location ${{ env.resourceGroupLocation }} - uses: azure/arm-deploy@v1 id: deploy name: Deploy Bicep file with: failOnStdErr: false deploymentName: ${{ github.run_number }} resourceGroupName: ${{ env.resourceGroupName }} template: ./deploy/main.bicep parameters: > environmentType=Test - name: Show website hostname run: | echo "Access the website at this address: https://${{ steps.deploy.outputs.appServiceAppHostName }}"
Pokud tomu tak není, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak ho uložte.
V terminálu editoru Visual Studio Code potvrďte provedené změny. Do vzdáleného úložiště je ještě nenasdílíte.
git add . git commit -m "Update pull request validation workflow to deploy an ephemeral environment"
Přidání pracovního postupu odstranění žádosti o přijetí změn
Vytvořili jste pracovní postup, který automaticky nasadí změny v každé žádosti o přijetí změn do dočasné skupiny prostředků. Teď nakonfigurujete druhý pracovní postup pro odstranění dočasných prostředí, když už nejsou potřeba.
Ve složce .github/workflows vytvořte nový soubor s názvem pr-closed.yml.
V horní části souboru pojmenujte pracovní postup, nakonfigurujte stejný klíč souběžnosti, který jste použili v pracovním postupu ověření žádosti o přijetí změn, nakonfigurujte pracovní postup tak, aby se spustil při každém zavření žádosti o přijetí změn a umožnil pracovnímu postupu získat přístupový token:
name: pr-closed concurrency: ${{ github.event.number }} on: pull_request: types: [closed] permissions: id-token: write contents: read
Pod kódem, který jste právě zadali, definujte proměnnou prostředí pro název skupiny prostředků, která je přidružená k dočasnému prostředí žádosti o přijetí změn:
env: resourceGroupName: pr_${{ github.event.number }}
Název skupiny prostředků je stejný jako název, který jste použili pro pracovní postup ověření žádosti o přijetí změn.
Pod kódem, který jste přidali, definujte novou úlohu s názvem
remove
a nakonfigurujte ji tak, aby se přihlásila k Azure:jobs: remove: runs-on: ubuntu-latest steps: - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
V rámci
remove
úlohy definujte krok pro odstranění skupiny prostředků pomocí Azure CLI a potvrďte odstranění pomocí argumentu--yes
:- uses: Azure/cli@v1 name: Delete resource group with: inlineScript: | az group delete \ --name ${{ env.resourceGroupName }} \ --yes
Uložte provedené změny.
Ověřte, že váš soubor pr-closed.yml vypadá takto:
name: pr-closed concurrency: ${{ github.event.number }} on: pull_request: types: [closed] permissions: id-token: write contents: read env: resourceGroupName: pr_${{ github.event.number }} jobs: remove: runs-on: ubuntu-latest steps: - uses: azure/login@v1 name: Sign in to Azure with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - uses: Azure/cli@v1 name: Delete resource group with: inlineScript: | az group delete \ --name ${{ env.resourceGroupName }} \ --yes
Pokud tomu tak není, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak ho uložte.
V terminálu editoru Visual Studio Code potvrďte změny a nasdílejte je do vzdáleného úložiště:
git add . git commit -m 'Add pull request closed workflow' git push
Aktualizace souboru Bicep
Dále aktualizujte soubor Bicep tak, aby používal image kontejneru Dockeru pro aplikaci vašeho webu.
V terminálu editoru Visual Studio Code vytvořte novou větev pro změny spuštěním následujícího příkazu:
git checkout -b feature/container-app
Otevřete soubor main.bicep ve složce deploy.
Aktualizujte hodnotu
appServiceAppLinuxFrameworkVersion
proměnné:var appServiceAppLinuxFrameworkVersion = 'DOCKER|dockersamples/static-site:latest'
Uložte provedené změny.
Potvrďte a nasdílejte změny do úložiště Git spuštěním následujících příkazů v terminálu editoru Visual Studio Code:
git add . git commit -m "Use container image for website" git push origin feature/container-app
Vytvoření žádosti o přijetí změn
Definovali jste pracovní postupy pro automatické vytváření a správu dočasných prostředí v žádostech o přijetí změn. Teď vytvoříte další žádost o přijetí změn pro změny Bicep.
V prohlížeči vyberte Kód a pak vyberte 3 větve.
V části Větve vedle funkce nebo aplikace typu kontejner vyberte Možnost Nová žádost o přijetí změn.
Vyberte Vytvořit žádost o přijetí změn.
Podívejte se, jak se vytvoří dočasné prostředí.
Na stránce s podrobnostmi žádosti o přijetí změn počkejte, až se zobrazí položky kontroly stavu.
V seznamu vedle úlohy nasazení vyberte Podrobnosti.
Počkejte na dokončení nasazení.
Vyberte Zobrazit název hostitele webu.
Vyberte adresu URL v protokolu.
Web se načte a zobrazí zprávu Hello Docker! , která indikuje, že web běží z image kontejneru definované ve změně žádosti o přijetí změn.
Volitelně otevřete Azure Portal a přejděte do dočasné skupiny prostředků prostředí.
Zkontrolujte nasazené prostředky: účet úložiště, službu App Service a plán služby App Service.
Sloučení žádosti o přijetí změn
Teď, když jste otestovali žádost o přijetí změn, ji můžete sloučit do hlavní větve.
Vyberte Žádosti o přijetí změn a vyberte image kontejneru pro žádost o přijetí změn webu .
Kontroly stavu prošly.
Vyberte Sloučit žádost o přijetí změn.
Vyberte Potvrdit sloučení.
Kontrola odstranění skupiny prostředků
V prohlížeči vyberte Akce a pak v levém podokně vyberte pracovní postup pro přijetí změn .
Vidíte, že pracovní postup byl vyvolán automaticky, protože žádost o přijetí změn byla uzavřena.
Vyberte pracovní postup a zkontrolujte protokol.
Odstranění skupiny prostředků v Azure může trvat několik minut.
Důležité
Nemusíte čekat, až se pracovní postup dokončí. Nezapomeňte ale později otevřít Azure Portal, abyste ověřili, že se skupina prostředků dočasného prostředí úspěšně odstranila, a abyste se vyhnuli nákladům na prostředky Azure.
Vyčištění prostředků
Po dokončení modulu můžete odstranit vytvořené prostředky:
Tajné kódy GitHubu
- V úložišti GitHub přejděte do části Nastavení>Tajný kód a akce proměnných>.
- Vyberte tlačítko Odstranit pro každý tajný klíč úložiště a postupujte podle pokynů.
Úložiště GitHub
- Přejít na Obecné nastavení>
- Posuňte se do dolní části obrazovky, vyberte Odstranit toto úložiště a postupujte podle pokynů.
Aplikace Azure federovaných přihlašovacích údajů a instančního objektu registrace.
- Na domovské stránce portálu vyhledejte ID Microsoft Entra a vyberte ho ze seznamu služeb.
- Přejděte na Spravovat> Registrace aplikací.
- Ve vlastněných aplikacích vyberte toy-website-auto-review.
- Vyberte Odstranit a postupujte podle pokynů.
- Výběrem možnosti Odstraněné aplikace trvale odstraníte registraci aplikace.
Důležité
Je možné mít duplicitní názvy registrace aplikací a instančních objektů. Doporučujeme ověřit ID aplikace, abyste měli jistotu, že odstraňujete správný prostředek.