0

我正在尝试创建一个设置,在其中部署“容器的 Webapp”,但我想通过 Azure Monitor 进行一些检查。我的想法是部署 web 应用程序,然后设置一个检查 azure 监视器警报集是否可用的门。当可用性检查失败时,它应该回滚。

文档指出“当发布管道检测到 Application Insights 警报时,管道可以控制或回滚部署,直到警报得到解决”,但我不知道如何在 azure devops 中配置它。

我有一个 AppService 计划和一个正在运行的 Web 应用程序。我还创建了一个 Application Insights 实例,并通过“Azure App Service manage”任务启用了持续监控。我创建的警报是:

az monitor metrics alert create -n 'Availability' -g ${RG_NAME} --scopes "${APP_INSIGHTS_PROD}" \
--condition 'avg availabilityResults/availabilityPercentage < 90' \
--description "created from Azure DevOps"

作为部署后条件,我启用了 Gates,并将其配置为检查可用性警报,该警报有效。当我故意调整某些东西以使应用程序失败时,Gate 工作并最终使 Stage 失败。我还启用了自动重新部署以部署最后一次成功的部署,但这并没有做任何事情,因为实际的部署任务已成功完成......只是门失败和阶段失败。

4

1 回答 1

0

我通过 UI 构建发布,为了使其工作,我必须通过 yaml 创建管道。通过部署作业,我可以使用环境,在 Azure DevOps UI 中,您可以配置环境以添加检查。查询 Azure Monitor 警报是为环境添加的可用检查之一。检查是在作业开始时完成的,因此我创建了一个单独的部署作业,该作业使用 Query Azure Monitor Alert 检查来引用环境。之后,我创建了另一个具有依赖和条件的作业,只有在查询警报作业失败时才会运行。该工作将交换插槽。

于 2020-12-24T15:53:35.090 回答