Ćwiczenie — dodawanie etapu podglądu do potoku

Ukończone

Chcesz dodać dodatkowy etap do potoku, aby sprawdzić, jakie zmiany zostaną wprowadzone w środowisku platformy Azure.

Podczas tego procesu wykonasz następujące czynności:

  • Zaktualizuj plik YAML potoku, aby dodać nowy etap podglądu.
  • Dodawanie środowiska do usługi Azure Pipelines.
  • Skonfiguruj środowisko, aby wymagać zatwierdzenia.
  • Zaktualizuj plik YAML potoku, aby użyć środowiska na etapie wdrażania.
  • Wyświetl wyniki analizy co-jeżeli i zatwierdź uruchomienie potoku.

Aktualizowanie definicji potoku w celu dodania etapu podglądu

W tym miejscu dodasz nowy etap do potoku, który uruchamia operację analizy co-jeżeli.

  1. W programie Visual Studio Code otwórz plik azure-pipelines.yml w folderze deploy .

  2. Między etapami Walidacja i Wdrażanie dodaj następującą definicję dla etapu Wersja zapoznawcza:

    - 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. Zapisz zmiany w pliku.

Dodawanie środowiska

  1. W przeglądarce przejdź do pozycji Środowiska potoków>.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający menu Potoki z wyróżnionym elementem Środowiska.

  2. Wybierz pozycję Utwórz środowisko.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający stronę Środowiska z wyróżnionym przyciskiem tworzenia środowiska.

  3. Wprowadź wartość Witryna internetowa jako nazwę środowiska.

    Pozostaw puste miejsce na opis. W obszarze Zasób wybierz pozycję Brak.

    Uwaga

    W usłudze Azure Pipelines środowiska są używane do włączania funkcji wdrażania. Niektóre z tych funkcji mają zastosowanie tylko w przypadku wdrażania na platformie Kubernetes lub na maszynach wirtualnych. W tym module nie używamy tych funkcji i można je zignorować.

  4. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający stronę usługi Azure DevOps dla nowego środowiska z ukończonymi szczegółami i wyróżnionym przyciskiem Utwórz.

Dodawanie sprawdzania zatwierdzenia do środowiska

  1. Wybierz kartę Zatwierdzenia i testy w lewym górnym rogu ekranu.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający środowisko witryny internetowej z wyróżnioną kartą Zatwierdzenia i kontrole.

  2. Wybierz pozycję Zatwierdzenia.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający stronę dodawania sprawdzania z wyróżnionym elementem Zatwierdzenia.

  3. W polu tekstowym Osoby zatwierdzające wpisz własną nazwę i wybierz siebie.

  4. Wybierz przycisk strzałki obok pozycji Zaawansowane.

    Zauważ, że domyślnie osoby zatwierdzające mogą zatwierdzać wyzwalane przebiegi. Ponieważ jesteś jedyną osobą, która będzie pracować z tym potokiem, pozostaw to pole wyboru zaznaczone.

  5. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający stronę dodawania sprawdzania zatwierdzenia z wyróżnionymi szczegółami i przyciskiem Utwórz.

Aktualizowanie definicji potoku w celu wymagania środowiska i zatwierdzenia

W tym miejscu skonfigurujesz etap Wdrażanie , aby był uruchamiany względem utworzonego wcześniej środowiska witryny sieci Web . Przekonwertujesz etap Wdrażania, aby uruchomić zadanie wdrożenia zamiast zadania standardowego i skonfigurować go do wdrożenia w środowisku.

  1. W pliku azure-pipelines.yml w programie Visual Studio Code zastąp definicję Deploy stage (Wdrażanie etapu) następującym kodem:

    - 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)
    

    Zwróć uwagę, że zdefiniowano nowy checkout krok. W przeciwieństwie do normalnych zadań zadania wdrożenia muszą być skonfigurowane do wyewidencjonowania (pobierania) plików z repozytorium Git. Jeśli nie zrobisz tego kroku, zadanie wdrożenia nie będzie mogło odczytać pliku Bicep. Zamiast tego można rozważyć użycie artefaktów potoku do wysyłania plików między etapami potoku. Link do dodatkowych informacji o artefaktach znajduje się w podsumowaniu.

  2. Zapisz plik.

Weryfikowanie i zatwierdzanie definicji potoku

  1. Sprawdź, czy plik azure-pipelines.yml wygląda następująco:

    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)
    

    Jeśli tak nie jest, zaktualizuj go tak, aby był zgodny z tym przykładem, a następnie zapisz go.

  2. Zatwierdź i wypchnij zmiany do repozytorium Git, uruchamiając następujące polecenia w terminalu programu Visual Studio Code:

    git add .
    git commit -m "Add preview stage"
    git push
    

Uruchamianie potoku i przeglądanie danych wyjściowych analizy co-jeżeli

  1. W przeglądarce przejdź do potoku.

  2. Wybierz najnowszy przebieg potoku.

    Poczekaj, aż potok zakończy etapy Lint, Validate i Preview . Chociaż usługa Azure Pipelines automatycznie aktualizuje stronę o najnowszym stanie, warto odświeżyć stronę od czasu do czasu.

  3. Jeśli zostanie wyświetlony monit o udzielenie uprawnień dostępu do zasobu, wybierz pozycję Wyświetl , a następnie wybierz pozycję Zezwól.

  4. Zwróć uwagę, że usługa Azure Pipelines monituje o zatwierdzenie. Otrzymasz również wiadomość e-mail z informacją, że potok wymaga zatwierdzenia.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający przebieg potoku z wyróżnionym wymaganiem zatwierdzenia.

    Przed zatwierdzeniem kontynuacji potoku należy przejrzeć wyniki analizy co-jeżeli, aby upewnić się, że są one zgodne z oczekiwaniami.

  5. Wybierz etap Podgląd.

  6. Wybierz krok Uruchom co-jeżeli, aby sprawdzić zmiany raportów polecenia analizy co-jeżeli.

  7. Zwróć uwagę, że dziennik potoku zawiera wyniki warunkowe podobne do następującego kodu:

    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.
    

    Operacja analizy co-jeżeli wykryła zmianę zasobu witryny internetowej. Jednak wykryte zmiany to szum. Nie reprezentują one rzeczywistych zmian w zasobie. Z czasem zespół platformy Azure pracuje nad zmniejszeniem szumu. W międzyczasie dla tych dwóch określonych właściwości można zignorować wykryte zmiany.

    Element może również zostać wyświetlony w danych wyjściowych analizy co-jeżeli dla typu microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsitezasobu . Usługa Application Insights automatycznie tworzy ten zasób. Polecenie analizy co-jeżeli wykrywa, że nie zostaną wprowadzone żadne zmiany w zasobie.

Zatwierdzanie przebiegu potoku

  1. Wybierz strzałkę po lewej stronie, aby powrócić do szczegółów przebiegu potoku.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający menu dziennika potoku z wyróżnioną strzałką wstecz.

  2. Wybierz przycisk Przejrzyj na panelu zatwierdzania.

  3. W polu Komentarz wprowadź przegląd wyników analizy co-jeżeli.

  4. Wybierz Zatwierdź.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający stronę zatwierdzania potoku z wyróżnionym przyciskiem Zatwierdź.

Obserwowanie pomyślnego wdrożenia

  1. Po zatwierdzeniu przebiegu potoku zwróć uwagę, że etap Wdrażania rozpoczyna działanie.

    Poczekaj na zakończenie etapu.

  2. Zwróć uwagę, że przebieg potoku zakończy się pomyślnie.