ADF跨存储账户复制Blob容器时出现BadRequest空消息错误求助
排查ADF跨存储复制Blob容器时BadRequest错误的步骤
- 检查For-each活动迭代参数配置
确认container_name参数是标准数组格式(如["container1", "container2"]),管道参数类型需设为Array;For-each的Items属性要直接引用@pipeline().parameters.container_name,避免表达式格式错误。 - 验证Copy Data活动容器名称动态绑定
源和目标数据集的容器名称必须绑定For-each当前迭代项@item(),检查是否写错变量名(如误写为@items())。 - 核对存储账户权限
即使链接服务测试成功,运行身份(托管标识/服务主体)需具备对应权限:- 源存储账户需配置
Storage Blob Data Contributor角色 - 目标存储账户需配置写入权限
- 若用SAS令牌,确认权限包含
Read(源)、Write/Create(目标)且未过期
- 源存储账户需配置
- 查看运行详情日志
在ADF管道运行记录中,点击失败的活动,展开输入/输出部分,检查请求内容是否存在容器名称为空、格式非法,或URL拼接错误的情况。 - 验证容器名称合法性
Blob容器名称需符合规则:仅含小写字母、数字、短横线,且短横线不能在首尾。确认container_name数组内的所有名称都满足要求。 - 单容器测试排查
临时将container_name改为单元素数组(如["test-container"])运行管道,若单个容器复制成功,说明批量迭代存在参数传递问题;若仍失败,聚焦Copy Data活动本身配置。
内容的提问来源于stack exchange,提问作者Vaishnavi Vaishu
相关产品推荐
相关产品推荐

