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

Synapse notebook中用多链接服务访问同一Azure Gen2存储多路径的问题

Synapse Notebook多链接服务访问同存储账户解决方案

报错原因

你使用的spark.conf.set是全局Spark会话配置,同一Azure存储账户的访问令牌会被Spark会话缓存,即使后续修改全局链接服务配置,旧的令牌也不会被替换,后访问的路径仍会使用首个SPN的权限,因此触发403权限错误。

实现方案

可以在同一个Synapse Notebook中使用多个不同链接服务访问同个存储账户的不同路径,不需要修改全局Spark配置,改用mssparkutils的路径绑定链接服务功能即可,具体代码如下:

# 绑定path1对应SPN1的链接服务
linked_service1 = 'ln_spn1_path_1'
path1 = "abfss://container@storageaccount.dfs.core.windows.net/path1"
mssparkutils.credentials.bindLinkedServiceToPath(path1, linked_service1)
# 直接访问path1
print(mssparkutils.fs.ls(path1))
# 绑定path2对应SPN2的链接服务
linked_service2 = 'ln_spn2_path_2'
path2 = "abfss://container@storageaccount.dfs.core.windows.net/path2"
mssparkutils.credentials.bindLinkedServiceToPath(path2, linked_service2)
# 直接访问path2
print(mssparkutils.fs.ls(path2))

注意事项

  • 路径绑定为前缀匹配规则,访问路径只要和绑定的路径前缀匹配,就会使用对应链接服务的权限;如果路径存在包含关系,优先绑定层级更细的路径
  • 绑定仅在当前Spark会话生效,会话结束后自动失效
  • 绑定完成后读写对应路径不需要额外设置认证配置,直接通过路径访问即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:45:04