Azure Databricks:WorkspaceClient无法连接外部工作区及PAT认证问题
问题解决方案
1. 为何默认连接总是指向当前工作区?怎么改?
在Azure Databricks无服务器笔记本里,WorkspaceClient默认会自动复用当前工作区的安全上下文——也就是笔记本运行时自带的身份凭据,哪怕你手动指定了其他工作区的URL,只要没显式声明认证方式,SDK会优先读取环境变量、笔记本内置的凭据,导致始终连到当前工作区。
要解决这个问题,必须显式指定认证类型和对应凭据,不能依赖默认逻辑。比如用PAT认证的话,代码要这么写:
from databricks.sdk import WorkspaceClient # 连接Dev工作区 dev_client = WorkspaceClient( workspace_url="https://dev-workspace-url.databricks.com", auth_type="pat", token="dev-workspace-pat-token" ) # 连接Test工作区 test_client = WorkspaceClient( workspace_url="https://test-workspace-url.databricks.com", auth_type="pat", token="test-workspace-pat-token" )
2. PAT认证时的证书错误怎么处理?
证书错误大多是因为目标工作区的SSL证书不被当前笔记本环境信任(比如企业内部CA签发的证书),可以按两种方式处理:
临时测试(不推荐生产环境)
直接禁用证书验证,在实例化客户端时加上verify=False参数:
dev_client = WorkspaceClient( workspace_url="https://dev-workspace-url.databricks.com", auth_type="pat", token="dev-workspace-pat-token", verify=False )
生产环境合规方案
把信任的CA证书上传到DBFS(或笔记本可访问的路径),然后通过verify参数指定证书路径:
dev_client = WorkspaceClient( workspace_url="https://dev-workspace-url.databricks.com", auth_type="pat", token="dev-workspace-pat-token", verify="/dbfs/path/to/your/enterprise-ca.pem" )
另外还要确认两个点:
- 你的PAT令牌是否拥有目标工作区的访问权限(至少需要
workspace_access权限) - 目标工作区的URL是否正确(必须以
https://开头,没有多余的斜杠或后缀)
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

