Ćwiczenie — dodawanie zadania w wersji zapoznawczej do przepływu pracy
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.
W programie Visual Studio Code otwórz plik workflow.yml w folderze .github/workflows .
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ń.
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 }}
Zapisz zmiany w pliku.
Dodawanie środowiska
W przeglądarce przejdź do pozycji Środowiska ustawień>.
Wybierz pozycję Nowe środowisko.
Wprowadź wartość Witryna internetowa jako nazwę środowiska.
Wybierz pozycję 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
Wybierz pole Wymagane recenzentów.
Dodaj własną nazwę użytkownika usługi GitHub do listy recenzentów.
Wybierz pozycję Zapisz reguły ochrony.
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 .
Otwórz plik workflow.yml w programie Visual Studio Code.
environment
Dodaj parametr do zadania wdrażania. Ustaw wartość naWebsite
, 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 }}
Zapisz plik.
Weryfikowanie i zatwierdzanie definicji przepływu pracy
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.
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
W przeglądarce przejdź do przebiegów przepływu pracy.
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ę.
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.
Przed zatwierdzeniem kontynuacji przepływu pracy należy przejrzeć wyniki analizy co-jeżeli, aby upewnić się, że są zgodne z oczekiwaniami.
Wybierz zadanie podglądu.
Wybierz krok Uruchom co-jeżeli, aby sprawdzić zmiany raportów polecenia analizy co-jeżeli.
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 - toywebsite
zasobu . 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
Wybierz podsumowanie, aby powrócić do przeglądu przebiegu przepływu pracy.
Wybierz przycisk Przejrzyj wdrożenia na panelu przeglądu.
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).
Wybierz pozycję Zatwierdź i wdróż.
Obserwowanie pomyślnego wdrożenia
Po zatwierdzeniu przebiegu przepływu pracy zwróć uwagę, że zadanie wdrażania zostanie uruchomione.
Poczekaj na zakończenie zadania.
Zwróć uwagę, że przebieg przepływu pracy zakończy się pomyślnie.