通过


笔记本源代码管理和部署

本文介绍如何将 Git 集成和部署管道与 Microsoft Fabric 中的笔记本配合使用。 了解如何连接存储库、管理笔记本源代码以及跨环境部署笔记本。

在您开始之前

  • 在完成笔记本源代码管理步骤之前,请将工作区连接到 Git。 有关设置说明,请参阅 Git 集成入门
  • 在目标阶段(例如 测试生产)上创建笔记本部署规则,而不是在 开发上。
  • 若要创建部署规则,你必须是项的所有者。

笔记本 Git 集成

Fabric 笔记本支持 Git 与 Azure DevOps 的集成,以便进行源代码管理。 可以在 Fabric 中使用分支对笔记本更改进行版本控制、协作和管理笔记本生命周期更新。

将笔记本与其附加的依赖项(例如环境)一起提交时,同步到另一个工作区会保留这些绑定。 Fabric 会自动将笔记本绑定到新工作区中的相应资源。

为了支持此行为,Fabric 将附加资源的逻辑标识符存储在笔记本元数据中。 因此,Git 差异比较可以显示从物理 ID 到逻辑 ID 的元数据的更新。

注意

与逻辑 ID 和自动绑定相关的元数据更新即使在笔记本代码未更改时,也可以在 Git 差异视图中显示。

设置连接

在工作区设置中,建立与存储库的连接以提交和同步更改。 有关设置说明,请参阅 Git 集成入门。 连接后,项目(包括笔记本)会显示在 源代码控制面板 中。

工作区源控件面板的屏幕截图。

将笔记本实例提交到 Git 存储库后,可以在存储库中看到笔记本文件夹结构。

现在可以执行 Git 操作,例如 创建拉取请求

Git 中的笔记本表示形式

以下文本显示了 Git 存储库中笔记本项的文件结构:

.
├── Notebook_1.Notebook/
│   ├── Resources/ (Optional)
│   │   └── builtin/
│   │       ├── large_dataset.parquet
│   │       └── model_output.parquet
│   ├── .platform
│   ├── fs-settings.json (Optional)
│   ├── notebook-content.py
│   └── notebook-settings.json (Optional)
└── Readme.md
.
├── Notebook_2.Notebook/
│   ├── Resources/ (Optional)
│   │   └── builtin/
│   │       ├── large_dataset.parquet
│   │       └── model_output.parquet
│   ├── .platform
│   ├── fs-settings.json (Optional)
│   ├── notebook-content.sql
│   └── notebook-settings.json (Optional)
└── Readme.md

提交笔记本项时,Fabric 将其存储为源文件而不是标准 .ipynb 文件。 例如,PySpark 笔记本存储为 notebook-content.py. 此格式更易于在 Git 差异文件中查看。

源文件将笔记本元数据(包括默认的lakehouse和附加环境)、markdown单元格和代码单元格分为单独的部分。 当同步回工作区时,Fabric 使用此结构重新构造笔记本。

同步到 Git 时不包括笔记本单元输出。

以下屏幕截图显示了 Git 存储库中的源格式:

笔记本 Git 存储库内容格式的屏幕截图。

注意

将笔记本及其依赖环境保存在同一工作区中,并在 Git 中对 笔记本和环境项 进行版本控制。 当同步到新工作区时,Fabric 会映射这些关系。

从存储库同步到 Fabric 工作区时,默认 Lakehouse ID 保留在笔记本元数据中。 如果需要,请手动将笔记本绑定到新的 Lakehouse 项目。 有关详细信息,请参阅湖屋 Git 集成

笔记本 Git 设置

通过 Git 设置面板,您可以控制笔记本如何与源代码控制进行交互,包括 Git 绑定的选项,以及管理哪些 Resources 文件夹中的文件会包含在提交中。

注意

请勿在 Git 存储库中编辑 notebook-settings.json 以控制 Git 自动绑定或资源。 请改为通过笔记本设置页管理这些设置。

Git 中的 Lakehouse 自动绑定

Lakehouse 自动绑定允许 Fabric 为每个已连接 Git 的工作区解析正确的默认 lakehouse。 这减少了在跨开发、测试和生产工作区移动笔记本时手动重新绑定过程。

从笔记本设置启用此功能。 启用后,Fabric 会在存储库中创建 notebook-settings.json 并自动管理此文件。 请勿手动编辑此文件。

笔记本 git 绑定的屏幕截图。

注意

笔记本 Git 集成支持在跨工作区同步时保留笔记本与其附加的 Lakehouse 之间的绑定关系。 将笔记本同步到另一个工作区时,可以选择它是否绑定到源工作区中的 lakehouse 或新工作区中的 lakehouse。 对于已在 Git 中版本的笔记本,笔记本元数据中附加的 Lakehouse 的物理 ID 将替换为逻辑 ID。 此更改可能显示在 Git 差异视图中。

Git 中的 Notebooks Resources 文件夹支持

注意

目前不支持环境资源文件夹以及与部署管道和公共 API 的集成。

内置资源文件夹可以提交到 Git,以便脚本和配置文件随笔记本一起进行版本控制。

此功能是可选的,默认情况下处于关闭状态。 从 Git 设置部分中的笔记本设置启用它。 启用后,“资源”文件夹中的文件将包含在提交中。 由于提交限制 为 50 MB ,因此请使用 .gitignore 文件或 Git 规则排除大型或临时文件或文件夹。

git 配置中的笔记本资源的屏幕截图。

注意

只有在内置资源根文件夹中的.gitignore才会生效。

配置 Git 规则并提交更改后,Fabric 会将规则 fs-settings.json 保存在存储库中。 Fabric 生成和管理此文件,使存储库配置保持一致。 我们还不建议直接在 Git 存储库中编辑此文件。

git 配置中的笔记本资源结构的屏幕截图。

部署管道中的笔记本

使用部署管道在开发、测试、生产等阶段推广笔记本更改。 在将更新投入生产之前,请在初期阶段进行验证。

当依赖项位于同一工作区中时,笔记本部署支持默认 Lakehouse 和附加环境的自动绑定。 在部署期间,Fabric 可以将这些依赖项重新绑定到目标工作区中的相应项。 元数据更改可以显示在差异视图中。

如果需要特定的目标阶段默认 Lakehouse,请配置部署规则以替代自动绑定。

本文当前使用了新的部署管道 UI。 可以通过关闭 “新建部署”管道切换到旧 UI。

注意

已知问题:在部署期间不会保留笔记本中的冻结单元格状态。

使用以下步骤通过部署管道部署笔记本。

  1. 创建部署管道,或打开现有管道。 有关详细信息,请参阅 部署管道入门

  2. 根据部署目标将工作区分配到不同的阶段。

  3. 在阶段之间选择、查看和比较项目(包括笔记本)。 突出显示的徽章显示上一阶段与当前阶段之间已更改的项目数量。

    部署管道中的笔记本的屏幕截图。

  4. 选择“部署”以跨开发测试生产阶段提升笔记本。

    选择项和部署的屏幕截图。

  5. “部署到此阶段 ”窗口中,查看新的和已更改的项目。 若要继续部署,即使一个或多个项失败,请选择 “继续部署”(如果一个或多个项失败)。

    查看并确认选择后,选择“ 部署”。

    部署内容弹出窗口.png的屏幕截图。

  6. (可选)。)若要创建部署规则,请选择管道中目标阶段项上的 部署规则 (例如 测试生产)。

    有关常规规则行为和限制,请参阅 “创建部署规则”。

    部署规则条目的屏幕截图。

  7. 为每个笔记本部署配置默认 Lakehouse 规则。

    此规则控制部署后笔记本在目标阶段中连接到的 Lakehouse。

    设置部署规则窗格中,选择默认湖仓磁贴。

    使用 FromTo 下拉列表,将源阶段的默认湖仓映射到目标阶段的默认湖仓。

    • 与源湖屋相同:保留与源阶段相同的默认湖屋设置。
    • N/A (无默认数据湖屋):删除目标步骤中的默认数据湖屋设置。
    • 其他:将源阶段默认湖屋替换为目标阶段中的其他湖屋。

    如果在“To”下拉列表中选择“其他”,请提供目标 Lakehouse 详细信息:

    • Lakehouse ID
    • Lakehouse 名称
    • Lakehouse 工作区 ID

    设置默认湖屋的屏幕截图。

    注意

    配置此规则时,需要 Lakehouse ID。 可以从项目 URL 获取 Lakehouse ID。 部署规则优先于自动绑定。 如果配置了部署规则,它将优先于自动绑定的 Lakehouse。

  8. 从“部署历史记录”监视部署状态。