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

如何用ADF的ForEach与Execute Pipeline执行文件夹内所有管道

实现ADF指定文件夹下所有管道自动执行的方案

步骤1:动态获取目标文件夹的管道列表

ADF没有内置活动直接读取管道列表,需通过Web活动调用ARM API获取工厂内所有管道,再筛选出目标文件夹的管道:

  • 配置Web活动:
    • URL:https://management.azure.com/subscriptions/{订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.DataFactory/factories/{ADF工厂名称}/pipelines?api-version=2018-06-01
    • 请求方法:GET
    • 身份验证:选择MSI,资源填写https://management.azure.com/
  • 筛选目标文件夹管道:用表达式从Web活动返回结果中过滤,比如目标文件夹路径为/ETL/SubFolder,表达式如下:
    @filter(activity('获取管道列表').output.value, item().folder?.name == '/ETL/SubFolder')
    
    注:若管道在根目录,folder属性不存在,需调整判断逻辑(比如@empty(item().folder))。

步骤2:用ForEach活动遍历执行管道

将筛选后的管道列表传入ForEach,逐个触发执行:

  • ForEach的Items属性填写上述筛选表达式,或先将筛选结果存入变量再引用变量
  • ForEach内部添加Execute Pipeline活动:
    • 管道名称:用动态内容@item().name直接引用当前遍历到的管道名
    • 子管道参数:若需传递参数,根据子管道的参数配置动态内容即可

步骤3:关键优化与注意事项

  • 执行模式:ForEach默认并行执行(最大20并发),需串行执行则将Sequential属性设为true
  • 权限配置:确保ADF托管标识(MSI)拥有当前工厂的Microsoft.DataFactory/factories/pipelines/read和Microsoft.DataFactory/factories/pipelines/run/action权限,否则无法获取列表和触发管道
  • 错误处理:可开启ForEach的ContinueOnError属性为true,避免单个子管道失败中断整个父管道;也可在Execute Pipeline后添加日志活动记录失败信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:20:25