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

如何在ADF中通过GET方法Web活动动态传递管道RunId获取运行状态

同一ADF实例中动态获取目标管道运行状态的解决方案

步骤1:获取目标管道的RunId

不能直接用当前管道的@pipeline().RunId(这是当前管道的运行ID),需通过Lookup活动调用Azure管理API查询目标管道的运行记录:

  • 配置Lookup活动的数据源为Web类型,使用GET请求
  • 请求URL格式:
    https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelineruns?api-version=2018-06-01&$filter=PipelineName eq '{targetPipelineName}' and (Status eq 'InProgress' or Status eq 'Succeeded' or Status eq 'Failed')&$orderby=RunStart desc
    
  • 替换URL中的{subscriptionId}、{resourceGroupName}、{factoryName}、{targetPipelineName}为实际值;$filter可按需调整状态筛选规则,$orderby=RunStart desc确保返回最新的运行记录
  • 身份验证选择Managed Identity,确保当前ADF的托管身份拥有Data Factory Contributor或Monitoring Reader权限,能访问管道运行数据

步骤2:提取目标RunId

Lookup活动返回的结果包含目标管道的运行记录,用以下表达式提取最新的RunId:

@activity('Lookup_GetTargetRunId').output.value[0].RunId

若需获取特定触发条件的RunId,可调整$filter参数(比如添加时间范围筛选)。

步骤3:动态调用Web活动获取运行状态

将提取到的RunId动态拼接进Web活动的URL:

@concat('https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/pipelineruns/', activity('Lookup_GetTargetRunId').output.value[0].RunId, '?api-version=2018-06-01')

同样配置Managed Identity身份验证,确保权限合规。

注意事项

  • 确认ADF托管身份具备足够权限访问Azure管理API,至少需对Data Factory实例拥有读取权限
  • 若目标管道存在多个运行实例,需通过$filter和$orderby精准定位到所需的运行记录
  • 可先用Set Variable活动存储提取到的RunId,方便后续多处调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:25:05