You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Monitor告警经Logic App发Slack通知为空值问题求助

解决Azure Monitor告警通过Logic App推送Slack字段为空的问题

判断确认

你的判断完全正确:Azure Monitor触发告警后推送的HTTP请求采用通用告警Schema,和你手动配置的Logic App「收到HTTP请求」步骤的自定义Schema不匹配,导致第二步Slack消息中使用的动态变量路径(匹配自定义Schema)无法从实际Payload中读取到值,最终显示为空。

解决步骤

1. 更新Logic App HTTP触发器的Schema

  • 进入Logic App的「收到HTTP请求」步骤,点击「使用示例负载生成Schema」。
  • 获取Azure告警的实际Payload:可以手动触发一次告警,通过工具抓取请求体;或者直接使用通用告警Schema的核心结构示例。
  • 将Payload粘贴到输入框,自动生成匹配的Schema后保存触发器配置。

通用告警核心Payload示例:

{
  "schemaId": "AzureMonitorCommonAlertSchema",
  "data": {
    "essentials": {
      "alertRuleName": "响应时间监控告警",
      "description": "服务响应时间超过阈值",
      "targetResourceName": "OrderService",
      "severity": "S2"
    },
    "alertContext": {
      "conditionType": "Metric",
      "condition": {
        "metricName": "ResponseTime",
        "metricValue": "500",
        "threshold": "300"
      }
    }
  }
}

2. 修正Slack消息的动态变量路径

根据通用告警Schema的结构,调整第二步「发送消息」中的动态变量路径:

  • 告警名称:triggerBody()?['data']?['essentials']?['alertRuleName']
  • 告警描述:triggerBody()?['data']?['essentials']?['description']
  • 资源名称:triggerBody()?['data']?['essentials']?['targetResourceName']
  • 响应时间指标值:triggerBody()?['data']?['alertContext']?['condition']?['metricValue']

3. 测试验证

  • 手动触发Azure告警规则,或者在Logic App中使用「测试」功能,导入上述示例Payload作为测试数据。
  • 检查Slack频道收到的通知,确认各字段已正确填充。

额外注意事项

  • 确保Azure告警规则的通知设置中,勾选「使用通用警报架构」,避免使用旧版Schema导致路径不匹配。
  • 确认Logic App的HTTP触发器URL已正确配置到告警规则的Webhook通知中。

内容的提问来源于stack exchange,提问作者Nayden Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:57:27