如何从发送至Function App的Azure Alert中访问自定义属性
在PowerShell Function App中访问Azure警报的自定义属性与Webhook属性
一、访问警报规则的customProperties
使用Azure Monitor通用警报架构(azureMonitorCommonAlertSchema)时,警报规则的customProperties直接嵌套在$actionGroup.Body.Data对象下,可通过以下方式访问:
# 获取全部自定义属性 $customProps = $actionGroup.Body.Data.customProperties # 访问单个自定义属性(假设属性名为"myCustomKey") $targetProp = $actionGroup.Body.Data.customProperties.myCustomKey
如果需要遍历所有自定义属性,可使用循环:
foreach ($prop in $customProps.PSObject.Properties) { Write-Host "属性名: $($prop.Name), 属性值: $($prop.Value)" }
二、获取Action Group的webhookProperties
你在警报规则JSON中看到的webhookProperties会作为顶级属性直接附加到请求Body中,无需从Data节点下查找,在PowerShell Function App中可这样获取:
# 获取全部webhook属性 $webhookProps = $actionGroup.Body.webhookProperties # 访问示例中的单个属性 $fooValue = $actionGroup.Body.webhookProperties.foo $barValue = $actionGroup.Body.webhookProperties.bar
遍历所有webhook属性的写法:
foreach ($prop in $webhookProps.PSObject.Properties) { Write-Host "Webhook属性名: $($prop.Name), 属性值: $($prop.Value)" }
结构验证参考
结合你提供的配置,警报触发后Function App收到的请求Body简化结构如下:
{ "Data": { "customProperties": { /* 警报规则自定义属性内容 */ }, /* 其他核心警报数据 */ }, "webhookProperties": { "foo": "bar", "bar": "foo" }, /* 通用架构其他字段 */ }
内容的提问来源于stack exchange,提问作者michiel Thai
相关产品推荐
相关产品推荐

