Ćwiczenie — dodawanie zadania w wersji zapoznawczej do przepływu pracy

Ukończone

Chcesz dodać dodatkowe zadanie do przepływu pracy, aby sprawdzić, jakie zmiany zostaną wprowadzone w środowisku platformy Azure.

Podczas tego procesu wykonasz następujące zadania:

  • Zaktualizuj plik YAML definicji przepływu pracy, aby dodać nowe zadanie w wersji zapoznawczej.
  • Dodaj środowisko do repozytorium GitHub.
  • Skonfiguruj środowisko, aby wymagać przeglądu.
  • Zaktualizuj plik YAML przepływu pracy, aby użyć środowiska dla zadania wdrożenia.
  • Wyświetl wyniki analizy co-jeżeli i zatwierdź przebieg przepływu pracy.

Aktualizowanie definicji przepływu pracy w celu dodania zadania w wersji zapoznawczej

W tym miejscu dodasz nowe zadanie do przepływu pracy, który uruchamia operację analizy co-jeżeli.

  1. W programie Visual Studio Code otwórz plik workflow.yml w folderze .github/workflows .

  2. Między zadaniami walidacji i wdrażania dodaj następującą definicję zadania w wersji zapoznawczej:

    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
    

    Zwróć uwagę, że zadanie w wersji zapoznawczej zależy od pomyślnego ukończenia lint i walidacji zadań.

  3. Zaktualizuj zadanie wdrażania, aby było zależne od zadania w wersji zapoznawczej:

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

Dodawanie środowiska

  1. W przeglądarce przejdź do pozycji Środowiska ustawień>.

  2. Wybierz pozycję Nowe środowisko.

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

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

  4. Wybierz pozycję Konfiguruj środowisko.

    Zrzut ekranu przedstawiający stronę usługi GitHub dla nowego środowiska z wyróżnionymi szczegółami i przyciskiem Konfiguruj środowisko.

W krokach konfiguracji tego modułu utworzono już poświadczenia federacyjne dla przepływu pracy do użycia podczas wdrażania w środowisku.

Dodawanie wymaganej reguły ochrony recenzenta do środowiska

  1. Wybierz pole Wymagane recenzentów.

  2. Dodaj własną nazwę użytkownika usługi GitHub do listy recenzentów.

    Zrzut ekranu przedstawiający interfejs usługi GitHub przedstawiający środowisko witryny internetowej z wyróżnionym polem wyboru wymaganych recenzentów i polem tekstowym.

  3. Wybierz pozycję Zapisz reguły ochrony.

  4. Wybierz pozycję Środowiska , aby zakończyć konfigurację.

Aktualizowanie definicji przepływu pracy w celu wymagania środowiska i recenzenta

W tym miejscu skonfigurujesz zadanie wdrażania , aby było uruchamiane względem utworzonego wcześniej środowiska witryny sieci Web .

  1. Otwórz plik workflow.yml w programie Visual Studio Code.

  2. environment Dodaj parametr do zadania wdrażania. Ustaw wartość na Website, aby odpowiadała nazwie utworzonego środowiska:

    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. Zapisz plik.

Weryfikowanie i zatwierdzanie definicji przepływu pracy

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

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

    Jeśli plik wygląda inaczej, zaktualizuj go, 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 job"
    git push
    

Uruchamianie przepływu pracy i przeglądanie danych wyjściowych analizy co-jeżeli

  1. W przeglądarce przejdź do przebiegów przepływu pracy.

  2. Wybierz najnowszy przebieg przepływu pracy.

    Poczekaj, aż przepływ pracy ukończy zadania lint, validate i preview . Chociaż usługa GitHub automatycznie aktualizuje stronę o najnowszym stanie, warto od czasu do czasu odświeżyć stronę.

  3. Zwróć uwagę, że przepływ pracy wyświetla monit o przejrzenie. W zależności od sposobu konfigurowania konta usługi GitHub otrzymasz wiadomość e-mail lub powiadomienie internetowe z żądaniem przejrzenia przepływu pracy.

    Zrzut ekranu przedstawiający interfejs usługi GitHub przedstawiający przebieg przepływu pracy z wyróżnionym wymaganiem przeglądu.

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

  4. Wybierz zadanie podglądu.

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

  6. Zwróć uwagę, że dziennik przepływu pracy zawiera wyniki warunkowe podobne do następującego kodu:

    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.
    

    Operacja analizy co-jeżeli wykryła zmianę obszaru roboczego usługi Log Analytics i zasobów witryny internetowej. Jednak wykryte zmiany są szumem. Nie reprezentują one rzeczywistych zmian w zasobie. Z czasem zespół platformy Azure pracuje nad zmniejszeniem szumu. W międzyczasie 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 . Jest to zasób tworzony automatycznie przez usługę Application Insights. Polecenie analizy co-jeżeli wykrywa, że nie zostaną wprowadzone żadne zmiany w zasobie.

Zatwierdzanie przebiegu przepływu pracy

  1. Wybierz podsumowanie, aby powrócić do przeglądu przebiegu przepływu pracy.

    Zrzut ekranu przedstawiający interfejs usługi GitHub przedstawiający menu Podsumowanie z wyróżnioną strzałką wstecz.

  2. Wybierz przycisk Przejrzyj wdrożenia na panelu przeglądu.

  3. W oknie podręcznym Przeglądanie oczekujących wdrożeń wybierz środowisko witryny internetowej . W polu Leave a comment (Pozostaw komentarz) wprowadź tekst Reviewed what-if results (Przegląd wyników analizy warunkowej).

  4. Wybierz pozycję Zatwierdź i wdróż.

    Zrzut ekranu przedstawiający interfejs usługi GitHub przedstawiający stronę zatwierdzania przepływu pracy z wyróżnionym przyciskiem Zatwierdź.

Obserwowanie pomyślnego wdrożenia

  1. Po zatwierdzeniu przebiegu przepływu pracy zwróć uwagę, że zadanie wdrażania zostanie uruchomione.

    Poczekaj na zakończenie zadania.

  2. Zwróć uwagę, że przebieg przepływu pracy zakończy się pomyślnie.