路由快速入门
在GraphOS和Apollo托管子图上运行路由器
你好!本教程将指导您安装路由器(GraphOS路由器或Apollo路由器核心)并在GraphOS和一些示例Apollo托管的子图上运行它。
本快速入门可帮助您运行一个自托管路由器实例。如果您使用Apollo GraphOS创建一个云超图,Apollo会为您配置和托管您超图的GraphOS路由器。
云超图适用于不需要在其自身基础设施中托管路由器的组织。
1. 下载并解压缩路由器二进制文件
ⓘ 注意
Apollo路由器核心源代码及其所有发行版本均根据弹性许可证v2.0 (ELv2)许可证提供。
下载选项
自动下载(Linux,OSX,WSL)
如果您有一个兼容bash的终端,您可以使用以下命令将Apollo路由器核心的最新版本直接下载到当前目录:
curl -sSL https://router.apollo.dev/download/nix/latest | sh
手动下载
前往Apollo Router Core的GitHub Releases页面👉GitHub Releases pageGitHub Releases page,下载最新版本。当前,以下版本的tar包可用:.tar.gz
文件按以下列出:
- Linux (x86_64)
- Linux (aarch64)
- macOS (苹果硅)
- Windows (x86_64)
若您系统或架构的tar包不可用,您可以从源代码编译并运行路由器👉build and run the router from source,也可以在GitHub上提交一个issue👉open an issue on GitHub,请求添加新的架构。
下载后,在新项目目录中运行以下命令解压缩文件,将tar包的路径替换进去
tar -xf path/to/file.tar.gz --strip-components=1
如果省略--strip-components=1
选项,则router
可执行文件将安装在dist
子目录中
运行二进制文件
现在可以从项目根目录使用以下命令运行
./router
如果您这样做,您会得到类似以下输出
Apollo Router <version> // (c) Apollo Graph, Inc. // Licensed as ELv2 (https://go.apollo.dev/elv2)⚠️ The Apollo Router requires a composed supergraph schema at startup. ⚠️👉 DO ONE:* Pass a local schema file with the '--supergraph' option:$ ./router --supergraph <file_path>* Fetch a registered schema from GraphOS by settingthese environment variables:$ APOLLO_KEY="..." APOLLO_GRAPH_REF="..." ./routerFor details, see the Apollo docs:https://apollo.graphql.net.cn/docs/federation/managed-federation/setup🔬 TESTING THINGS OUT?1. Download an example supergraph schema with Apollo-hosted subgraphs:$ curl -L https://supergraph.demo.starstuff.dev/ > starstuff.graphql2. Run the router in development mode with the supergraph schema:$ ./router --dev --supergraph starstuff.graphql
这是因为在
2. 下载示例 supergraph schema
在这个快速入门中,我们使用了示例Apollo-hosted子图以及一个由这些子图schema组成的示例supergraphschema。
从项目根目录运行以下命令
curl -sSL https://supergraph.demo.starstuff.dev/ > supergraph-schema.graphql
这会将一个含有以下内容的supergraph-schema.graphql
文件保存下来:
这个文件是router与我们的subgraphs通信所需的全部内容!
3. 以默认配置在开发模式下运行router
现在,从你的项目根目录运行以下命令
./router --dev --supergraph supergraph-schema.graphql
控制台输出应如下所示
2022-06-29T22:23:24.266542Z INFO apollo_router::executable: Apollo Router v0.9.5 // (c) Apollo Graph, Inc. // Licensed as ELv2 (https://go.apollo.dev/elv2)2022-06-29T22:23:24.488286Z INFO apollo_router::router: starting Apollo Router2022-06-29T22:23:25.774334Z INFO apollo_router::axum_http_server_factory: GraphQL endpoint exposed at http://127.0.0.1:4000/ 🚀
这样就完成了!使用router时加上--dev
标志将启用开发模式,暴露Apollo沙盒,以便你可以在router上运行查询。
访问 http://127.0.0.1:4000
打开Apollo沙盒,检查您的整个supergraph,并运行您的第一个查询!
下一步
现在您已经知道了如何使用supergraph schema运行router,您可以:
- 设置托管联合
- 了解有关其他配置选项
- 预估部署router所需的系统资源。