Azure ADF调用Azure Batch时报Shared Access Signature生成错误求助
报错根因
你遇到的Cannot create Shared Access Signature unless Account Key credentials are used.报错,是因为Azure Data Factory调用Azure Batch执行任务时,需要为关联的存储账户自动生成SAS令牌,用于任务的资源挂载、日志读写等操作,该操作要求存储关联服务必须使用存储账户密钥作为认证方式,其他认证方式(如SAS令牌、托管身份、服务主体)均不支持自动生成SAS的操作。
虽然你的所有关联服务连接测试都能通过,但连接测试仅验证基础访问权限,不校验Batch集成所需的特殊权限要求。
修复步骤
- 调整Azure Blob Storage关联服务认证方式
进入存储关联服务的配置界面,将认证模式切换为「账户密钥」,你可以直接从已配置的Key Vault中读取预先存储的存储账户访问密钥,无需明文填写密钥值,保存后重新测试关联服务连接确保正常。 - 校验Batch关联服务配置
确认Azure Batch关联服务中绑定的存储账户,和你刚修改认证方式的存储账户完全一致,避免出现账户不匹配的问题。 - 重新调试管道
保存所有关联服务修改后,重新触发管道调试,运行ls命令即可验证问题是否解决。
可选替代方案
如果你不允许使用存储账户密钥进行认证,可以手动预先生成存储容器的SAS令牌,在Batch任务命令中直接通过带SAS的存储路径访问资源,无需ADF自动生成SAS,该方案适合对安全合规有强要求的场景,配置复杂度更高。
相关配置截图
内容的提问来源于stack exchange,提问作者user42012
相关产品推荐
相关产品推荐




