笔记本源代码管理和部署

本文介绍 Git 集成和部署管道如何适用于 Microsoft Fabric 中的笔记本。 了解如何设置与存储库的连接,如何管理笔记本以及如何在不同的环境中部署笔记本。

笔记本 Git 集成

Fabric 笔记本提供 Git 集成,用于通过 Azure DevOps 进行源代码控制。 借助 Git 集成,可以对笔记本进行备份和版本控制,根据需要还原到以前的阶段,使用 Git 分支协作或单独工作,并在 Fabric 中完全管理笔记本内容生命周期。

注意

从 2024 年 10 月开始,笔记本 git 集成支持在同步到新工作区时保留附加环境的映射关系,这意味着将笔记本和附加环境一起提交到 git 存储库,并将其同步到另一个工作区,新生成的笔记本和环境将绑定在一起。 此升级将影响 git 中版本控制的现有笔记本和依赖环境,笔记本元数据内容中附加环境的物理 ID 将替换为逻辑 ID,更改将反映在差异视图上。

设置连接

从工作区设置中,可以轻松设置到存储库的连接,以提交和同步更改。 若要设置连接,请参阅 Git 集成入门。 连接后,各种项(包括笔记本)将显示在“源代码”控制面板中。

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

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

现在可以执行将来的操作,例如“创建拉取请求”。

Git 中的笔记本表示形式

下图是存储库中每个笔记本项的文件结构示例:

笔记本 Git 存储库文件结构的屏幕截图。

将笔记本项提交到 Git 存储库时,笔记本代码将转换为源代码格式,而不是标准的 .ipynb 文件。 例如,PySpark 笔记本转换为 notebook-content.py 文件。 通过这种方法,可以使用内置差异功能更轻松地进行代码评审。

在项内容源文件中,元数据(包括默认湖屋和附加环境)、markdown 单元格和代码单元会被保留并加以区分。 当同步回 Fabric 工作区时,此方法支持精确恢复。

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

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

注意

  • 目前,笔记本资源中的文件不会提交到存储库。 即将发布的版本中支持提交这些文件。
  • 建议在同一工作区中管理笔记本及其依赖环境,并使用 git 来版本控制笔记本和环境项,Fabric Git 系统将在将笔记本和附加环境同步到新工作区时处理映射关系。
  • 从存储库同步到 Fabric 工作区时,默认湖屋 ID 将保留在笔记本中。 如果使用默认湖屋提交笔记本,则必须手动引用新创建的湖屋项。 有关详细信息,请参阅湖屋 Git 集成

部署管道中的笔记本

还可以使用部署管道跨不同环境(例如开发、测试和生产)部署笔记本代码。 借助此功能,可以简化开发过程,确保质量和一致性,并通过轻量级、低操作操作减少手动错误。 还可以使用部署规则来自定义部署笔记本时的行为,例如更改笔记本的默认湖屋。

注意

  • 现在正在使用部署管道的新设计,可以通过关闭“新建部署管道”来访问旧 UI。
  • 从 10 月开始,Fabric 笔记本会支持自动绑定功能,该功能将在部署到下一阶段时绑定同一工作区中的默认湖屋和附加环境。 更改将对部署管道中的现有笔记本产生影响。
    • 默认湖屋和附加环境(当所有依赖项都位于同一工作区中)将替换为目标工作区中新生成的项时,笔记本元数据更改将在下一轮部署的差异视图中突出显示。
    • 可以为默认湖屋设置部署规则以替代自动绑定的湖屋。
  • 已知问题:在部署期间,笔记本中的冻结单元格状态将丢失。 我们目前正在处理相关任务。

使用部署管道,完成以下步骤来完成笔记本部署。

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

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

  3. 选择、查看和比较不同阶段之间的项(包括笔记本),如以下示例所示。 突出显示的锁屏提醒指示上一阶段和当前阶段之间的已更改项计数。

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

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

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

    部署内容 pop-up.png 的屏幕截图。

  5. (可选。)可以选择“部署规则”,为部署过程创建部署规则。 部署规则条目位于部署过程的目标阶段。

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

    在使用部署规则进行部署时,Fabric 支持参数化每个笔记本实例的默认湖屋。 有三个选项可用于指定目标默认湖屋:与源湖屋、N/A(无默认湖屋)和其他湖屋相同。

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

    可以通过设置此规则来实现安全的数据隔离。 你的笔记本的默认湖屋将被替换为你在部署期间指定为目标的湖屋。

    注意

    在部署规则中设置默认湖屋时,必须具有湖屋 ID。 可以从项 URL 链接获取湖屋 ID。 部署规则的优先级高于自动绑定,当配置部署规则时,自动绑定的湖屋将被覆盖。

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