Exercício ─ Adicione um trabalho de visualização ao fluxo de trabalho
Você deseja adicionar um trabalho extra ao fluxo de trabalho para verificar quais alterações serão feitas no ambiente do Azure.
Durante o processo, você executará as seguintes tarefas:
- Atualize o arquivo YAML de definição do fluxo de trabalho para adicionar um novo trabalho de visualização.
- Adicione um ambiente ao repositório GitHub.
- Configure o ambiente para exigir uma revisão.
- Atualize o arquivo YAML do fluxo de trabalho para usar o ambiente no trabalho de implantação.
- Veja os resultados do teste de hipóteses e aprove uma execução de fluxo de trabalho.
Atualize a definição do fluxo de trabalho para adicionar um trabalho de visualização
Aqui, você adiciona um novo trabalho ao fluxo de trabalho que executa a operação de teste de hipóteses.
No Visual Studio Code, abra o arquivo workflow.yml na pasta .github/workflows.
Entre os trabalhos Validar e Implantar, adicione a seguinte definição para o trabalho Visualizar:
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
Observe que o trabalho de visualização depende da conclusão bem-sucedida dos trabalhos lint e validar.
Atualize o trabalho Implantar para torná-lo dependente do trabalho Visualizar:
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 }}
Salve as alterações no arquivo.
Adicionar um ambiente
No navegador, acesse Configurações>Ambientes.
Selecione Novo ambiente.
Insira Site como o nome do ambiente.
Selecione Configurar ambiente.
Nas etapas de instalação deste módulo, você já criou uma credencial federada para o fluxo de trabalho a ser usado quando ele é implantado no ambiente.
Adicionar a regra de proteção de revisor necessário ao ambiente
Selecione a caixa Revisores necessários.
Adicione seu nome de usuário do GitHub à lista de revisores.
Selecione Salvar regras de proteção.
Selecione Ambientes para sair da configuração.
Atualize a definição do fluxo de trabalho para exigir um ambiente e um revisor
Aqui, você configura o trabalho Implantar para que ele seja executado no ambiente Site criado anteriormente.
Abra o arquivo workflow.yml no Visual Studio Code.
Adicione o parâmetro
environment
ao trabalho Implantar. Defina o valor comoWebsite
para corresponder ao nome do ambiente que você criou: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 }}
Salve o arquivo.
Verificar e fazer commit a definição do fluxo de trabalho
Verifique se o arquivo workflow.yml é semelhante ao seguinte código:
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 }}
Se o seu arquivo tiver uma aparência diferente, atualize-o para que corresponda a este exemplo e, em seguida, salve-o.
Faça commit e efetue push das alterações no repositório Git executando os seguintes comandos no terminal do Visual Studio Code:
git add . git commit -m "Add preview job" git push
Executar o fluxo de trabalho e examinar os resultados do teste de hipóteses
No navegador, acesse as execuções de fluxo de trabalho.
Selecione a execução mais recente do fluxo de trabalho.
Aguarde até que o fluxo de trabalho conclua os trabalhos Lint, Validar e Visualizar. Embora o GitHub atualize automaticamente a página com o status mais recente, é uma boa ideia atualizá-la ocasionalmente.
Observe que o fluxo de trabalho solicita uma revisão. Dependendo de como você configurou sua conta do GitHub, você receberá uma notificação por email ou pela Web com uma solicitação para revisar o fluxo de trabalho.
Antes de aprovar a continuação do fluxo de trabalho, você analisará os resultados do teste de hipóteses para garantir que eles correspondam às expectativas.
Selecione o trabalho Visualizar.
Escolha a etapa Executar teste de hipóteses para inspecionar as alterações relatadas pelo comando de teste de hipóteses.
Observe que o log do fluxo de trabalho fornece resultados do teste de hipóteses semelhantes ao seguinte código:
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.
A operação Teste de hipóteses detectou uma alteração no espaço de trabalho de análise de registros e nos recursos do site. No entanto, as alterações detectadas são ruídos. Elas não representam as alterações reais no recurso. Com o tempo, a equipe do Azure trabalhará para reduzir o ruído. Enquanto isso, você pode ignorar as alterações detectadas.
Você também poderá ver um item na saída do teste de hipóteses do tipo de recurso
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
. Este é um recurso que o Application Insights cria automaticamente. O comando de teste de hipóteses detecta que nenhuma alteração será feita no recurso.
Aprovar a execução do fluxo de trabalho
Selecione o Resumo para retornar à visão geral da execução do fluxo de trabalho.
Selecione o botão Analisar implantações no painel de análise.
No pop-up Analisar implantações pendentes, selecione o ambiente Site. Na caixa Deixar um comentário, insira Resultados do teste de hipóteses examinados.
Selecione Aprovar e implantar.
Observar a implantação bem-sucedida
Depois que você aprovar a execução do fluxo de trabalho, observe que o trabalho implantar começa a ser executado.
Aguarde a conclusão do trabalho.
Observe que a execução do fluxo de trabalho foi concluída com sucesso.