了解 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 中必须有 API for GraphQL。 有关详细信息,请参阅 在 Fabric 中创建 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) 和 保存的凭据。
单一登录 (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 集成,请执行:
- 打开包含 GraphQL API 的工作区的工作区设置
- 将 Git 连接配置到你的存储库(Azure DevOps、GitHub 或其他 Git 服务提供商)
- 连接后,所有工作区项(包括 GraphQL 的 API)都会显示在 “源代码” 控制面板中
有关详细的设置说明,请参阅 Git 集成入门。
提交和同步 GraphQL API
连接到 Git 后,可以将用于 GraphQL 配置的 API 提交到存储库。 每个提交将会创建您的 API 定义的快照,包括:
- GraphQL 架构定义
- 数据源连接和身份验证设置
- 关系配置
- 查询和突变定义
提交后,GraphQL API 会显示在 Git 存储库中,其中包含结构化文件夹层次结构。 从这一点开始,你可以利用标准 Git 工作流,例如创建拉取请求、管理分支,并通过代码评审与团队协作。 有关使用分支的详细信息,请参阅 “管理分支”。
Git 中的 GraphQL API 表示形式
GraphQL 项的每个 API 都存储在 Git 中,其中包含一个定义完善的文件夹结构,用于表示 API 配置的各个方面:
API 定义文件包含在任何 Fabric 工作区中重新创建 GraphQL API 所需的所有元数据。 这包括架构定义、数据源映射和配置设置。 从 Git 同步回 Fabric 工作区时,系统会使用这些定义文件来准确还原 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,请执行以下步骤:
创建新的部署管道或打开现有部署管道。 有关详细说明,请参阅 部署管道入门。
根据部署策略将工作区分配到管道阶段(开发、测试、生产)。 每个阶段都应有一个专用工作区。
查看并比较各阶段的项目。 管道显示哪些 GraphQL 的 API 已更改,并通过突出显示区域中的项计数来指示这些更改。 此比较可帮助你了解受部署影响的内容。
选择要部署的 GraphQL 和任何相关项(如连接的数据源)的 API。 然后选择“ 部署 ”将其移动到下一阶段。
查看部署确认对话框,其中显示了即将部署的所有项。 选择 “部署 ”以继续。
当前限制
通过部署管道为 GraphQL 部署 API 时, 自动绑定 具有以下限制:
子级项:当 API 连接到作为父数据源(例如 Lakehouse)的子级 SQL Analytics 终结点时,自动绑定功能可能会失效。 已部署的 API 仍连接到源工作区的终结点。
保存的凭据:使用已保存凭据身份验证方法的 API 不支持自动绑定。 部署后,该 API 仍连接到源工作区的数据源。
有关身份验证方法及其自动绑定行为的详细信息,请参阅 数据源身份验证方法。