配置默认包存储库

Important

配置默认Python包存储库通常用于无服务器笔记本和作业。 对于 Lakeflow 管道和通过 UI 和 API 创建的经典计算,它以 公共预览版提供。 对于 Databricks 应用,它处于 Beta 版中。 工作区管理员可以通过启用以下预览功能来控制从 预览 页访问这些功能:

  • Spark 声明性管道中的默认Python包存储库(公共预览版)
  • 通过 API 创建的群集中的默认Python包存储库(公共预览版)
  • 通过 UI 创建的群集中的默认Python包存储库(公共预览版)
  • 为 Databricks 应用启用工作区存储库配置 (Beta 版)

工作区管理员可以将工作区中的专用或经过身份验证的包存储库配置为笔记本、作业、Lakeflow 管道和 Databricks 应用的默认包存储库。 Python存储库适用于所有这些工作负载,但 npm 注册表仅适用于 Databricks 应用。

如果工作区配置了默认包存储库,则工作区中的用户可以从内部存储库安装包,而无需显式定义index-urlextra-index-urlPython的值或 npm 的注册表。 如果这些值是在代码、笔记本或应用 app.yaml 文件中指定的,则它们优先于工作区默认值。 有关 Databricks Apps 的优先级规则如何运作,请参阅 使用工作区级默认软件包存储库

此配置利用 Databricks 机密 安全地存储和管理存储库 URL 和凭据。 工作区管理员可以使用工作区管理员设置页或使用预定义的机密范围和 Databricks CLI 机密命令REST API 配置设置。

为工作区设置默认依赖项

工作区管理员可以使用工作区管理员设置页添加或删除默认包存储库。

  1. 作为工作区管理员,登录到 Databricks 工作区。
  2. 单击 Databricks 工作区顶部栏中的用户名,然后选择“设置”
  3. 单击“计算”选项卡
  4. 默认包存储库旁边,单击 管理
  5. (可选)添加或删除Python索引 URL、额外的索引 URL、自定义 SSL 证书或 npm 注册表配置。
  6. 单击“保存”以保存更改。

注释

根据工作负荷类型,对机密的修改或删除以不同的方式应用。 对于无服务器笔记本和作业,在将计算资源重新附加到笔记本或重新运行作业后,将应用更改。 对于经典笔记本和作业,更改会在重启计算资源后生效。 对于 Lakeflow 管道,更改将应用于新的管道运行中。 对于 Databricks Apps,更改将在下次构建和部署应用时生效。

使用机密 CLI 或 REST API 进行设置

若要使用 CLI 或 REST API 配置默认包存储库,请创建预定义的机密范围并配置访问权限,然后添加包存储库机密。

预定义的机密范围名称

工作区管理员可以在预定义密钥下的指定机密范围内设置默认 pip 索引 URL、额外的索引 URL、SSL 证书和 npm 配置以及身份验证令牌和机密:

  • 机密范围名称:databricks-package-management
  • 索引 URL 的密钥:pip-index-url
  • extra-index-url 的密钥:pip-extra-index-urls
  • SSL 认证内容的密钥:pip-cert
  • npm 配置的密钥: npm-rc (仅限 Databricks Apps)

创建机密作用域

可以使用 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存储库适用于笔记本、作业、Lakeflow 管道和 Databricks 应用,但 npm 注册表仅适用于 Databricks 应用。

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>
  • 令 牌: https://<token>@<index_url>

Node.js

对于 Databricks 应用,还可以配置默认 npm 注册表,以便应用从工作区配置的注册表中安装 Node.js 包(包括专用包)。 将完整的 .npmrc 文件内容(包括注册表 URL 和任何身份验证令牌)存储在 npm-rc 密钥下:

databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "npm-rc", "string_value":"registry=https://npm.example.com/\n//npm.example.com/:_authToken=<token>\n"}'

生成工作区中的应用时,Azure Databricks将此内容写入应用.npmrc的文件。 有关优先级如何生效,以及如何针对特定应用覆盖该优先级,请参阅 Node.js 包

修改或删除包存储库机密

若要修改包存储库机密,请使用 put-secret 命令。 若要删除包存储库机密,请使用 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 the npm configuration secret (Databricks Apps only)
databricks secrets delete-secret databricks-package-management npm-rc

# delete scope
databricks secrets delete-scope databricks-package-management