Ćwiczenie — dodaj etap podglądu do przepływu danych

Ukończone

Chcesz dodać kolejny etap do swego procesu, aby sprawdzić, jakie zmiany zostaną wprowadzone w środowisku Azure.

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

  • Zaktualizuj plik YAML potoku, aby dodać nowy etap podglądu.
  • Dodaj środowisko do Azure Pipelines.
  • Skonfiguruj środowisko, aby wymagać zatwierdzenia zgody.
  • Zaktualizuj plik YAML potoku, aby użyć środowiska na etapie wdrażania.
  • Wyświetl wyniki analizy 'what-if' i zatwierdź uruchomienie potoku.

Zaktualizuj definicję potoku, aby dodać etap podglądu

Najpierw dodasz nowy etap do potoku, który uruchamia operację analizy warunkowej.

  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:

    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.

Dodaj środowisko

  1. W Azure DevOps przejdź do Pipelines>Environments.

    Zrzut ekranu interfejsu usługi Azure DevOps przedstawiający opcję Środowiska w menu Potoki.

  2. Wybierz pozycję Utwórz środowisko.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający przycisk tworzenia środowiska.

  3. Wprowadź Website jako nazwę środowiska.

    Pozostaw puste miejsce na opis. W sekcji 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 będziesz używać tych funkcji i możesz je zignorować.

  4. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający stronę usługi Azure DevOps dla nowego środowiska. Zostaną wprowadzone szczegóły, a przycisk Utwórz zostanie wyróżniony.

Dodaj kontrolę zatwierdzenia do środowiska

  1. Wybierz kartę Zatwierdzenia i kontrole w lewym górnym rogu strony.

    Zrzut ekranu przedstawiający interfejs usługi Azure DevOps przedstawiający środowisko witryny internetowej. Karta Zatwierdzenia i kontrole jest wyróżniona.

  2. Wybierz pozycję Zatwierdzenia.

    Zrzut ekranu interfejsu Azure DevOps pokazujący stronę dodawania weryfikacji. Element Zatwierdzenia jest wyróżniony.

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

  4. Rozwiń sekcję Zaawansowane , wybierając strzałkę w dół.

    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. Zostaną wprowadzone szczegóły, a przycisk Utwórz zostanie wyróżniony.

Zaktualizuj definicję procesu, aby wymagać środowiska i zatwierdzenia.

Następnie skonfigurujesz etap Wdrażanie , aby był uruchamiany względem utworzonego wcześniej środowiska witryny internetowej . 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ę etapu wdrażania następującym kodem:

     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 uwzględnisz tego kroku, zadanie wdrożenia nie zdoła odczytać Twojego pliku Bicep. Zamiast tego można rozważyć użycie artefaktów potokowych do wysyłania plików między etapami w potoku. Podsumowanie modułu zawiera link do dodatkowych informacji o artefaktach.

  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: Default
    
    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 nie wygląda tak samo, 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
    

Uruchom potok i przeglądaj dane wyjściowe scenariuszy what-if

  1. W usłudze Azure DevOps 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 Azure Pipelines prosi 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. Wymaganie zatwierdzenia zostało wyróżnione.

    Przed zatwierdzeniem kontynuacji procesu 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 tryb co-jeśli, aby sprawdzić zmiany raportowane przez polecenie trybu co-jeśli.

  7. Zwróć uwagę, że dziennik potoku zawiera wyniki warunkowe podobne do następujących danych wyjściowych:

    Resource and property changes are indicated with these symbols:
      + Create
      ~ Modify
      = Nochange
    
    The deployment will update the following scope:
    
    Scope: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.
    

    Działanie "co-jeśli" wykryło zmianę zasobu witryny internetowej. Jednak wykryte zmiany są szumem. Nie reprezentują one rzeczywistych zmian w zasobie. 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 zasobu microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite. Usługa Application Insights automatycznie tworzy ten zasób. Komenda "co-jeżeli" wykrywa, że zasób pozostanie bez zmian.

Zatwierdź przebieg 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. Strzałka wstecz jest wyróżniona.

  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 interfejsu Azure DevOps pokazujący stronę zatwierdzania przepływu zadań. Przycisk Zatwierdź jest wyróżniony.

Obserwowanie pomyślnego wdrożenia

  1. Po zatwierdzeniu uruchomienia potoku zwróć uwagę, że etap Wdrażanie rozpoczyna się.

    Poczekaj na zakończenie etapu.

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