启用Azure通用警报架构后customProperties值为Null的问题求助
问题分析与解决方案
核心原因
通用警报架构和旧版架构的自定义属性传递路径完全不同:
- 旧架构:自定义属性直接放在根层级的
customProperties字段中 - 通用警报架构:自定义属性会被嵌套到
properties.alertContext.customProperties路径下(部分特定类型警报,如日志警报,可能在properties.alertContext.properties下,需以实际payload为准)
你看到根层级customProperties为Null,是因为通用架构下该字段不再被使用,需要调整逻辑应用的字段解析路径。
验证与修复步骤
- 确认通用架构的Payload结构
触发一次测试警报,在逻辑应用的运行历史中查看完整接收Payload,会发现自定义属性的实际位置类似如下结构:{ "properties": { "alertContext": { "customProperties": { "你的自定义键1": "对应值1", "你的自定义键2": "对应值2" } } } } - 调整逻辑应用解析逻辑
将原来引用根层级customProperties的表达式,修改为对应嵌套路径。比如原表达式triggerBody()?['customProperties']需改为triggerBody()?['properties']?['alertContext']?['customProperties']。 - 特殊场景适配
若为日志类警报,自定义属性可能出现在properties.alertContext.properties下,同样通过查看测试Payload确认具体位置后调整解析路径即可。
额外注意事项
- 确保警报规则的「自定义属性」配置中,所有键值对无空值或格式错误
- 使用逻辑应用的「Azure 警报」触发器时,启用通用架构后触发器输出结构会自动适配,但后续步骤的字段引用需手动更新
内容的提问来源于stack exchange,提问作者SergioDG
相关产品推荐
相关产品推荐

