通过


将资源添加到 Databricks 应用

Databricks 应用可以与各种 Azure Databricks 平台功能集成,例如用于查询数据的 Databricks SQL、用于数据引入和处理的 Lakeflow Jobs、用于访问生成 AI 模型的 Mosaic AI Model Serving 以及用于管理敏感信息的 Azure Databricks secrets。 在应用上下文中,这些平台功能称为 资源

为什么要使用资源?

若要使应用可移植且安全,请避免硬编码资源 ID。 例如,通过 Databricks Apps UI 将 SQL 仓库配置为资源,而不是在应用代码中嵌入固定 SQL 仓库 ID。

使用 Databricks Apps 资源而不是直接 API 调用具有以下优势:

  • 自动管理凭据和权限,这消除了代码中的手动令牌处理。
  • 自动处理资源路径、终结点和连接详细信息。
  • 提供安全的托管访问,而不是要求使用自管理凭据进行直接 API 调用。
  • 使应用在环境之间可移植,而无需更改代码。

支持的资源类型

下表列出了可添加到 Databricks 应用的所有资源类型:

资源类型 Description 默认资源密钥 可用权限
Databricks 应用 应用间通信和调用 app
  • 可以使用
Genie 空间 适用于自然语言查询的 AI 驱动的分析界面 genie-space
  • 可以查看
  • 可以运行
  • 可以编辑
  • 可以管理
Lakebase 数据库 用于数据存储和查询的 PostgreSQL 数据库 postgres (Lakebase 自动缩放), database (Lakebase 预置)
  • 可以连接和创建
Lakeflow 作业 数据引入和处理工作流 job
  • 可以查看
  • 可以管理运行
  • 可以管理
MLflow 试验 AI 应用程序可观测性、评估和试验跟踪 experiment
  • 可以读取
  • 可以编辑
  • 可以管理
模型服务终结点 用于推理请求的机器学习模型部署 serving-endpoint
  • 可以查看
  • 可以查询
  • 可以管理
机密 保护敏感值的存储,例如 API 密钥和令牌 secret
  • 可以读取
  • 能够写入
  • 可以管理
SQL 仓库 用于运行 SQL 查询的计算资源 sql-warehouse
  • 可以使用
  • 可以管理
Unity 目录连接 与外部数据源的托管连接 connection
  • 使用连接
Unity 目录表 采用精细访问控制的结构化数据存储 table
  • 选择
  • 修改
用户定义的函数 Unity 目录中已注册的 SQL 和Python函数 function
  • 可以执行
Unity 目录卷 应用项目和数据在 Unity 目录中的文件存储 volume
  • 可以读取
  • 可以读写
矢量搜索索引 基于矢量嵌入的语义搜索与相似性检索 vector-search-index
  • 可以选择

先决条件

若要将资源添加到应用,必须满足以下条件:

  • 资源必须存在。
  • 添加资源的用户必须具有 Can manage 对资源和应用的权限。

应用以最低权限运行,并依赖于 Azure Databricks 平台中的现有资源。 部署后,应用的服务主体将访问这些资源,并且必须具有必要的权限,例如 SQL 查询的表级访问权限或对机密的读取访问权限。 请参阅 Databricks 应用中配置授权

为应用配置资源

资源允许应用安全地连接到它依赖的服务,而无需对敏感值或特定于环境的值进行硬编码。

创建或编辑应用时,直接在 Databricks 应用 UI 中添加资源。

  1. 创建或编辑应用时,导航到 “配置” 步骤。
  2. “应用资源 ”部分中,单击“ + 添加资源”。
  3. 选择要添加的资源类型。
  4. 设置资源上应用服务主体的权限。
  5. 将密钥分配给资源,并在文件中引用该密钥 app.yaml

在 UI 中将 SQL 仓库添加为应用资源

注释

如果使用声明性自动化捆绑包定义应用,请在 YAML 中指定资源作为捆绑配置的一部分,而不是使用 UI。 请参阅 app.resources

管理对资源的应用访问权限

每个应用都有一个专用 的服务主体。 遵循以下最佳做法安全地管理访问。

  • 使用应用的服务主体进行身份验证。 从不对代码中的个人访问令牌(PAT)进行硬编码。 访问凭据作为环境变量自动注入:
    • DATABRICKS_CLIENT_ID
    • DATABRICKS_CLIENT_SECRET
  • 不要在应用之间或跨用户共享服务主体凭据。 每个应用都应使用自己的专用凭据进行隔离和安全性。
  • 应用最低特权访问权限。 仅向应用的服务主体授予所需的最低权限。 例如:
    • 如果应用程序只需要运行查询,则为 SQL 仓库授予 CAN USE 权限。
    • 如果应用仅发送推理请求,则授予服务端点 CAN QUERY 的权限。
    • 根据应用的数据访问需求,在 Unity Catalog 目录表上授予 SELECTMODIFY

后续步骤

在将资源添加到应用后,请在应用配置的env部分中通过valueFrom字段引用这些资源。 有关说明,请参阅 Databricks 应用中定义环境变量。 有关显示 valueFrom 对每种资源类型解析值的 valueFrom 引用,请参阅 valueFrom 参考资料