用于 GraphQL 的 API 中的源代码管理和部署管道(预览版)

了解 Git 集成和部署管道如何在 Microsoft Fabric 中使用适用于 GraphQL 的 API。 本文可帮助你了解如何设置与存储库的连接、管理 GraphQL 的 API,以及如何在不同的环境中部署它们。

谁使用源代码管理和部署

Git 的集成和部署流水线对于:

  • 数据工程师通过版本控制和 CI/CD 工作流管理 Fabric GraphQL API 配置
  • Fabric 工作区管理员在开发、测试和生产的 Fabric 工作区中协调部署
  • 负责在多个环境和容量下创建 Fabric API 部署管道的 DevOps 团队
  • 需要对 Fabric API 更改进行治理、跟踪和回滚功能的平台团队

需要管理 GraphQL API 作为具有多个环境的结构化开发生命周期的一部分时,请使用源代码管理和部署管道。

注释

GraphQL 源代码管理和部署的 API 目前为 预览版

先决条件

概述

Fabric 通过两个主要组件提供用于 CI/CD(持续集成和持续部署)和开发生命周期管理的强大工具: Git 集成 (CI)和 部署管道 (CD)。 工作区充当 Git 同步和部署阶段的中心组件。

Git 集成(CI):将工作区项(例如代码、配置、API)与 版本控制存储库同步,通过 Git 启用版本控制和更改跟踪。

部署管道(CD):允许创建包含链接工作区的阶段(例如开发、测试、生产)。 每个阶段支持的项会自动复制到后续阶段,并在发布管道中的工作区触发器部署中进行更改。 可以配置管道,以确保在环境中有效地测试和部署更改。

Fabric 支持针对常见方案定制的各种 CI/CD 工作流。 有关详细信息,请参阅 Fabric 中的 CI/CD 工作流选项

注释

部署期间仅复制元数据;不会复制数据。

来自工作区的项作为基础结构即代码 (IaC) 存储在关联的 Git 存储库中。 存储库中的代码变更会在管道中触发部署。 使用此方法,可以跨阶段自动复制代码更改,以便进行测试和生产发布。

数据源身份验证方法

为 GraphQL 创建 API 时,可以选择客户端如何对数据源进行身份验证和访问。 此选项对部署管道和自动绑定行为具有重大影响。 了解这些身份验证方法对于规划 CI/CD 工作流至关重要。 有关自动绑定和部署过程的详细信息,请参阅 了解部署过程

将数据源连接到用于 GraphQL 的 API 时,可以使用两种连接选项: 单一登录(SSO)保存的凭据

GraphQL 连接到数据源的选项的屏幕截图。

单一登录 (SSO)

使用 SSO,API 客户端使用自己的凭据访问数据源。 经过身份验证的 API 用户必须具有对 API 和基础数据源的权限。

在以下情况下使用 SSO:

  • 公开 Fabric 数据源(数据湖屋、仓库、SQL Analytics 端点等)
  • 你希望用户根据其个人权限访问数据
  • 需要以用户为基础应用行级别安全性或其他数据访问策略

权限要求:

  • API 用户需要对 GraphQL API 拥有 执行 权限(运行查询和变更
  • API 用户需要对数据源具有读取或写入权限
  • 或者,将用户添加为具有 “参与者” 角色的工作区成员,其中 API 和数据源都位于其中

部署管道中的自动绑定行为: 使用 SSO 从源工作区(例如 Dev)将 API 部署到目标工作区(例如,测试):

  • 数据源和 GraphQL API 均部署到目标工作区
  • 目标工作区中的 API 自动绑定到 目标工作区中的本地数据源副本
  • 每个环境(开发、测试、生产)都使用自己的数据源实例

注释

将 SSO 与 SQL Analytics 终结点配合使用时存在特定限制。 有关详细信息,请参阅 “当前限制 ”。

保存的凭据

使用保存的凭据,单个共享凭据在 API 和数据源之间进行身份验证。 API 用户只需要访问 API 本身,而不需要基础数据源。

在以下情况下使用保存的凭据:

  • 公开 Azure 数据源(Azure SQL 数据库、外部数据库)
  • 需要简化的权限管理(用户只需要 API 访问权限)
  • 所有 API 用户应使用相同的权限访问相同的数据
  • 您需要在所有 API 请求中使用一致性的凭据。

权限要求:

  • API 用户只需要对 GraphQL API 拥有执行操作权限(运行查询操作和更改操作
  • 保存的凭据本身必须对数据源具有适当的权限
  • 部署 API 的开发人员必须有权访问保存的凭据

部署管道中的自动绑定行为: 使用源工作区(开发)中的已保存凭据将 API 部署到目标工作区时(测试):

  • 数据源部署到目标工作区
  • 目标工作区中的 API 仍连接到 源工作区中的数据源(开发)
  • 不会进行自动绑定 - 已部署的 API 继续使用指向原始数据源的已保存凭据
  • 必须在每个目标环境中手动重新配置连接或创建新的已保存凭据

重要

为 API 选择身份验证方法后,它将应用于添加到该 API 的所有数据源。 不能在同一 API 中混合使用 SSO 和保存的凭据。

跨工作区连接

如果源工作区(Dev)中的 API 连接到其他工作区中的数据源,则目标工作区(测试)中的已部署 API 将保持与该外部数据源的连接, 而不考虑身份验证方法。 仅当 API 和数据源位于同一源工作区中时,自动绑定才有效。

下图说明了这些部署方案:

用于各种数据源连接和场景的管道的截图。

有关在创建 API 时设置这些身份验证方法的详细信息,请参阅 “连接到数据源”。

API for GraphQL Git 集成

Fabric API for GraphQL 支持 Git 集成,使你可以将 GraphQL API 作为版本控制系统中的代码进行管理。 此集成提供版本历史记录、通过分支和拉取请求进行协作、还原更改的功能以及 API 修改的完整审计追踪。 通过将 GraphQL API 配置视为基础结构即代码(IaC),可以将软件开发最佳做法应用于数据访问层。

Git 集成而言,必不可少的用途包括:

  • 版本控制:跟踪一段时间内 GraphQL 架构、数据源连接和关系的所有更改
  • 协作:使用分支、拉取请求和代码评审与团队成员协作
  • 回滚功能:出现问题时还原到以前的 API 配置
  • 环境提升:使用 Git 作为跨环境进行 API 部署的权威来源

将工作区连接到 Git

若要为 GraphQL API 启用 Git 集成,请执行:

  1. 打开包含 GraphQL API 的工作区的工作区设置
  2. 将 Git 连接配置到你的存储库(Azure DevOps、GitHub 或其他 Git 服务提供商)
  3. 连接后,所有工作区项(包括 GraphQL 的 API)都会显示在 “源代码” 控制面板中

有关详细的设置说明,请参阅 Git 集成入门

工作区和源代码管理状态的屏幕截图。

提交和同步 GraphQL API

连接到 Git 后,可以将用于 GraphQL 配置的 API 提交到存储库。 每个提交将会创建您的 API 定义的快照,包括:

  • GraphQL 架构定义
  • 数据源连接和身份验证设置
  • 关系配置
  • 查询和突变定义

提交后,GraphQL API 会显示在 Git 存储库中,其中包含结构化文件夹层次结构。 从这一点开始,你可以利用标准 Git 工作流,例如创建拉取请求、管理分支,并通过代码评审与团队协作。 有关使用分支的详细信息,请参阅 “管理分支”。

Git 中的 GraphQL API 表示形式

GraphQL 项的每个 API 都存储在 Git 中,其中包含一个定义完善的文件夹结构,用于表示 API 配置的各个方面:

Git for GraphQL 中的文件结构表示形式的屏幕截图。

API 定义文件包含在任何 Fabric 工作区中重新创建 GraphQL API 所需的所有元数据。 这包括架构定义、数据源映射和配置设置。 从 Git 同步回 Fabric 工作区时,系统会使用这些定义文件来准确还原 API,就像提交时一样:

Git 中存储的用于 GraphQL 定义的 API 的屏幕截图。

使用 API 定义文件:

GraphQL API 定义格式遵循 Fabric 的基础结构即代码(IaC)标准。 可以直接在 Git 存储库中查看和编辑这些文件,不过大多数修改都应通过 Fabric 门户进行,以确保架构有效性。 定义文件特别适用于:

  • 代码评审:团队成员可以查看拉取请求中的 API 更改
  • 文档:这些文件充当 API 结构的文档
  • 自动化:CI/CD 管道可以读取这些文件以了解 API 配置
  • 灾难恢复:在版本控制中保留完整的 API 定义

有关 GraphQL API 定义格式、语法和示例的详细信息,请参阅 Fabric 控制平面 API 文档:

部署管道中的 API for GraphQL

通过部署管道,可以跨环境(通常是开发、测试和生产)推广 GraphQL 配置的 API。 通过管道部署 GraphQL API 时,仅复制 API 元数据,包括架构定义、数据源连接和关系配置。 实际数据保留在连接的数据源中,在部署期间不会复制。

关键部署注意事项:

在部署之前,请了解身份验证方法和工作区组织对部署的影响:

  • 使用 单点登录(SSO)的 API,可以在数据源也从同一源工作区部署的情况下,自动绑定到目标工作区中的本地数据源。
  • 使用 已保存凭据 的 API 不会自动绑定,并且仍与源工作区的数据源保持连接
  • 无论身份验证方法如何,跨工作区数据源都不会自动绑定

若要全面了解部署过程,请参阅 “了解部署过程”。

部署用于 GraphQL 的 API

若要使用部署管道为 GraphQL 部署 API,请执行以下步骤:

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

  2. 根据部署策略将工作区分配到管道阶段(开发、测试、生产)。 每个阶段都应有一个专用工作区。

  3. 查看并比较各阶段的项目。 管道显示哪些 GraphQL 的 API 已更改,并通过突出显示区域中的项计数来指示这些更改。 此比较可帮助你了解受部署影响的内容。

    说明每个开发阶段项目状态的管道的屏幕截图。

  4. 选择要部署的 GraphQL 和任何相关项(如连接的数据源)的 API。 然后选择“ 部署 ”将其移动到下一阶段。

    管道的屏幕截图,其中显示了需要部署的选定项。

  5. 查看部署确认对话框,其中显示了即将部署的所有项。 选择 “部署 ”以继续。

    显示部署确认消息的管道的屏幕截图。

当前限制

通过部署管道为 GraphQL 部署 API 时, 自动绑定 具有以下限制:

  • 子级项:当 API 连接到作为父数据源(例如 Lakehouse)的子级 SQL Analytics 终结点时,自动绑定功能可能会失效。 已部署的 API 仍连接到源工作区的终结点。

  • 保存的凭据:使用已保存凭据身份验证方法的 API 不支持自动绑定。 部署后,该 API 仍连接到源工作区的数据源。

有关身份验证方法及其自动绑定行为的详细信息,请参阅 数据源身份验证方法