2. 超级图中的变体
3m

概述

新功能令人兴奋,我们渴望将银河系坐标项目推向世界。但我们需要注意,在为客户端提供测试这些新查询的机会时,不要破坏现有功能和在单独的安全环境中(如我们的临时环境)。

现在,我们在注册表中只有 的生成版本。理想情况下,我们想要的是类似于我们的 Heroku 设置:为我们的图形的临时和生成版本设置单独的环境,以便我们可以在将其发布到我们的实时站点之前测试我们的架构更改。幸运的是,有一个专门用于此的功能:图形

在本课中,我们将

  • 了解什么是
  • 了解 如何帮助我们的开发工作流

什么是图形变体?

A 图形变体是由特定环境(比如预演或生产)中运行的图形实例(比如分段或生产环境)。在 ,各 有自己的模式、指标、变更记录和 记录。

到目前为止,我们只对 的一个版本进行操作:现正处于生产阶段的版本。实际上,这是我们的第一个 ,默认名称为 current。处于生产阶段的 通过先前设置的环境变量(APOLLO_KEYAPOLLO_GRAPH_REF)连接到这项图形

使用 有助于我们测试自己的模式变更,并在生产环境中立即执行这些变更,从而对变更进行验证。图形变体使用方法会根据团队和公司用例以及部署实践而有所不同。

对于 Airlock,我们想要设置一个 staging 并且将它连接到 的预演版本(使用对应的环境变量)。我们将在下一节讨论如何执行该操作。

注意:在这门课程中,我们将重点关注联合,但非联合图也可以使用图

超图中的变体

让我们重新回顾我们之旅

Journey of a supergraph. See below for a detailed image description.

我们从航海 I了解到,团队构建自己的并将自己的发布到 Apollo 架构注册表

我们还可以选择选择哪个来发布。如果我们未指定变体名称,我们的变更将默认发布到当前 。(我们将在下一节中仔细了解如何在向特定变体发布内容。)

An illustration of a subgraph facing two different paths: one to the `current` variant and the other to a `staging` variant

发布到后,其余过程保持不变!此变体会将其模式提供给 Apollo Uplink,然后即可获取模式。

我们可以拥有任意数量的。这可以让我们轻松启动新的版本以进行测试,并在提交到来之前进行试用。

An illustration of duplicate schema registries representing different variants, and how subgraphs can choose to publish to any of them.

练习

以下哪句话是关于 GraphOS 中的图形变体的真实描述?

要点

  • 一个 表示在特定环境中运行的图形实例。
  • 过程保持不变,但新增了可以选择要将模式发布到的
  • 可用于联盟图形和非联盟图形。

接下来

在下一课中,我们将学习为暂存环境创建一个

上一个

在此课程中分享您的问题和意见

您的反馈可以帮助我们改进!如果您遇到困难,请告诉我们,我们会帮助您的。所有评论都是公开的,且必须遵循 Apollo 行为准则。请注意,已解决或已处理的评论可能会被删除。

您需要一个 GitHub 帐号才能在下方发帖。还没有吗? 不妨在我们的 Odyssey 论坛中发帖。