概述
我们快到了!让我们快速回顾一下将更改推送到 tutorial-land 生产环境的过程。
在本课中,我们将
- 使用Rover CLI 将模式发布到模式注册表
- 检查 Studio 中启动的结果
协调模式和代码更改
到目前为止,我们只讨论了模式更改以及如何将它们发布到GraphOS。但是我们不能忘记我们的代码库更改,我们的GraphQL 子图服务器!这些包括我们对解析器函数所做的更改,以使我们的模式正常工作,以及模式文件本身。我们需要将本地更改部署到生产环境。
因为我们只是在 tutorial-land 中使用本地子图,所以我们不需要实际部署任何更改。您可以在此 Apollo 技术说明中了解更多有关在生产环境中协调模式和代码更改的信息。
发布模式更改
我们确实需要将新的子图 模式发布到GraphOS。
注意:在发布模式之前,最好运行模式检查并确认它已通过。这通常在 CI/CD 管道中处理。
为此,我们将使用Rover CLI的rover subgraph publish
命令。我们不需要这次包含路由 URL,因为它没有更改。
rover subgraph publish GRAPHREF@GRAPHVARIANT \--schema schema.graphql \--name soundtracks
您需要确认我们正在发布一个localhost URL。如果一切顺利,我们应该看到终端输出,其中包含一条消息,确认子图已发布,并且超级图已更新!
在 Studio 中检查启动
模式发布到注册表后会发生什么?一个启动开始了!让我们在 Studio 中看看这个过程。
导航到启动页面。点击列表中的最新启动。
我们可以看到,此特定启动的启动序列部分遵循我们之前讨论过的步骤:
构建已完成指的是构建超级图模式(也称为组合)的过程。
模式已发布指的是超级图模式可供 Apollo Uplink 使用。
启动已完成 不言自明!我们的启动成功完成!🎉
在右侧,我们还可以查看超级图模式输出以及模式更改的摘要。
如果一切看起来都很正常,我们应该能够对新的recommendedPlaylists
字段执行查询。
🚀 生产环境中的功能!
首先,确保您的本地路由器正在运行。在一个新的终端窗口中,导航到Router
文件夹,然后运行:
APOLLO_KEY=<APOLLO_KEY> APOLLO_GRAPH_REF=<APOLLO_GRAPH_REF> ./router --config supergraph-config.yaml
注意:请记住,您可以在您的.env
文件中找到APOLLO_KEY
和APOLLO_GRAPH_REF
的值。
接下来,让我们转到资源管理器(这次在Studio中,而不是在沙盒中!),并运行那个梦想查询。
query GetRecipeWithPlaylists {randomRecipe {namedescriptioningredients {text}instructionsrecommendedPlaylists {idnamedescriptiontracks {idnamedurationMsexplicit}}}}
您应该看到数据返回,包含我们所需的一切。我们的启动成功了!🎉
主要收获
- 一个启动代表将模式更新应用到图的完整过程。当模式发布到GraphOS时,会触发启动。
- 要发布子图模式,请使用
rover subgraph publish
命令。 - 我们可以通过 Studio 启动页面检查启动的结果。
结论
恭喜您!虽然我们从一个简单的GraphQL 服务器开始,但我们使用了联邦和GraphOS的原理,将一个全新的 API 引入其中。使用实体,我们将餐点与音乐联系起来,让任何有心情做新菜的人都能找到灵感。我们使用rover dev
、模式检查和启动确保这些全新且令人兴奋的更改能够安全地发布。
感谢您一直陪伴我们踏上探索Apollo Federation、GraphOS和 Hot Chocolate 的旅程。请查看其他奥德赛提供的课程,并继续构建您的图!
分享您关于本课的问题和评论
本课程目前处于
您需要一个 GitHub 帐户才能在下方发布。还没有吗? 请在我们的 Odyssey 论坛中发布。