如何在ARM模板中为应用服务配置多组触发器-动作对的自动修复规则
App Service 自动修复规则多触发多动作配对配置解答
结论:Azure App Service 原生自动修复(Auto Heal)功能目前不支持多组独立的「触发条件-动作」配对配置,所有触发条件默认共享同一个全局动作,你的需求可通过以下两种可行方式实现
方案一:拆分规则,原生能力组合实现(无需额外自定义代码)
- 自动修复模块仅配置状态码触发回收规则:在ARM模板的
Microsoft.Web/sites资源节点下,配置autoHealRules的触发条件为10分钟内500状态码请求数≥10,动作设置为Recycle - 请求计数触发记事件的需求通过诊断规则实现:为App Service开启诊断日志,配置日志告警规则,匹配10分钟窗口总请求数≥10时生成事件记录即可
方案二:自定义监控实现完全规则配对
如果需要两组规则逻辑完全独立且统一管理,可搭配Azure函数/自动化 runbook 实现:
- 编写定时脚本拉取App Service的请求指标,分别判断两个触发条件
- 命中请求计数规则时调用接口写入事件日志,命中500状态码规则时调用应用进程回收接口
- 所有相关资源均可纳入ARM模板统一部署
ARM模板自动修复配置参考片段
以下为方案一中状态码触发回收规则的配置示例:
{ "type": "Microsoft.Web/sites", "apiVersion": "2022-09-01", "name": "[parameters('webAppName')]", "properties": { "siteConfig": { "autoHealEnabled": true, "autoHealRules": { "triggers": { "statusCodes": [ { "statusCode": 500, "count": 10, "timeInterval": "00:10:00" } ] }, "actions": { "actionType": "Recycle", "minProcessExecutionTime": "00:00:00" } } } } }
内容的提问来源于stack exchange,提问作者Swati Sahay
相关产品推荐
相关产品推荐

