加入我们,从10月8日至10日在纽约市参加活动,学习有关 GraphQL 联邦和 API 平台工程的最新技巧、趋势和新闻。加入我们,参加2024年纽约市的 GraphQL 峰会
文档
免费开始

配置模式检查

定义模式如何应用于模式变更


在您启用模式检查为您的,您可以自定义其行为以适应您的使用情况。例如,您可以:

  • 排除过去,例如仅用于测试的客户所执行的操作
  • 排除相对不频繁执行的操作
  • 检查模式更改与多个
  • 忽略默认值更改
  • 检查运行针对零操作时忽略潜在破坏性更改

GraphOS Studio中,您可以配置应用于每个执行模式检查的默认规则。您可以在您变体页面的配置标签中定义这些规则:变体检查

Check configuration page in GraphOS Studio

配置选项

  • 时间范围:包括在这个范围内执行的所有不同操作。默认值为7天(“在过去一周内”)。
    • 操作数量阈值:排除在指定时间范围内执行次数少于这个数字的所有操作。
  • 包含的变体:包括针对您图中的每个所选变体的所有不同操作。默认值为“基本变体”(即,正在对其进行模式检查的任何变体)。
  • 排除客户端:排除由特定客户端执行的所有操作,例如专用于开发和测试的客户端。
  • 排除操作:排除特定的命名操作。
  • 忽略条件:忽略某些类型的模式更改。 了解更多。

使用Rover CLI

您可以通过提供选项来自定义单个运行的模式检查。如果您还为模式检查配置了默认规则,您提供的任何命令行选项都优先于这些规则。

验证周期

您可以使用--validation-period选项来指定Studio在确定过去操作与您模式更改的兼容性时应该回溯多长时间(默认情况下,命令使用过去7天的操作)。

此命令将模式更改与过去两周的操作进行检查:

rover subgraph check docs-example-graph@current --name products --schema ./schema.graphql --validation-period="2 weeks"

有效的时间长度的表示可以是以下组合月份:

  • 1个月2周
  • 525600分

注意

如果指定的--validation-period超过了组织operation保留期,则subgraph check命令会报错。

阈值值

您可以为阈值值设置忽略历史操作(这些操作相对较少)提供阈值值。

例如,您可能想停止对旧版本客户端的支持,该客户端使用已弃用的。您可以设置阈值值以确定使用旧版客户端的用户数量相对较少时的时间点,从而减少停止支持的影响。

使用以下标志提供阈值值

  • --query-count-threshold - 仅对在指定时间段内至少执行了指定次数的操作检查您的模式。
  • --query-percentage-threshold - 仅对在指定时间段内占所有操作中指定百分比的图形操作检查您的模式。例如,指定3将此阈值设置为3%。

注意

您可以为这两个标志提供值。如果您这样做,操作必须至少达到这两个阈值,才能将其包括在模式检查中。

以下是一个使用阈值值运行rover subgraph check的示例:

rover subgraph check docs-example-graph@current \
# Path to schema file
--schema ./schema.graphql
# Name of subgraph with schema updates
--name products
# Check the schema against operations that have run in the last 5 days
--validation-period="5 days" \
# Only check against operations that have run at least 5 times during the 5-day duration
--query-count-threshold=5 \
# Only check against operations that account for at least 3% of total operation volume
--query-percentage-threshold=3

如需请求其他过滤或阈值机制,请在Rover仓库联系我们。

检查多个环境

您可能想要将模式更改与多个环境进行对比,例如生产环境、预发布环境和Beta环境。这些环境中的每个可能都有一个略微不同的模式以支持实验性或有活跃开发的功能。在中,这些架构被表示为单一图的变体

您在提供给图引用rover subgraph check中以指定要检查的哪个变体:

rover subgraph check docs-example-graph@staging --name products --schema ./schema.graphql

以下为docs-example-graph@staging指定了docs-example-graph图的staging变体

要检查多个,请在每个变体上调用一次rover subgraph check。这样做会得到类似于以下的状态检查:

Multiple service checks running for different variants
上一页
概述
下一页
连接到GitHub
评价本文评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,商业名称:Apollo GraphQL。

隐私政策

公司