Cvičení – přidání úlohy Preview do pracovního postupu

Dokončeno

Chcete do pracovního postupu přidat další úlohu, abyste mohli zkontrolovat, jaké změny se v prostředí Azure provede.

Během tohoto procesu provedete následující úlohy:

  • Aktualizujte soubor YAML definice pracovního postupu a přidejte novou úlohu ve verzi Preview.
  • Přidejte prostředí do úložiště GitHub.
  • Nakonfigurujte prostředí tak, aby vyžadovalo kontrolu.
  • Aktualizujte soubor YAML pracovního postupu tak, aby používal prostředí pro úlohu nasazení.
  • Prohlédněte si výsledky citlivostní dokumentace a schvalte spuštění pracovního postupu.

Aktualizace definice pracovního postupu pro přidání úlohy preview

Tady do pracovního postupu přidáte novou úlohu, která spustí operaci citlivostní operace.

  1. V editoru Visual Studio Code otevřete soubor workflow.yml ve složce .github/workflows .

  2. Mezi úlohy ověření a nasazení přidejte následující definici úlohy Preview:

    preview:
      runs-on: ubuntu-latest
      needs: [lint, validate]
      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/arm-deploy@v1
        name: Run what-if
        with:
          failOnStdErr: false
          resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
          template: deploy/main.bicep
          parameters: >
            environmentType=${{ env.ENVIRONMENT_TYPE }}
          additionalArguments: --what-if
    

    Všimněte si, že úloha Preview závisí na úspěšném dokončení lintu a ověření úloh.

  3. Aktualizujte úlohu nasazení, aby byla závislá na úloze Preview:

    deploy:
      runs-on: ubuntu-latest
      needs: preview
      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/arm-deploy@v1
        name: Deploy website
        with:
          failOnStdErr: false
          deploymentName: ${{ github.run_number }}
          resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
          template: ./deploy/main.bicep
          parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
    
  4. Uložte změny souboru.

Přidání prostředí

  1. V prohlížeči přejděte do nastavení>prostředí.

  2. Vyberte Nové prostředí.

    Snímek obrazovky s rozhraním GitHubu se stránkou Prostředí se zvýrazněným tlačítkem pro vytvoření prostředí

  3. Jako název prostředí zadejte web .

  4. Vyberte Konfigurovat prostředí.

    Snímek obrazovky se stránkou GitHubu pro nové prostředí se zvýrazněnými podrobnostmi a zvýrazněným tlačítkem Konfigurovat prostředí

V krocích nastavení pro tento modul jste už vytvořili federované přihlašovací údaje pro pracovní postup, který se použije při nasazení do prostředí.

Přidání požadovaného pravidla ochrany revidujících do prostředí

  1. Vyberte pole Požadované revidujícím.

  2. Přidejte do seznamu revidujících vlastní uživatelské jméno GitHubu.

    Snímek obrazovky s rozhraním GitHubu, které zobrazuje webové prostředí, se zvýrazněným zaškrtávacím polem požadovaných revidujících a textovým polem

  3. Vyberte Uložit pravidla ochrany.

  4. Výběrem možnosti Prostředí ukončete konfiguraci.

Aktualizace definice pracovního postupu tak, aby vyžadovala prostředí a revidujícím

Tady nakonfigurujete úlohu nasazení tak, aby běžela v prostředí webu , které jste vytvořili dříve.

  1. Otevřete soubor workflow.yml v editoru Visual Studio Code.

  2. environment Přidejte parametr do úlohy nasazení. Nastavte hodnotu na Websitehodnotu tak, aby odpovídala názvu prostředí, které jste vytvořili:

    deploy:
      runs-on: ubuntu-latest
      environment: Website
      needs: preview
      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/arm-deploy@v1
        name: Deploy website
        with:
          failOnStdErr: false
          deploymentName: ${{ github.run_number }}
          resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
          template: ./deploy/main.bicep
          parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
    
  3. Uložte soubor.

Ověření a potvrzení definice pracovního postupu

  1. Ověřte, že váš soubor workflow.yml vypadá jako následující kód:

    name: deploy-toy-website-test
    concurrency: toy-company
    
    on:
      push:
        branches:
          - main
    
    permissions:
      id-token: write
      contents: read
    
    env:
      AZURE_RESOURCEGROUP_NAME: ToyWebsiteTest
      ENVIRONMENT_TYPE: Test
    
    jobs:
      lint:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v3
        - name: Run Bicep linter
          run: az bicep build --file deploy/main.bicep
    
      validate:
        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/arm-deploy@v1
          name: Run preflight validation
          with:
            deploymentName: ${{ github.run_number }}
            resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
            template: ./deploy/main.bicep
            parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
            deploymentMode: Validate
    
      preview:
        runs-on: ubuntu-latest
        needs: [lint, validate]
        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/arm-deploy@v1
          name: Run what-if
          with:
            failOnStdErr: false
            resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
            template: deploy/main.bicep
            parameters: >
              environmentType=${{ env.ENVIRONMENT_TYPE }}
            additionalArguments: --what-if
    
      deploy:
        runs-on: ubuntu-latest
        environment: Website
        needs: preview
        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/arm-deploy@v1
          name: Deploy website
          with:
            failOnStdErr: false
            deploymentName: ${{ github.run_number }}
            resourceGroupName: ${{ env.AZURE_RESOURCEGROUP_NAME }}
            template: ./deploy/main.bicep
            parameters: environmentType=${{ env.ENVIRONMENT_TYPE }}
    

    Pokud soubor vypadá jinak, aktualizujte ho tak, aby odpovídal tomuto příkladu, a pak ho uložte.

  2. 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 "Add preview job"
    git push
    

Spusťte pracovní postup a zkontrolujte výstupy citlivostní kontroly.

  1. V prohlížeči přejděte ke spuštění pracovního postupu.

  2. Vyberte poslední spuštění pracovního postupu.

    Počkejte, až pracovní postup dokončí úlohy lint, validate a Preview . I když GitHub stránku automaticky aktualizuje nejnovějším stavem, je vhodné stránku občas aktualizovat.

  3. Všimněte si, že pracovní postup vás vyzve k revizi. V závislosti na tom, jak nastavíte účet GitHubu, obdržíte e-mail nebo webové oznámení s žádostí o kontrolu pracovního postupu.

    Snímek obrazovky s rozhraním GitHubu, které zobrazuje spuštění pracovního postupu se zvýrazněným požadavkem kontroly

    Před schválením pokračování pracovního postupu zkontrolujete výsledky citlivostní dokumentace, abyste měli jistotu, že odpovídají vašim očekáváním.

  4. Vyberte úlohu Preview.

  5. Vyberte krok Spustit citlivostní analýzu a zkontrolujte změny, na kterých se příkaz citlivostní analýzy hlásí.

  6. Všimněte si, že protokol pracovního postupu poskytuje výsledky citlivostní analýzy podobné následujícímu kódu:

    Resource and property changes are indicated with these symbols:
      - Delete
      + Create
      ~ Modify
      = Nochange
      * Ignore
    
    The deployment will update the following scope:
    
    Scope: /subscriptions/***/resourceGroups/ToyWebsiteTest
    
      ~ Microsoft.OperationalInsights/workspaces/workspace-abcdefghijklm [2022-10-01]
        - properties.retentionInDays: 30
        - properties.sku:
    
            name: "pergb2018"
    
        - properties.workspaceCapping:
    
            dailyQuotaGb: -1.0
    
      ~ Microsoft.Web/sites/toy-website-abcdefghijklm [2022-03-01]
        + properties.siteConfig.localMySqlEnabled:   false
        + properties.siteConfig.netFrameworkVersion: "v4.6"
    
      = Microsoft.Insights/components/toywebsite [2020-02-02]
      = Microsoft.Storage/storageAccounts/mystorageabcdefghijklm [2022-09-01]
      = Microsoft.Web/serverfarms/toy-website [2022-03-01]
      * microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
    
    Resource changes: 2 to modify, 3 no change, 1 to ignore.
    

    Operace citlivostní analýzy zjistila změnu pracovního prostoru služby Log Analytics a prostředků webu. Zjištěné změny jsou ale šum. Nepředstavují skutečné změny vašeho prostředku. Tým Azure v průběhu času pracuje na snížení šumu. Mezitím můžete zjištěné změny ignorovat.

    Může se také zobrazit položka ve výstupu citlivostní citlivosti pro typ microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsiteprostředku . Jedná se o prostředek, který Application Insights vytvoří automaticky. Příkaz what-if zjistí, že v prostředku se neprovedou žádné změny.

Schválení spuštění pracovního postupu

  1. Výběrem možnosti Souhrn se vrátíte do přehledu spuštění pracovního postupu.

    Snímek obrazovky s rozhraním GitHubu, které zobrazuje nabídku Souhrn se zvýrazněnou šipkou zpět

  2. Na panelu revizí vyberte tlačítko Zkontrolovat nasazení.

  3. V automaticky otevíraném okně Zkontrolovat čekající nasazení vyberte prostředí webu . Do pole Opustit komentář zadejte Zkontrolovat výsledky citlivostní kontroly.

  4. Vyberte Schválit a nasadit.

    Snímek obrazovky s rozhraním GitHubu, které zobrazuje stránku schválení pracovního postupu se zvýrazněným tlačítkem Schválit

Sledování úspěšného nasazení

  1. Po schválení spuštění pracovního postupu si všimněte, že se úloha nasazení spustí.

    Počkejte, až se úloha dokončí.

  2. Všimněte si, že spuštění pracovního postupu se úspěšně dokončí.