GraphOS 路由器企业功能
使用由企业计划启用的 GraphOS 路由器的扩展功能
GraphOS组织拥有 企业计划 可以 将自托管路由器连接到 GraphOS 以获得更广泛的功能集。
连接到 GraphOS 的 路由器,无论是否为云托管或自托管,都称为 GraphOS 路由器。它可以根据连接的 GraphOS 组织的计划访问特定的 GraphOS 功能。请参阅 定价页面 以比较不同计划类型之间的 GraphOS 路由器功能。
💡 技巧
免费试用 GraphOS 路由器的企业功能,只需 GraphOS Router 企业试用即可。
功能列表
GraphOS 路由器支持一系列针对 GraphOS 的高级功能。这包括:
- 通过 GraphQL 订阅
- 使用 查询批处理
- 通过 JSON Web Token (JWT)
- 授权特定字段和类型 通过
@requiresScopes
、@authenticated
和@policy
指令实现 - 通过 subgraphs 进行增量迁移,通过 渐进式
@override
指令 - 基于Redis的查询计划和持久化查询的分布式缓存
- 基于Redis的子图响应的实体缓存
- 用外部协处理器在任意语言中实现自定义请求处理。
- 通过操作限制,、需求控制和白名单缓解潜在的恶意请求。
- 自定义仪表盘和遥测,包括自定义跨度属性。
- 支持断网情况下运行的离线企业许可证,允许在不连接到互联网的情况下使用企业特性。
💡 技巧
有关企业特性的文章会在左侧导航中标记有❖图标。
有关这些功能的详细信息,请参阅 这篇博客文章,以及上面的文档链接。
启用企业功能
要启用对GraphOS Router 企业功能的支持:
- 您的组织必须拥有GraphOS 企业版计划。
- 您必须运行GraphOS Router v1.12。下载最新版本。
- 某些企业功能可能需要更高版本的router。有关特定功能的详细信息,请参阅其文档。
- 您的router实例必须使用与您组织关联的graph API密钥和相关graph ref连接到GraphOS。
- 您可以通过在启动router时设置这些环境变量将router连接到GraphOS。
- 如果您的router 已经连接到您的GraphOS企业组织,无需采取进一步行动。
启用支持后,您可以使用所有企业功能。有关更多信息,请参阅每个功能的文档。
企业许可证
无论何时您的router实例启动并连接到GraphOS,它都会获取一个许可证,这是授权其使用企业功能的凭证:
router实例在其执行期间保留其许可证。如果您终止一个router实例然后稍后在同一台机器上启动一个新的实例,它必须获取一个新的许可证。
许可证通过Apollo Uplink提供,这是与您router从GraphOS获取其supergraph模式相同的多云端点。因此,许可证不会引入任何额外的网络依赖项,这意味着您的router的运行时间不受影响。有关多云Uplink的更多信息,请阅读Apollo博客文章。
路由器实例的许可证有效期为贵组织当前订阅的账期(外加宽限期),即使路由器暂时与GraphOS断开连接。
离线企业许可证从1.37.0
💡 技巧
离线企业许可证支持在需要时使用。向您的Apollo联系人发送请求,以启用您的GraphOS Studio组织。
在完全连接到GraphOS的情况下运行您的GraphOS路由器车队是大多数Apollo用户的最佳选择。然而,某些情况可能会阻止您的路由器长时间连接到GraphOS,这可能是由于破坏连接的灾害,也可能是由于使用孤立网络的独立站点。如果您需要重新启动或快速扩大整个路由器车队,但您无法与Apollo Uplink通信,新的路由器实例将无法提供服务。
为了支持长期断开连接的情况,GraphOS为GraphOS路由器提供离线企业许可证。离线许可证使路由器可以在不连接到GraphOS的情况下启动和提供服务。离线许可证提供的功能与完全连接到GraphOS时的功能相似,包括托管联邦以及supergraph CI(操作检查、模式检查、合约等)。
您可以通过rover license fetch
命令从GraphOS获取离线许可证。
使用离线许可证,路由器可以完全断开与GraphOS的连接,或者配置为尽可能连接到GraphOS,以便发送图使用指标。Apollo建议尽可能将路由器配置为向GraphOS报告图使用指标。由于您的路由器以最佳努力的方式发送指标,它不会对性能或 uptime 产生任何惩罚,同时启用几个强大的GraphOS功能,例如操作检查、字段洞察、操作跟踪和合约。
ⓘ 注意
使用离线许可证的路由器在使用具有持久查询的安全列表时需要使用本地清单,否则当路由器从Uplink断开连接时,它将无法按预期工作。
离线许可证的有效期限为您的Apollo协议期限与一年中的较短者,并附带28天的宽限期。您需要通过重新运行rover license fetch
来获取更新后的许可证文件,以保持您的离线许可证文件在基础设施中是最新的。
为GraphOS路由器设置离线许可证
按照以下步骤配置GraphOS路由器以使用离线
通过运行
rover license fetch
,输入所需从其中获取许可证的的ID来获取离线许可证: rover license fetch --graph-id <apollo-graph-id>在启动时,将离线许可证提供给您的
。路由器以几种方式接受离线许可证: --license <license_path>
CLI选项,其参数包含到离线许可证文件的绝对或相对路径APOLLO_ROUTER_LICENSE_PATH
环境变量,包含到离线许可证文件的绝对或相对路径APOLLO_ROUTER_LICENSE
环境变量,包含离线许可证文件字符串化内容
ⓘ 注意
- 路由器按顺序检查CLI选项和环境变量,然后使用设置的第一个选项或变量的值。
- 该
--license <license_path>
选项仅在运行路由器二进制文件时可用。当使用rover dev
运行路由器时,必须使用环境变量来提供您的离线许可证。
通过设置以下选项之一来配置路由器以使用本地的超级图模式:
--s/-supergraph
CLI 选项,其中包含到supergraph schema
文件的绝对或相对路径作为参数。APOLLO_SUPERGRAPH_PATH
环境变量,其中包含到supergraph schema
文件的绝对或相对路径。APOLLO_SUPERGRAPH_URLS
环境变量,其中包含supergraph schemas
的 URL。
(推荐)通过设置
APOLLO_KEY
和APOLLO_GRAPH_REF
环境变量,以尽力而为的方式配置路由器向 GraphOS 报告使用指标。这些指标对于几个重要的 GraphOS 功能(操作 检查、字段洞察、操作跟踪、合约)是必要的。努力发送它们不会产生性能或正常运行时间处罚。
本地开发许可证
您可能还需要在您的本地机器上运行 GraphOS 路由器实例,例如使用 rover dev
命令。您的本地路由器实例很可能不会连接到 GraphOS 来从 Uplink 获取其 supergraph schema
。例如,您可以通过运行 rover dev
在本地执行 组合。
您可以在本地组合超级图模式下使用企业路由器功能! 要这样做,您的路由器仍然需要连接到 GraphOS 来获取其 许可证。
设置本地开发
以下步骤既适用于直接运行路由器可执行文件(./router
)也适用于通过 rover dev
运行它:
创建一个新的变体,您将使用该变体只用于获取 企业许可证。
- 给这个 变体 起一个能清晰地将其与跟踪模式和指标的变体区分开来的名字。
- 每个在本地运行路由器的团队成员都可以使用这个相同的 变体。
- 创建此变体后,发布一个模拟子图架构,如下所示(您的路由器将不会使用它):
type Query {hello: String}为您的超级图创建一个图API密钥,并将其分配给贡献者角色。
- 我们建议为每个将在本地运行路由器的团队成员创建一个单独的图API密钥。
当您使用常规命令启动本地路由器时,设置该命令的
APOLLO_GRAPH_REF
和APOLLO_KEY
环境变量:APOLLO_GRAPH_REF="..." APOLLO_KEY="..." ./router --supergraph schema.graphql- `APOLLO_GRAPH_REF`的值是您创建的新、针对许可证特定的变体的图引用(例如,
docs-example-graph@local-licenses
)。 - `APOLLO_KEY`的值是您创建的图API密钥。
- `APOLLO_GRAPH_REF`的值是您创建的新、针对许可证特定的变体的图引用(例如,
您的路由器在使用其本地组合的超级图架构时将检索企业许可证。
常见错误
如果您的路由器没有成功连接到GraphOS,如果启用了任何企业功能,它将记录以下字符串开始的错误:
错误消息 | 描述 |
---|---|
未连接到GraphOS。 | APOLLO_KEY 和APOLLO_GRAPH_REF 环境变量未在路由器启动时设置。 |
找不到许可证。 | 路由器使用与GraphOS企业计划不相关的凭证连接到GraphOS。 |
许可证已过期。 | 您的组织的GraphOS企业订阅已结束。您的路由器将在标准的宽限期结束时停止处理传入请求。 |
禁用企业功能
要禁用企业功能,请从路由器YAML配置文件中删除所有相关配置密钥。
已过期的计划宽限期
如果您的组织终止其GraphOS企业订阅,您的路由器的企业许可证将在最终付费订阅期结束时被视为过期。GraphOS为过期许可证提供宽限期,以便在路由器产生破坏性错误之前,您可以在其中禁用企业功能。
如果您的路由器的企业许可证已过期,若仍启用了任何企业功能,则其行为将按照以下时间表下降,:
- 在您的许可证过期后的前14天内,您的路由器将继续表现得像具有有效许可证一样。
- 在第14天后,您的路由器将开始进入软故障:它将继续处理客户端请求,但会发出表示正在发生故障的日志和指标。
- 在第28天后,您的路由器将开始进入硬故障。它将不再处理传入的客户端请求,并继续发出软故障期间的日志和指标。
无论何时您续订GraphOS企业订阅或禁用所有企业功能,您的路由器都会恢复正常功能。