Exercício - Adicione um estágio de visualização ao seu pipeline
Você deseja adicionar um estágio extra ao seu pipeline para verificar quais alterações serão feitas em seu ambiente do Azure.
Durante o processo, você:
- Atualize o arquivo YAML do pipeline para adicionar um novo estágio de visualização.
- Adicione um ambiente ao Azure Pipelines.
- Configure o ambiente para exigir uma aprovação.
- Atualize o arquivo YAML de pipeline para usar o ambiente para o estágio de implantação.
- Visualize os resultados hipotéticos e aprove uma execução de pipeline.
Atualizar a definição de pipeline para adicionar um estágio de visualização
Aqui, você adicionará um novo estágio ao seu pipeline que executa a operação hipotética.
No Visual Studio Code, abra o arquivo azure-pipelines.yml na pasta deploy .
Entre os estágios Validar e Implantar , adicione a seguinte definição para o estágio Visualização :
- 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)
Guarde as alterações ao ficheiro.
Adicionar um ambiente
No navegador, vá para Ambientes de Pipelines>.
Selecione Criar ambiente.
Digite Website como o nome do ambiente.
Deixe a descrição em branco. Em Recurso, selecione Nenhum.
Nota
No Azure Pipelines, os ambientes são usados para habilitar recursos de implantação. Alguns desses recursos se aplicam somente quando você está implantando no Kubernetes ou em máquinas virtuais. Neste módulo, não usamos esses recursos e você pode ignorá-los.
Selecione Criar.
Adicionar uma verificação de aprovação ao ambiente
Selecione a guia Aprovações e verificações no canto superior esquerdo da tela.
Selecione Aprovações.
Na caixa de texto Aprovadores , digite seu próprio nome e selecione-se .
Selecione o botão de seta ao lado de Avançado.
Observe que, por padrão, os aprovadores têm permissão para aprovar as execuções que acionaram. Como você é a única pessoa que trabalhará com esse pipeline, deixe esta caixa de seleção marcada.
Selecione Criar.
Atualizar a definição de pipeline para exigir um ambiente e aprovação
Aqui, você configurará o estágio Implantar para ser executado no ambiente do site criado anteriormente. Você converterá o estágio Implantar para executar um trabalho de implantação em vez de um trabalho padrão e o configurará para implantar no ambiente.
No arquivo azure-pipelines.yml no Visual Studio Code, substitua a definição de estágio Deploy pelo seguinte código:
- 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)
Observe que você definiu uma nova
checkout
etapa. Ao contrário dos trabalhos normais, os trabalhos de implantação precisam ser configurados para fazer check-out (download) dos arquivos do repositório Git. Se você não fizer essa etapa, o trabalho de implantação não poderá ler seu arquivo Bicep. Em vez disso, você pode considerar o uso de artefatos de pipeline para enviar arquivos entre os estágios do pipeline. Temos links para mais informações sobre artefatos no resumo.Guarde o ficheiro.
Verificar e confirmar sua definição de pipeline
Verifique se o arquivo azure-pipelines.yml se parece com o código a seguir:
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)
Se isso não acontecer, atualize-o para corresponder a este exemplo e salve-o.
Confirme e envie suas alterações para o repositório Git executando os seguintes comandos no terminal do Visual Studio Code:
git add . git commit -m "Add preview stage" git push
Execute o pipeline e revise as saídas hipotéticas
No seu navegador, vá para o seu pipeline.
Selecione a execução mais recente do seu pipeline.
Aguarde até que o pipeline conclua os estágios Lint, Validate e Preview . Embora o Azure Pipelines atualize automaticamente a página com o status mais recente, é uma boa ideia atualizá-la ocasionalmente.
Se lhe for pedido para conceder permissão para aceder a um recurso, selecione Ver e, em seguida, selecione Permitir.
Observe que o Azure Pipelines solicita uma aprovação. Você também recebe um e-mail informando que o pipeline precisa de sua aprovação.
Antes de aprovar a continuação do pipeline, você analisará os resultados hipotéticos para garantir que eles correspondam às suas expectativas.
Selecione o estágio de visualização .
Selecione a etapa Executar hipóteses para inspecionar as alterações relatadas pelo comando hipotético.
Observe que o log de pipeline fornece resultados hipotéticos semelhantes ao código a seguir:
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.
A operação hipotética detetou uma alteração no recurso do site. No entanto, as alterações que detetou são ruído. Eles não representam mudanças reais no seu recurso. Com o tempo, a equipe do Azure trabalha para reduzir o ruído. Enquanto isso, para essas duas propriedades específicas, você pode ignorar as alterações detetadas.
Você também pode ver um item na saída hipotética para o tipo
microsoft.alertsmanagement/smartDetectorAlertRules/Failure Anomalies - toywebsite
de recurso . O Application Insights cria esse recurso automaticamente. O comando what-if deteta que nenhuma alteração será feita no recurso.
Aprovar a execução do pipeline
Selecione a seta para a esquerda para retornar aos detalhes da execução do pipeline.
Selecione o botão Revisão no painel de aprovação.
Na caixa Comentário, insira Resultados hipotéticos revisados.
Selecione Aprovar.
Observe a implantação bem-sucedida
Depois de aprovar a execução do pipeline, observe que o estágio Implantar começa a ser executado.
Aguarde até que a etapa termine.
Observe que a execução do pipeline é concluída com êxito.