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

如何在Azure Monitor Workbook中结合Azure Resource Graph与ARM数据源批量查询函数应用的执行错误检测器数据?

实现Azure Workbooks中批量调用ARM API处理Resource Graph结果的方案

你的需求完全可以实现!之前尝试用单个参数的方式只适用于单资源场景,而通过Workbooks的计算列+ARM数据源就能轻松实现对Resource Graph返回的每个函数应用自动调用API并展示结果,具体步骤如下:

步骤1:创建Resource Graph查询获取函数应用列表

首先创建一个Azure Resource Graph查询步骤,获取订阅/资源组范围内的所有函数应用,至少要包含resourceId字段(用来后续调用ARM API),示例查询:

resources
| where type == "microsoft.web/sites" and kind contains "functionapp"
| project resourceId, 应用名称=name, 资源组=resourceGroup, 订阅=subscriptionId

执行后会得到一个包含所有目标函数应用的表格。

步骤2:添加计算列批量调用ARM API

接下来给这个表格添加计算列,让每行自动调用detectors/functionExecutionErrors API并提取结果:

  • 点击表格右上角的「编辑」按钮,进入编辑模式
  • 在表格工具栏选择「添加列」→「计算列」
  • 在计算列配置面板中:
    • 数据源类型选择「Azure Resource Manager」
    • API版本填写2022-03-01(或函数应用对应的最新稳定API版本,可在Azure REST API文档中确认)
    • 资源路径填写{resourceId}/detectors/functionExecutionErrors,这里的{resourceId}会自动绑定当前行的resourceId字段,实现每行单独调用API
    • 响应处理选择「JSON Path」,填写你需要提取的路径:$.properties.dataset[0].table.rows[0][1]
    • 给列起个直观的名字,比如「执行健康状态摘要」
  • 保存配置后,表格会自动为每一行函数应用调用ARM API,并展示提取后的结果

关键注意事项

  • 权限配置:确保Workbooks使用的身份(比如你的用户身份或托管标识)拥有对目标函数应用的Microsoft.Web/sites/detectors/read权限,否则会出现API调用失败的情况
  • 速率限制:如果目标函数应用数量较多,可能会触发ARM API的速率限制,建议适当缩小查询范围(比如按资源组筛选),或者调整Workbooks的查询刷新频率
  • API版本兼容性:不同的ARM API版本返回的JSON结构可能略有差异,要确保使用的API版本和你测试时的版本一致,避免JSON Path提取失败

为什么之前的参数方案不适用?

你之前尝试将Resource Graph结果标记为单值参数,这种方式只能传递单个资源ID,适合单资源的交互式场景;而计算列的方式会自动遍历表格的每一行,为每个资源单独发起ARM API请求,完全满足你批量处理所有资源的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:57:39