持续监控 Azure DevOps 发布

Continuous monitoring Azure DevOps Release

我正在尝试创建一个部署“容器 Web 应用程序”的设置,但我想通过 Azure Monitor 构建一些检查。我的想法是部署 webapp,然后有一个门来检查 azure monitor 警报集的可用性。当可用性检查失败时,它应该回滚。

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

我有一个 AppService 计划和一个网络应用 运行。我还创建了一个 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"

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

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