ADF参数化:如何访问活动外定义的数组参数应用于复制活动数据集
外部Array类型参数在Foreach活动内Copy数据集的访问方案
这是Azure Data Factory/Synapse Pipeline场景下的标准配置操作,按以下步骤设置即可:
配置Foreach活动的项集合
将你在外部定义的Array参数填入Foreach活动的项(Items) 属性中,表达式写法为:@pipeline().parameters.你的Array参数名
配置完成后Foreach会自动遍历数组中的每一个元素,逐次执行内部的活动逻辑。Foreach内部给Copy活动的数据集参数传值
Foreach每次迭代的当前元素可以通过@item()直接获取:
- 如果你的Array参数存储的是纯字符串元素,直接给数据集的String类型参数填入
@item()即可 - 如果你的Array参数存储的是对象结构元素,提取对象中对应字符串字段即可,示例写法:
@item().你要取的字符串字段名
示例参考:
假设外部定义的Array参数targetFiles值为["sales_01.csv","sales_02.csv","sales_03.csv"],数据集配置的String类型参数为inputFileName
- Foreach活动项属性填
@pipeline().parameters.targetFiles- Copy活动对应的数据集参数
inputFileName填@item(),每次循环就会自动传入当前遍历到的文件名
注意事项
- 如果数组元素不是String类型,可通过
@string(item())做强制类型转换,避免类型校验报错 - 不要直接在Foreach内部直接引用整个外部Array参数,否则会传入完整数组而非当前迭代的单个元素,触发String参数的类型不匹配错误
内容的提问来源于stack exchange,提问作者Khushwant
相关产品推荐
相关产品推荐

