Cvičení – přidání fáze Preview do kanálu

Dokončeno

Do kanálu chcete přidat další fázi, abyste mohli zkontrolovat, jaké změny se v prostředí Azure provede.

Během tohoto procesu:

  • Aktualizujte soubor YAML kanálu, aby se přidala nová fáze preview.
  • Přidejte prostředí do Azure Pipelines.
  • Nakonfigurujte prostředí tak, aby vyžadovalo schválení.
  • Aktualizujte soubor YAML kanálu tak, aby používal prostředí pro fázi nasazení.
  • Prohlédněte si výsledky citlivostní dokumentace a schvalte spuštění kanálu.

Aktualizace definice kanálu pro přidání fáze preview

V této části přidáte do kanálu novou fázi, která spustí operaci citlivostní operace.

  1. V editoru Visual Studio Code otevřete soubor azure-pipelines.yml ve složce deploy .

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

    - stage: Preview
      jobs:
      - job: PreviewAzureChanges
        displayName: Preview Azure changes
        steps:
          - task: AzureCLI@2
            name: RunWhatIf
            displayName: Run what-if
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az deployment group what-if \
                  --resource-group $(ResourceGroupName) \
                  --template-file deploy/main.bicep \
                  --parameters environmentType=$(EnvironmentType)
    
  3. Uložte změny souboru.

Přidání prostředí

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

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje nabídku Pipelines a zvýrazněnou položkou Prostředí

  2. Vyberte Vytvořit prostředí.

    Snímek obrazovky s rozhraním Azure DevOps 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 .

    Ponechejte popis prázdný. V případě prostředku vyberte Žádné.

    Poznámka:

    V Azure Pipelines se prostředí používají k povolení funkcí nasazení. Některé z těchto funkcí platí jenom v případech, kdy nasazujete do Kubernetes nebo do virtuálních počítačů. V tomto modulu tyto funkce nepoužíváme a můžete je ignorovat.

  4. Vyberte Vytvořit.

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

Přidání kontroly schválení do prostředí

  1. Vyberte kartu Schválení a kontroly v levém horním rohu obrazovky.

    Snímek obrazovky s rozhraním Azure DevOps zobrazícím webové prostředí se zvýrazněnou kartou Schválení a kontroly

  2. Vyberte Schválení.

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje stránku pro přidání kontroly se zvýrazněnou položkou Schválení

  3. Do textového pole Schvalovatelé zadejte své vlastní jméno a vyberte sami sebe.

  4. Vyberte tlačítko se šipkou vedle možnosti Upřesnit.

    Všimněte si, že ve výchozím nastavení můžou schvalovatelé schvalovat spuštění, která aktivovali. Protože jste jediná osoba, která bude pracovat s tímto kanálem, nechte toto políčko zaškrtnuté.

  5. Vyberte Vytvořit.

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje stránku pro přidání kontroly schválení, se zvýrazněnými podrobnostmi a zvýrazněným tlačítkem Vytvořit

Aktualizujte definici kanálu tak, aby vyžadovala prostředí a schválení.

Tady nakonfigurujete fázi nasazení tak, aby se spustila v prostředí webu , které jste vytvořili dříve. Fázi nasazení převedete na spuštění úlohy nasazení místo standardní úlohy a nakonfigurujete ji tak, aby se nasadí do prostředí.

  1. V souboru azure-pipelines.yml v editoru Visual Studio Code nahraďte definici fáze nasazení následujícím kódem:

    - stage: Deploy
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        environment: Website
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: $(ServiceConnectionName)
                    deploymentName: $(Build.BuildNumber)
                    location: $(deploymentDefaultLocation)
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
    

    Všimněte si, že jste definovali nový checkout krok. Na rozdíl od běžných úloh je potřeba nakonfigurovat úlohy nasazení tak, aby si soubory z úložiště Git zkontrolovaly (stáhly). Pokud tento krok neuděláte, úloha nasazení nebude moct přečíst váš soubor Bicep. Místo toho můžete zvážit použití artefaktů kanálu k odesílání souborů mezi fázemi kanálu. V souhrnu odkazujeme na další informace o artefaktech.

  2. Uložte soubor.

Ověření a potvrzení definice kanálu

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

    trigger:
      batch: true
      branches:
        include:
        - main
    
    pool:
      vmImage: ubuntu-latest
    
    variables:
      - name: deploymentDefaultLocation
        value: westus3
    
    stages:
    
    - stage: Lint
      jobs:
      - job: LintCode
        displayName: Lint code
        steps:
          - script: |
              az bicep build --file deploy/main.bicep
            name: LintBicepCode
            displayName: Run Bicep linter
    
    - stage: Validate
      jobs:
      - job: ValidateBicepCode
        displayName: Validate Bicep code
        steps:
          - task: AzureResourceManagerTemplateDeployment@3
            name: RunPreflightValidation
            displayName: Run preflight validation
            inputs:
              connectedServiceName: $(ServiceConnectionName)
              location: $(deploymentDefaultLocation)
              deploymentMode: Validation
              resourceGroupName: $(ResourceGroupName)
              csmFile: deploy/main.bicep
              overrideParameters: >
                -environmentType $(EnvironmentType)
    
    - stage: Preview
      jobs:
      - job: PreviewAzureChanges
        displayName: Preview Azure changes
        steps:
          - task: AzureCLI@2
            name: RunWhatIf
            displayName: Run what-if
            inputs:
              azureSubscription: $(ServiceConnectionName)
              scriptType: 'bash'
              scriptLocation: 'inlineScript'
              inlineScript: |
                az deployment group what-if \
                  --resource-group $(ResourceGroupName) \
                  --template-file deploy/main.bicep \
                  --parameters environmentType=$(EnvironmentType)
    
    - stage: Deploy
      jobs:
      - deployment: DeployWebsite
        displayName: Deploy website
        environment: Website
        strategy:
          runOnce:
            deploy:
              steps:
                - checkout: self
    
                - task: AzureResourceManagerTemplateDeployment@3
                  name: DeployBicepFile
                  displayName: Deploy Bicep file
                  inputs:
                    connectedServiceName: $(ServiceConnectionName)
                    deploymentName: $(Build.BuildNumber)
                    location: $(deploymentDefaultLocation)
                    resourceGroupName: $(ResourceGroupName)
                    csmFile: deploy/main.bicep
                    overrideParameters: >
                      -environmentType $(EnvironmentType)
    

    Pokud tomu tak není, 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 stage"
    git push
    

Spusťte kanál a zkontrolujte výstupy citlivostní kontroly.

  1. V prohlížeči přejděte do kanálu.

  2. Vyberte poslední spuštění kanálu.

    Počkejte, až kanál dokončí fáze Lint, Validate a Preview . I když Azure Pipelines stránku automaticky aktualizuje nejnovějším stavem, je vhodné stránku občas aktualizovat.

  3. Pokud se zobrazí výzva k udělení oprávnění pro přístup k prostředku, vyberte Zobrazit a pak vyberte Povolit.

  4. Všimněte si, že Azure Pipelines vás vyzve ke schválení. Obdržíte také e-mail s informací, že kanál potřebuje vaše schválení.

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje spuštění kanálu se zvýrazněným požadavkem na schválení

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

  5. Vyberte fázi náhledu.

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

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

    Resource and property changes are indicated with these symbols:
      + Create
      ~ Modify
      = Nochange
    
    The deployment will update the following scope:
    
    Scope: /subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/ToyWebsiteTest
    
      ~ Microsoft.Web/sites/toy-website-nbfnedv766snk [2021-01-15]
        + properties.siteConfig.localMySqlEnabled:   false
        + properties.siteConfig.netFrameworkVersion: "v4.6"
    
      = Microsoft.Insights/components/toywebsite [2020-02-02]
      = Microsoft.Storage/storageAccounts/mystoragenbfnedv766snk [2021-04-01]
      = Microsoft.Web/serverfarms/toy-website [2021-01-15]
    
    Resource changes: 1 to modify, 3 no change.
    

    Operace citlivostní operace zjistila změnu prostředku webu. Zjištěné změny jsou však šumem. Nepředstavují skutečné změny vašeho prostředku. Tým Azure v průběhu času pracuje na snížení šumu. Do té doby můžete u těchto dvou specifických vlastností ignorovat zjištěné změny.

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

Schválení spuštění kanálu

  1. Výběrem šipky vlevo se vrátíte k podrobnostem spuštění kanálu.

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje nabídku protokolu kanálu se zvýrazněnou šipkou zpět

  2. Na panelu schválení vyberte tlačítko Revize .

  3. Do pole Komentář zadejte Zkontrolovat výsledky citlivostní kontroly.

  4. Vyberte možnost Schválit.

    Snímek obrazovky s rozhraním Azure DevOps, které zobrazuje stránku schválení kanálu se zvýrazněným tlačítkem Schválit

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

  1. Po schválení spuštění kanálu si všimněte, že se spustí fáze nasazení .

    Počkejte, až se fáze dokončí.

  2. Všimněte si, že spuštění kanálu se úspěšně dokončí.