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

同一租户跨订阅ADF Blob容器复制数据活动配置求助

同租户跨订阅Blob存储容器数据复制的链接服务适配方案

场景概述

同一Azure租户内,两个不同订阅各有一个启用公共访问的Blob存储账户:

  • 源存储账户包含blobcontainer1uat等以uat为后缀的容器
  • 需要将源容器数据批量复制到目标存储账户中对应名称(将uat替换为stg,如blobcontainer1stg)的容器内
  • 参考跨订阅文件共享复制方案时,原方案中@{linkedService().filesharename}的写法不适用于Blob存储链接服务,需调整配置逻辑

解决方案步骤

1. 配置Blob存储链接服务

分别为源、目标Blob存储账户创建Azure Blob存储链接服务:

  • 身份验证方式推荐选择托管标识(同租户下权限配置更便捷),也可使用账户密钥或SAS令牌
  • 注意:不要在链接服务中指定固定容器,容器名的动态指定放在数据集层面实现

2. 创建动态数据集

源数据集

  • 关联源Blob链接服务
  • 容器名称配置为动态内容:
    • 若通过流水线参数传递单个容器名:@{pipeline().parameters.SourceContainerName}
    • 若批量遍历容器,后续结合Get Metadata+ForEach:@{item().name}(item为遍历到的容器对象)

目标数据集

  • 关联目标Blob链接服务
  • 容器名称通过表达式动态生成(替换源容器名的后缀):
    • 单容器参数场景:@{replace(pipeline().parameters.SourceContainerName, 'uat', 'stg')}
    • 批量遍历场景:@{replace(item().name, 'uat', 'stg')}

3. 构建复制流水线

批量复制场景(多容器)

  1. 添加Get Metadata活动:
    • 关联源Blob数据集(容器留空)
    • 在"字段"选项中勾选Child Items,用于获取源账户下所有容器列表
  2. 添加ForEach活动:
    • 输入Items设置为过滤后的容器列表:@filter(activity('Get Metadata').output.childItems, contains(item().name, 'uat'))
  3. 在ForEach内部添加复制活动:
    • 源选择源数据集,目标选择目标数据集,自动继承动态容器名配置

单容器复制场景

直接添加复制活动,通过流水线参数传入源容器名,目标容器名自动通过表达式生成

关键适配说明

原文件共享方案中@{linkedService().filesharename}是从链接服务读取固定文件共享名,但Blob存储链接服务无filesharename属性。因此Blob场景需将容器名的动态逻辑移至数据集层面,通过参数、遍历变量或字符串替换表达式来实现容器名的动态映射,而非从链接服务读取配置。

内容的提问来源于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.25 20:11:19