如何向Azure Monitor Workbooks的app函数传递动态参数?
Application Insights工作簿动态传入app函数的JSON子值解决方法
问题场景
在Application Insights工作簿中添加查询时,通过下拉框筛选环境,下拉框的JSON配置如下:
[ { "label": "测试环境", "value": { "m":"<subscription-test-m>/<resource group-m>/<instance-m>", "e":"<subscription-test-e>/<resource group-e>/<instance-e>" } }, { "label": "生产环境", "value": { "m":"<subscription-prod-m>/<resource group-m>/<instance-m>", "e":"<subscription-prod-e>/<resource group-e>/<instance-e>" }, "selected":true } ]
尝试用app("{Environment:value.m}").requests;动态传入环境标识符时,收到错误:The request had some invalid properties: "Identity '[object Object]' could not be resolved",需要解决如何提取JSON子值作为字面量传入app函数。
解决方法
- 问题根源:引用嵌套对象属性时使用了错误的语法,导致工作簿将参数解析为对象而非字符串字面量。
- 正确的KQL查询写法:将参数引用的冒号改为点号,直接通过对象属性路径提取字符串值:
app("{Environment.value.m}").requests;
也可以先将子属性值赋值给变量,再传入app函数,增强可读性:
let targetApp = "{Environment.value.m}"; app(targetApp).requests;
这样就能正确解析出对应的资源标识符字符串,避免对象解析错误。
内容的提问来源于stack exchange,提问作者lissajous
相关产品推荐
相关产品推荐

