Cloud Endpoints 提供了配额功能,这有助于您控制应用调用 API 的速率。您可以通过设置配额指定用量限制,以免 API 收到调用应用的过多请求。请求过多可能是由于简单的拼写错误所致,也可能是由于低效系统对您的 API 进行不必要的调用所致。无论是何种原因,您都应在来自特定来源的流量达到某一级别时阻止该流量,这是保证 API 总体运行良好所必需的。通过设置配额,您可以确保一个应用不会对使用您的 API 的其他应用产生负面影响。
本页简要介绍配额提供的关键功能。
将请求与使用方项目相关联
在您配置配额后,Endpoints 会跟踪每个使用方 Google Cloud 项目的每分钟请求数。调用您的 API 的每个应用都必须满足以下条件:
- 拥有 Google Cloud 项目。
- 已在其 Google Cloud 项目中启用您的 API。
- 向 API 发送每个请求时附带 API 密钥。如此,Endpoints 便可识别与调用应用关联的 Google Cloud 项目,并递增该 Google Cloud 项目的请求计数器。
如需了解如何配置 API 密钥,请参阅以下内容:
您可以让 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 > 服务页面上输入使用方项目的项目编号。如果您无权访问要替换的使用方项目,则需要联系能够获取项目编号的人员。