限制和配额可保护 Google 基础架构免受自动流程以不当方式使用 Reports API 所造成的影响。API 请求过多可能是由于无害的拼写错误所致,也可能是由于低效系统对 API 进行不必要的调用所致。无论是何种原因,都有必要在来自特定来源的流量达到某一级别时阻止该流量,以确保 Google Workspace 系统总体运行状况良好。它们可确保一个开发者的行为所造成的负面影响不会波及更大范围的开发者群体。
在极少数情况下,您的 API 请求会失败,此时您会收到 HTTP 状态代码响应。状态代码 403 包含有关 输入不正确的错误信息,而 HTTP 状态代码 503 包含错误信息 指明哪些 API 配额已超出。通过这些响应,您的 自定义应用可以检测到这些错误并采取适当的操作。
如果您的请求需要在固定的时间段内完成,请并行发送请求,或在 Java 或 C# 应用中使用多个线程。并行请求的一个示例是,从 不同用户处请求小批量的电子邮件,而不是同时添加或移除来自一个用户 的大量电子邮件。对于线程,请尝试从 10 个线程开始,每个用户电子邮件对应一个 线程。请注意,线程建议有利有弊,并非适用于所有 API 情况。如果请求数量过高, 配额错误将会发生。
对于所有基于时间的错误(每个线程每 N 秒最多 N 个内容),尤其是 503 状态代码错误,我们 建议您的代码捕获异常,并使用 指数退避 算法等待一小段时间,然后再重试失败的调用。对于一个线程,Reports API 的示例是等待 5 秒,然后重试 失败的调用。如果请求成功,请针对其他 线程重复此模式。如果第二个请求不成功,您的应用应 减少请求的频率,直到调用成功为止。例如,将初始的 5 秒延迟时间增加到 10 秒,然后再次重试失败的调用。此外,还要确定重试限制。例如,在应用 向用户返回错误之前,使用不同的延迟时间重试请求 5 到 7 次。
限制
| API 限制类别 | 限制 |
|---|---|
| 报告 QPS 和 QPD 速率 | API 会限制您的 Google Cloud 项目的请求数量。
在 Google Cloud 控制台中设置的默认值为每个 Google Cloud 项目中每位用户每分钟 2,400 次查询
。您可以从 Google Cloud 项目的
Admin SDK API 配额页面
增加此限制。
如果超出这些限制,服务器会返回 HTTP 503 状态 代码。重试请求时,请使用 指数退避 算法。 |
activities.list 的其他限制 |
activities.list API 还有每分钟 250
次过滤查询(每小时 15,000 次过滤查询)的额外限制。过滤查询
是指包含以下至少一个查询
参数的 API 请求:
|
| API 配额类别 | 配额 |
| maxResults | API 响应的每个页面中列出的记录数介于 0 到 1000 条记录之间。默认值为 1000 条记录。 |
其他类型的限制
| 其他类型的限制 | 限制和准则 |
|---|---|
| 数据格式,默认 | 默认数据格式为 JSON。该 API 还支持 Atom 格式。 |
| 未经授权的请求 | Google 不允许向 API 发出未经授权的请求。如果未提供授权令牌,则请求会被视为未经授权。如需了解详情,请参阅 授权请求。 |
| 警告消息 |
|
activities.list 的最佳实践
activities.list
方法预计将用于审核调查。为获得最佳
性能,您的 请求应使用
startTime 和 endTime 参数包含时间范围。时间范围越窄
,响应时间越快。此方法不适用于批量检索审核日志。如果您经常用尽
activities.list 过滤条件请求配额,请考虑以下
选项:
- 设置 Google Workspace 日志导出到 BigQuery,并使用 BigQuery 强大的 查询 API 来检索和分析所需数据,而不会受到任何 API 配额 限制。
- 使用带有时间范围的非过滤条件请求,并执行客户端 过滤(即在应用中执行过滤逻辑),而不是 使用过滤条件请求。这样一来,您就可以突破每分钟 250 次过滤查询的限制 ,但仍会受到每个 Google Cloud 项目中每位用户每分钟 2,400 次查询的限制 。