使用 Git 文件夹的共享无服务器功能和捆绑包

Important

此功能在 Beta 版中。 要使用它,工作区管理员必须从预览页面开启Project-Scoped Shared Compute。 请参阅 Manage Azure Databricks 预览版。

使用 Shared Serverless 时,位于同一 Git 文件夹或捆绑包中的笔记本和文件会共享无服务器计算资源以及编辑器中的 Python 环境。 要自定义环境,可以在文件夹根添加一个 pyproject.toml 文件。 要附加笔记本或文件,请按照 Git文件夹 或 声明式自动化捆绑包的步骤操作。

Requirements

共享计算与环境

  • 同一个Git文件夹或捆绑包中的笔记本和文件共享编辑器中的计算和Python环境。 文件夹根节点有一个可选 pyproject.toml 文件定义共享环境。
  • 只有与关联的 Git 文件夹或捆绑包内的笔记本和文件可以附加到其共享的计算资源。
  • 共享的计算资源按用户进行隔离。 只有最先将笔记本或文件附加到共享计算资源的用户,才能在其上运行工作负载。
  • 笔记本执行仍然是隔离的。 一个笔记本中定义的 Python 变量在另一个笔记本中不可用。
  • 从连接的笔记本或文件打开的 网页终端 运行在同一计算资源上。

在 Git 文件夹中使用共享无服务器

使用 Shared Serverless 来处理 Git 文件夹中的笔记本和文件。

在Git文件夹编辑器中附加笔记本和文件

  1. 在工作区侧边栏,点击 工作区 ,进入Git文件夹。

  2. 点击 编辑器中打开。

  3. 在Git文件夹里打开一个笔记本或文件。

  4. 点击“Compute”下拉菜单。

  5. 选择“共享无服务器”。

    共享无服务器计算资源的“计算”下拉选项,带有 Beta 徽章,并显示来自 pyproject.toml 的环境

  6. 运行笔记本或文件启动计算资源。

要从另一个笔记本或文件使用相同的计算,请在同一 Git 文件夹中打开它,然后选择“共享无服务器”。

通过 Git 协作

Databricks 建议每位协作者将仓库克隆到各自个人工作区文件夹下的 Git 文件夹中。 每个协作者随后会为其克隆副本获得独立的计算资源和环境。

通过分支、提交、推送和拉取来通过远程 Git 仓库交换变更。 参见 “在Git文件夹中协作”。

在捆绑包中使用共享无服务器

使用共享无服务器来处理工作区中捆绑包里的笔记本和文件。 bundle 根包含 databricks.yml,并且可以包含一个定义共享环境的 pyproject.toml 文件。

在捆绑包编辑器中附加笔记本和文件

  1. 在工作区侧边栏,点击 工作区 ,导航到捆绑包。
  2. 在捆绑包名称右侧,点击“ 在编辑器中打开”。
  3. 打开捆绑包中的笔记本或文件。
  4. 点击“Compute”下拉菜单。
  5. 选择“共享无服务器”。
  6. 运行笔记本或文件启动计算资源。

要从另一个笔记本或文件使用相同的计算,请在同一捆绑包中打开它,然后选择“共享无服务器”。

要通过Git协作,让每个协作者将仓库克隆到个人工作区文件夹的Git文件夹中。 参见通过 Git协作。

使用 pyproject.toml 管理环境

Shared Serverless 使用位于 Git 文件夹或 bundle 根目录中的 pyproject.toml 文件来管理项目中的 Python 依赖。 标准无服务器笔记本使用在 环境 侧面板中为每个笔记本配置的依赖。

在管理依赖之前,先创建根 pyproject.toml 文件并设置其 Serverless 环境版本。 参见 “创建与编辑 pyproject.toml”。 然后你可以用笔记本命令添加依赖,或者直接编辑文件。

使用笔记本命令

  1. 打开附加到共享无服务器的笔记本。

  2. 运行 %uv add <package> 以将依赖项添加到根 pyproject.toml 文件中。 例如:

    %uv add cowsay
    

命令更新 pyproject.toml、 uv.lock,以及共享环境。 你不需要在 %uv add 之后运行 %uv sync。 使用 %uv sync 应用直接对 pyproject.toml 所做的更改。

创建与编辑 pyproject.toml

  1. 打开附加到共享无服务器的笔记本。

  2. 打开 环境 侧面板。

  3. 在 由 pyproject.toml 管理卡片中,单击 “新建文件”图标。创建 pyproject.toml 以创建根文件。 如果文件已经存在,点击 “新窗口”图标。查看pyproject.toml。 文件在编辑器中打开。

    环境侧面板,带有“创建 pyproject.toml”图标和旁边的“由 pyproject.toml 管理”提示。

  4. 编辑 dependencies 列表。 保留生成 [tool.databricks.environment] 的部分,或者如果缺少就添加。 将 environment_version 设置为受支持的版本(5 及以上)。 例如:

    [project]
    name = "my-project"
    version = "0.1.0"
    dependencies = [
      "simplejson==3.18.1",
    ]
    
    [tool.databricks.environment]
    environment_version = "5"
    
  5. 单击 pyproject.toml 文件编辑器顶部的应用。

    pyproject.toml 文件编辑器显示了应用按钮及其工具提示。

更新后的环境适用于附加到同一共享计算资源的笔记本和文件。 要检查环境,打开 环境 侧面板。 有关无服务器环境版本和已安装依赖的信息,请参见 配置无服务器环境 。

计划笔记本

当你从 Git 文件夹或捆绑编辑器为连接到 Shared Serverless 的笔记本设置计划时,如果根pyproject.toml文件存在,Azure Databricks 会使用该文件作为作业的项目环境。 按照以下步骤部署该捆绑包。

  1. 在 Git 文件夹或 Bundle 编辑器中,打开一个关联到 Shared Serverless 的笔记本。
  2. 如果 Git 文件夹或捆绑包有根 pyproject.toml 文件,请确认它声明了任务所需的依赖关系。
  3. 单击“日程”。
  4. 在 计算 下拉列表中,选择无服务器计算。
  5. 配置排程并点击 创建。

点击 创建后,检查作业配置:

  • Git 文件夹:如果 Git 文件夹有根 pyproject.toml 文件,请确认作业任务配置中的项目环境指向它。 要更改选择,请参见 “配置作业任务环境”。

  • 捆绑包: 捆绑编辑器会在 resources/ 文件夹中打开生成的作业 YAML 文件。

    1. 如果捆绑包有根 pyproject.toml 文件,验证环境的 spec 下的 project_environment 是否指向该文件,相对于生成的 YAML 文件。 请参阅在捆绑中配置项目环境。
    2. 部署软件包 以创建任务。

    开发模式下,计划默认会暂停。 请参阅 声明性自动化捆绑包部署模式。

关于笔记本调度选项,请参见 创建和管理预定笔记本作业。

局限性

  • 计算共享的范围限定在无服务器使用策略内。 同一个Git文件夹或捆绑包中使用不同使用策略的笔记本和文件会被分配不同的计算资源,而不是共享一个。

其他资源