Cloud Endpoints 提供了配额功能,这有助于您控制应用调用 API 的速率。您可以通过设置配额指定用量限制,以免 API 收到调用应用的过多请求。请求过多可能是由于简单的拼写错误所致,也可能是由于低效系统对您的 API 进行不必要的调用所致。无论是何种原因,您都应在来自特定来源的流量达到某一级别时阻止该流量,这是保证 API 总体运行良好所必需的。通过设置配额,您可以确保一个应用不会对使用您的 API 的其他应用产生负面影响。
本页简要介绍配额提供的关键功能。
将请求与使用方项目相关联
在您配置配额后,Endpoints 会跟踪每个使用方 Google Cloud 项目的每分钟请求数。调用您的 API 的每个应用都必须满足以下条件:
- 拥有 Google Cloud 项目。
- 已在其 Google Cloud 项目中启用您的 API。
- 将 API 密钥随每个请求一起发送给您的 API。如此,Endpoints 便可识别与调用应用关联的 Google Cloud 项目,并递增该 Google Cloud 项目的请求计数器。
您可以让 API 使用方在 Google Cloud 控制台中创建自己的项目,也可以为他们创建项目。由于 Endpoints 会对每个项目强制执行配额限制,因此每个 API 使用方必须各有一个项目。
限制每分钟的请求数
通过设置配额,您可以限制每分钟对整个 API 或仅对特定方法的请求数。如果使用方项目中的客户端代码超出了您配置的限制,则请求将被拒绝且无法到达您的 API,同时系统会返回 HTTP 状态代码 429 too many
requests
。调用应用将需要处理 429
状态代码,并使用指数退避算法或其他一些重试逻辑降低对 API 的调用速率。
配置一个或多个配额
您可以配置一个或多个命名配额,并为每个配额指定不同的速率限制。例如,您的 API 中可能有一些资源密集型方法(例如,运行复杂查询并返回大量结果的方法),以及其他快速轻量级方法。您可能需要配置两个具有不同速率限制的配额,并将资源密集型方法与一个配额相关联,而将轻量级方法与另一个配额相关联。
配置费用
将方法与配额相关联时,您始终需要为请求指定费用,从而让不同的方法以不同的速率消耗同一个配额。您可以将费用作为配置不同配额的替代方案。 例如,假设您配置的配额是每分钟最多 1000 个请求。对于轻量级方法,请将费用配置为 1,表示客户端每分钟可以调用 1000 次轻量级方法。对于资源密集型方法,请将费用配置为 2,这表示每次客户端调用该方法时,请求计数器都会递增 2,直到达到 1000 的限制。实际上,这会将资源密集型方法限制为每分钟 500 个请求。
替换已配置的配额
Endpoints > 服务页面会显示针对 API 中的每种方法配置的配额。如果需要,您可以替换针对特定使用方项目配置的限制。如需设置替换项,您需要在 Endpoints > 服务页面上输入使用方项目的项目编号。如果您无权访问要替换的使用方项目,则需要联系能够获取项目编号的人员。