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

如何在ADF中获取存储账户文件共享元数据并配置跨账户复制活动

跨订阅存储账户文件共享批量复制实现+错误排查

一、完整操作步骤

1. 用Get Metadata拉取所有文件共享

  • 源Linked Service选Azure文件存储,跨订阅优先用服务主体,给它加源存储账户的Storage File Data SMB Share Contributor权限;用账户密钥的话,确保密钥没过期、输入正确。
  • Get Metadata活动里,字段列表一定要勾选Child items,对应的数据集只选存储账户,别填具体共享路径——留空才能拉取全量共享列表。

2. 用For Each遍历共享列表

  • 添加For Each活动,把项设置为@activity('你的Get Metadata活动名称').output.childItems,怕并发过高出问题就开启Sequential(顺序执行)。
  • 每个循环内放置Copy Data活动,动态绑定源和目标的共享名称。

3. 动态配置Copy Data的路径

  • 源数据集的文件路径填@item().name,直接对应遍历到的共享名;目标数据集也填同样内容,这样目标会自动创建同名共享,把所有内容原样复制过去。

二、BadRequest错误排查

你遇到的这个空内容BadRequest,基本是Linked Service或数据集配置出错,按以下顺序排查:

  • 先检查Linked Service的身份验证:服务主体的租户ID、客户端ID、密钥有没有输错,权限是否给足;用账户密钥的话,再核对一遍是不是最新有效密钥。
  • 检查Get Metadata的数据集:绝对不能填写具体共享路径,必须只选择存储账户,不然拉取不到全量共享,直接触发错误。
  • 查看Copy Data的源配置:动态路径@item().name有没有拼写错误,For Each的项是否正确绑定了Get Metadata的输出结果。
  • 最后检查存储账户防火墙:如果开启了防火墙,得把ADF的IP地址或虚拟网络加进允许访问列表,否则无法连接存储。

三、注意事项

  • 跨订阅场景下,服务主体需要在两个订阅的存储账户都配置对应权限,别漏了任意一边。
  • 若文件共享数量较多,可调整For Each的并发数(默认20),避免触发存储账户的限流机制。
  • 先测试单个共享的复制流程没问题,再执行批量操作,减少无效调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:05:57