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

Azure Logic Apps:动态获取Analysis Services的RefreshId

嘿,刚好我之前做过类似的场景,给你分享两种在Azure Logic App里动态获取AAS表格模型最新RefreshId的实用方法,分两种情况来看:

情况1:刚触发刷新时直接捕获RefreshId

这是最直接的方式——当你在Logic App里触发AAS的异步刷新任务时,响应结果里就会返回对应的RefreshId,完全不用手动去查:

  • 首先在Logic App中添加Azure Analysis Services的Refresh Model内置动作,配置好你的AAS服务器名称、目标数据库、刷新类型(比如Full/Incremental)等参数。
  • 执行这个动作后,你可以在后续步骤里直接引用它的输出字段。比如用表达式 @{body('Refresh_Model')?['refreshId']} 就能拿到这次刷新任务的ID,直接用来后续查询刷新状态。
  • 如果你习惯用HTTP动作调用AAS的REST API来触发刷新,那POST请求的响应头里的Location字段最后一段就是RefreshId,也可以用表达式提取:@{split(outputs('HTTP_Trigger_Refresh')?['headers']?['Location'], '/')[-1]}

情况2:查询历史任务获取最新的RefreshId

要是你需要获取最近一次(不管是不是当前Logic App触发的)刷新任务的ID,可以调用AAS的刷新历史API:

  • 添加一个HTTP动作,方法设为GET,URL格式如下:
    https://<你的AAS服务器名>.asazure.windows.net/servers/<你的服务器名>/databases/<你的数据库名>/refreshes?api-version=2021-07-01
    
  • 配置授权方式为Azure AD OAuth,选择你的AAS资源(资源URI填https://*.asazure.windows.net),并确保Logic App的服务主体有AAS的Process Database权限。
  • 响应会返回一个按时间倒序排列的刷新任务数组,第一个元素就是最新的任务。用表达式 @{first(body('Get_Refresh_History')?['value'])?['refreshId']} 就能直接提取出最新的RefreshId。

几个小提醒:

  • 记得在Logic App的运行历史里查看动作的输出结构,不同版本的内置动作或API可能字段名略有差异,随时调整表达式即可。
  • 权限一定要配对,不管是内置动作还是HTTP调用,没有Process权限的话都会返回403错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:18:29