6. 发布到 GraphOS
4m

概览

我们来 装我们的变更,然后将它们发布到 GraphOS! 🍽️

在本课中,我们将

  • 发布 的变更
  • 了解跟踪指标以及如何在 Studio 中分析它们
  • 了解如何启用

发布到 GraphOS

以下是如何将我们的本地变更推送到生产环境

  1. 本地 ,以验证我们的变更不会损害当前功能。

  2. 代码库变更合并到 GitHub。

  3. 的运行时代码部署到 Railway(这样做是自动完成的,Railway 会监听对我们的 GitHub 主分支的变更)。

  4. 发布到 。这会触发 (启动成功后会合成一个新的 使用)。

如果你完成GraphOS:安全 API 传递,你将熟悉这个流程,你甚至可能已经设置了 CI/CD 以处理所有事情 😎 继续吧,按照流程操作!如果你需要复习,请转到本课程的 课程 7:字段见解,然后参阅“部署我们的更改”部分。

如果你还没有完成该课程,不用担心!如果你想详细了解我们将运行的每个命令,以及如何将该流程集成到 CI/CD 工作流中,那么该课程会深入探讨所有详细信息。现在,我们将快速演示给你,并使用手动命令。

  1. 首先,让我们运行 。在新终端中,运行以下命令。将下面的 <GRAPH_REF>替换成你自己的!

    rover subgraph check <GRAPH_REF> \
    --schema ./schema.graphql \
    --name recipes

    我们应该会收到一条消息,说已添加了一个新的 cookware ),并且所有内容都通过了检查。万岁!我们不会对 进行任何重大更改。

  2. 接下来,让我们添加和提交我们的更改。

    git checkout -b feature/recipe-cookware
    git add .
    git commit -m "Add Recipe.cookware to subgraph."
  3. 接下来,我们将变更推送至 GitHub,直接推送到 main 分支。

    git push -u origin main
  4. 这将触发 Railway 中的部署。转到你在 Railway 上的应用,并监控其进度。准备就绪后,返回 GitHub。

  5. 代码库变更已部署,因此让我们确保我们的架构在 中是最新的。我们将运行 rover subgraph publish 命令。同样,将下面的 <GRAPH_REF> 替换为你自己的!

    rover subgraph publish <GRAPH_REF> \
    --schema ./schema.graphql \
    --name recipes

    这会触发

  6. 在浏览器中转到 Studio 并导航到 启动 页面。我们等待 显示绿色对勾标记和“部署済み”标签后,再继续下一步。

    https://studio.apollographql.com/

    Launches page in Studio

Studio 中的子图形变更

让我们看看我们的变更。转到 Explorer,以便我们可以再次运行我们梦想的 ,这次在生产环境中运行。

query GetRecipeAndCookwareInformation {
recipe(id: "rec3j49yFpY2uRNM1") {
name
description
ingredients {
text
}
instructions
cookware {
name
description
cleaningInstructions
}
}
}

很好!在此之前,我们曾在本地使用 rover dev 使其正常工作,因此我们对变更比较有信心,但现在我们可以 100% 验证它!

我们来趁机查看一些其他很酷的东西。

在左侧的 文档 面板中,单击齿轮图标以访问设置。

https://studio.apollographql.com/

Explorer, Settings gear icon

向下滚动至 编辑器提示 部分并将其切换为开。选择 子图形源。现在我们可以看出每个 每个 来自何处,以及与我们的 处于同一行。

https://studio.apollographql.com/

Explorer, Editor hints in Settings

我们来窥探一下为这个特定的创建的。单击响应旁边的箭头,然后选择查询计划预览

https://studio.apollographql.com/

Explorer, Query Plan Preview

我们可以把它看作一个图表,或者在选择图标时将其看作文本来“以文本形式显示计划”。不要对语法担心太多 —知道发生了什么!不过,当我们开始涉及更多以及需要优化的更复杂查询时,这会很有用。

https://studio.apollographql.com/

Explorer, Editor hints in Settings

在我们继续研究跟踪指标之前,我们给我们的发送一些。再运行这个梦想几次!

跟踪指标

一个跟踪显示单个 从头到尾的执行情况。它包括该操作中解析的每个的时间和错误信息细目。

中,我们有联合跟踪,它们由我们的提供的时间和错误信息构建。

我们的 recipeskitchenware 都使用 @apollo/subgraph 库,所以这些联邦跟踪默认就启用了,我们不需要做任何额外的事情!

注意:如果你使用的是另一个 库,你可以 参阅阿波罗文档中的此列表,以确定它是否支持联邦跟踪以及如何启用它。

有了跟踪,我们可以开始了解哪些 需要很长时间才能解决,这有助于我们确定可以改进的地方!

要访问跟踪,请访问 Studio 中的 操作 页面。从下拉菜单中选择一个

https://studio.apollographql.com/

Operations page in Studio

当我们选择一个特定的 时,我们还可以了解有关此操作使用情况的更多特定详细信息,以及它的签名(即 的形状)。我们可以看到请求速率(已发出的请求数)和一段时间内的请求延迟(每个请求需要多长时间)。

让我们看看 跟踪 选项卡。

https://studio.apollographql.com/

A selected operation's Traces tab in Studio

每个延迟段保存一个示例跟踪,因此我们可以从图表中选择一个条形来分析该特定跟踪,并观察该特定 的时间详细信息。

相当方便!对于每个 ,我们可以深入探究每个 解决其 所需时间。根据这些信息,我们可以根据需要进行调整和改进!

实践

在 Explorer 中,以下哪项可以显示为查询中每个字段的内联提示?
以下哪些是查看路由器查询计划的方式?
以下哪些内容包含在联合跟踪中?

关键外卖

  • 配合使用 rover dev 进行本地开发,并与 结合使用,有助于我们在将更改推送到生产环境中的 中进行验证和测试。
  • 联邦跟踪提供每个在特定中按提供的时间和错误信息分解。

结论

你已经到头了,做得很好!

你已经获得了成功地成长的所有要素。在本课程中,我们学习了如何在 Studio 只需点击几下按钮即可快速添加。我们实践了本地开发,并使用rover dev 在本地运行路由器:一个探索和创造新功能的游乐场。我们涉足了联合的世界,了解了实体是什么以及如何使用它们来连接子图之间的数据。最后,我们将更改发布到生产环境,向全世界推出了 Poetic Plates 的改进版本 – 现在提供厨具! 🍳

接下来是什么?我们正在准备更多的东西来帮助你在的旅程中。

同时,何不深入了解和我们的 Voyage 系列?你可以从Voyage I:从第一天起联合开始。

下次再见!

上一个

分享你对本课程的问题和评论

本课程当前为

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

你需要一个 GitHub 帐户才能在下面发帖。没有一个? 转而在我们的 Odyssey 论坛发帖。