工作区管理员可以将工作区中的专用或经过身份验证的包存储库配置为无服务器笔记本、无服务器作业和经典计算的默认 pip 配置。
如果工作区配置了默认的 Python 包存储库,则工作区中的用户将能够从内部 Python 存储库安装包,而无需显式定义 index-url 或 extra-index-url 值。 但是,如果在代码或笔记本中指定了这些值,则它们优先于工作区默认值。
此配置利用 Databricks 机密 安全地存储和管理存储库 URL 和凭据。 工作区管理员可以使用工作区管理员设置页或使用预定义的机密范围和 Databricks CLI 机密命令 或 REST API 配置设置。
为工作区设置默认依赖项
工作区管理员可以使用工作区管理员设置页添加或删除默认的 Python 包存储库。
- 作为工作区管理员,登录到 Databricks 工作区。
- 单击 Databricks 工作区顶部栏中的用户名,然后选择“设置”。
- 单击“计算”选项卡。
- 在 默认包存储库旁边,单击 管理。
- (可选)添加或删除索引 URL、额外的索引 URL 或自定义 SSL 证书。
- 单击“保存”以保存更改。
注释
将计算资源重新附加到笔记本或重新运行作业后,将应用对机密的修改或删除。
使用机密 CLI 或 REST API 进行设置
若要使用 CLI 或 REST API 配置默认 Python 包存储库,请创建预定义的机密范围并配置访问权限,然后添加包存储库机密。
预定义的机密范围名称
工作区管理员可以在指定的机密范围内,通过预定义密钥设置默认 pip 索引 URL、额外索引 URL,以及身份验证令牌和机密。
- 机密范围名称:
databricks-package-management - 索引 URL 的密钥:
pip-index-url - extra-index-url 的密钥:
pip-extra-index-urls - SSL 认证内容的密钥:
pip-cert
创建机密作用域
可以使用 Databricks CLI 机密命令 或 REST API创建机密范围。 创建机密范围后,配置访问控制列表以授予所有工作区用户读取访问权限。 这可确保存储库保持安全,并且不能由单个用户更改。 机密范围必须使用预定义的机密范围名称 databricks-package-management。
databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ
添加 Python 包存储库机密
使用预定义的密钥名称添加 Python 包存储库详细信息,这三个字段都是可选的。
# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'
# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'
# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'
注释
如果存储库需要用户名和密码,请对索引 URL 使用以下格式: https://<username>:<password>@<index_url>
修改或删除专用 PyPI 存储库机密
若要修改 PyPI 存储库机密,请使用 put-secret 命令。 若要删除 PyPI 存储库机密,请使用 delete-secret,如下所示:
# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url
databricks secrets delete-secret databricks-package-management pip-extra-index-urls
databricks secrets delete-secret databricks-package-management pip-cert
# delete scope
databricks secrets delete-scope databricks-package-management