3. 发布到图谱变量
4m

概述

好极了,我们知道如何 在我们的开发流程中非常有用,因此,让我们来使用它们。在这一课程中,我们将:

  • 创建一个staging
  • 了解如何将 推送到图谱
  • 访问和浏览 in

创建一个 staging 变量

目前,的暂存和生产版本都使用的生产版本。这意味着,当我们发布对暂存的更改后,实时生产路由器所使用的模式也会发生更改。情况不容乐观,因为如果我们的更改意外破坏了一些功能,则我们的暂存和生产路由器中的功能都会遭到破坏。我们需要一个staging 用于的暂存版本。

让我们了解如何创建一个staging 。我们首先使用我们产品的staging 当前,处于启用状态 ,以在添加功能之前获得基线作为参照。

要创建一个新的,我们将再次使用。事实上,你可能已经熟悉我们将使用的命令:rover subgraph publish

你可能会想起此命令的第一个graph ref是三部分组成的:图的名称,后缀@以及的名称。

airlock-managed-fed@current

我们在航段 I 中使用了默认 current ,但我们也可以指定不同的变体。在这种情况下,我们将使用名称 staging。如果此 存在,将为我们创建此变体。

以下是如何将 accounts 发布到 staging

rover subgraph publish airlock-managed-fed@staging \
--schema "accounts.graphql" \
--name accounts \
--routing-url "https://staging-airlock-accounts.com"

请注意, routing-url 值指向 过渡阶段环境,而不是生产环境。

在运行上述 rover subgraph publish 命令后,我们将看到终端中的以下内容:

Publishing SDL to airlock-managed-fed@staging (subgraph: accounts)
using credentials from the default profile.
A new subgraph called 'accounts' for the 'airlock-managed-fed@staging' graph was created.
The supergraph schema for the 'airlock-managed-fed@staging' graph was updated,
composed from the updated 'accounts' subgraph.

将模式发布到 staging 后,Studio 将反映此新添加的内容。在主页的 的名称下,我们可以看到已添加新变体,名称为 staging

https://studio.apollographql.com
Screenshot of Studio showing the staging variant in the list of variants.

我们可以点击新的 staging 来查看此 的当前模式。到目前为止,它只包含我们刚刚注册的 accounts

https://studio.apollographql.com
Screenshot of Studio showing the staging variant with the accounts subgraph registered.

除了这些,还需要注册其他所有 到新的 staging 中: listingsbookingsreviewspaymentsschemanamerouting-url 选项的值会因不同内容而异,但 名称和 会保持不变!

在发布其他所有 之后,我们就能在 staging 架构中查看这些子图:

https://studio.apollographql.com
Screenshot of Studio showing the staging variant with all five subgraphs registered.

太棒了! staging 现在已经为 Airlock 设置所有 !现在, staging 架构与 current 架构处于完全相同的状态。在我们开始添加功能或进行架构更改之前,我们就准备好了基线。

最后,我们需要确定 staging 已连接到 staging 的端点

我们可以在 的主页上通过点击 连接设置,并且设置用于暂存 的端点 URL 来完成此操作。

https://studio.apollographql.com
Screenshot of Studio showing the Connection Settings modal, where the staging router endpoint is set

一切就绪,我们准备继续对 Galactic Coordinates 项目进行更改。

实践

下列哪种方法是将子图架构发布到特定变体?

关键内容

  • 我们可以通过使用 命令 rover subgraph publish并且指定 名称在 @符号之后的 中来将架构发布到特定

下一步

Listings 团队一直在努力工作,并且现在已经准备好分享他们的架构更新,以便其他团队可以开始为 Galactic Coordinates 项目做出贡献。

在下一章节中,我们将看到他们如何使用 架构检查来自信地将他们的架构更改推送到注册表。

上一个

分享你对此章节的问题和评论

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

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