配额

App Engine 应用可以消耗不超过特定配额的资源。

要查看项目中 App Engine 资源的每日使用情况和配额消耗情况,您可以访问 Google Cloud Platform Console 上的配额详情页面。

计费限额和安全限制

App Engine 有三种配额或限额:

  • 免费配额:每个应用都能在一定数额内免费使用每项资源。付费应用能超出免费配额,但不能超过支出限额或安全限制(以最先达到的限额为准)。
  • 支出限额:如果您是项目所有者结算管理员,可以在 Google Cloud Platform Console 上的 App Engine 设置中设置支出限额,以管理应用费用。到应用停用时,您可能会略微超出支出限额。
  • 安全限制:安全限制由 Google 设置,用以保护 App Engine 系统的完整性。这些配额可确保每个应用都不会过度占用资源而损害其他应用。如果超出这些限制,无论您是付费用户还是免费用户,都会收到错误消息。

支出限额

如果您是项目所有者结算管理员,可以为项目启用结算功能,以便在超出免费配额后可以使用额外的资源。您需要为应用使用的超过免费配额阈值的资源付费。

为应用启用结算功能后,您可以设置支出限额,使您每天的支出不会超出某个大致的限额。默认情况下支出是无限额的,为了更有效地控制应用费用,建议您指定一个支出限额。请注意,到应用停用时,您可能会略微超出支出限额。

为应用启用结算功能后,应用的安全限制会增加。如需了解详情,请参阅资源部分。

安全限制

安全限制包括每日配额和每分钟配额:

  • 每日配额每天在美国太平洋时间零点刷新。付费应用可以超出这个免费配额,直到支出限额用尽,或直至达到安全限额(以最先达到的限额为准)。
  • 每分钟配额可以避免应用在短时间内耗尽资源,同时避免其他应用垄断指定的资源。如果您的应用消耗资源的速度太快,并且耗尽了其中一个每分钟配额,则在 Google Cloud Platform (GCP) Console 中的配额详情屏幕上,相关配额的旁边会显示“受限”字样。对达到每分钟限额的资源所提的请求将被拒绝。

如需详细了解当配额超出时会出现什么情况,以及如何处理超出配额的状况,请参阅当资源耗尽时这篇文章。

提示:对于付费应用,最高每分钟配额可以满足高流量级别的需求,足以应对您的网站在获得新闻报道后迎来的流量高峰。如果您认为某个配额达不到此要求,请在问题跟踪器中创建相应的功能请求问题。请注意,提交功能请求并不保证特定应用的实际配额会大幅提升,但这可帮助我们了解哪个配额的设置可能太低,无法满足一般用途。

如果您预计流量将达到极高水平,或者如果出于某种原因您的应用需要特别高的配额(例如,由于重大产品发布或大型负载测试),我们建议您注册白银级、黄金级或白金级支持

如何补充资源

App Engine 会参照系统配额跟踪您的应用使用资源的情况。在每个日历日开始时,App Engine 都会重置所有资源计量结果(不包括“存储的数据量”,因为此指标始终表示已使用的数据存储区的存储容量)。当免费应用用完某项资源的配额时,将无法继续使用该资源,直到配额获得补充为止。付费应用可以超出免费配额,直到支出限额用尽。

每日配额每天在美国太平洋时间零点补充。每分钟配额每隔 60 秒刷新一次。

当资源耗尽时

当应用用完分配的某项资源时,资源就会变为不可用,直到配额获得补充为止。这可能意味着在配额补充之前,您的应用将无法工作。

对于启动请求所需的资源,当资源耗尽时,App Engine 默认会针对请求返回 HTTP 403 或 503 错误代码,而不是调用请求处理程序。以下资源具有此行为:

  • 带宽(传入和传出)
  • 实例小时

提示:您可以对应用进行配置,使其在超出配额时显示自定义错误页面。如需了解详情,请参阅适用于 PythonJavaGo 的配置文件参考。

针对所有其他资源,如果应用在资源耗尽后尝试使用资源,将会导致异常。应用可以捕获并处理此异常,比如向用户显示友好的错误消息。在 Python API 中,这个异常是 apiproxy_errors.OverQuotaError。在 Java API 中,这个异常是 com.google.apphosting.api.ApiProxy.OverQuotaException。在 Go API 中,appengine.IsOverQuota 函数会报告错误是否表示(可用配额不足导致的)API 调用失败。

下面的示例显示如何捕获在超出与电子邮件相关的配额时可能会由 SendMessage() 方法触发的 OverQuotaError

try:
  mail.SendMessage(to='test@example.com',
                   from='admin@example.com',
                   subject='Test Email',
                   body='Testing')
except apiproxy_errors.OverQuotaError, message:
  # Log the error.
  logging.error(message)
  # Display an informative message to the user.
  self.response.out.write('The email could not be sent. '
                          'Please try again later.')

您的应用已超出默认限额?如果需要更高的邮件配额,可以使用 SendGrid 来发送电子邮件。如需增加任何其他配额,且您购买了白银级、黄金级或白金级支持套餐,可以联系您的支持代表以申请更高的吞吐量限额。如果没有支持套餐,您可以提交功能申请

App Engine 柔性环境配额

将应用部署到 App Engine 柔性环境时会消耗一些 Google Cloud Platform 资源。您可能无法修改这些资源,但这些资源会占用您的配额。

资源

应用可以在配额限制下使用以下资源。以计费限额计量的资源用“(计费)”表示。资源量表示 24 个小时内的配额。

超额资源的费用请参考价格页面。

默认 Google Cloud Storage 存储分区

应用可以使用默认的 Google Cloud Storage 存储分区,此存储分区具有免费配额,不要求为应用启用结算功能。您可以进入 Google Cloud Platform Console 的 App Engine 设置页面为项目创建此免费的默认存储分区。

以下配额适用于对默认存储分区的使用。有关这些配额的说明,请参阅 Google Cloud Storage Multi-Regional 存储分区的价格

默认 Google Cloud Storage 存储分区存储的数据、I/O 以及出站流量
可以免费存储在默认 Google Cloud Storage 存储分区中的数据总量是有限的。

Cloud Storage 操作和网络出站流量更改的新价格从 2016 年 12 月开始生效。在 2016 年 12 月,我们将开始对默认 Google Cloud Storage 存储分区的操作进行收费。每日用量将有一个免费配额,具体如下所示。如需了解详细的定义和价格信息,请参阅 Google Cloud Storage 价格。此外,来自默认存储分区的网络出站流量将计入每日 1 GB 的传出带宽配额。

资源 免费的默认限额 启用结算功能后的默认限额
默认 Google Cloud Storage 存储分区存储的数据 5 GB 前 5 GB 免费;没有最大值
默认 Google Cloud Storage 存储分区的 A 类操作 20,000 次操作/天 每天的前 20,000 次免费;没有最大值
默认 Google Cloud Storage 存储分区的 B 类操作 50,000 次操作/天 每天的前 50,000 次免费;没有最大值
默认 Google Cloud Storage 存储分区的网络出站 不得超过传出带宽配额 在不超过传出带宽配额时免费;没有最大值

Blobstore

以下配额适用于对 Blobstore 的使用。

Blobstore 存储的数据量
Blobstore 中存储的数据总量。适用于付费和免费应用。
资源 免费的默认限额 启用结算功能后的默认限额
Blobstore 存储的数据量 5 GB 前 5 GB 免费;没有最大值

代码和静态数据存储

静态数据
单个静态数据文件不得大于 32 MB。
总存储空间
存储空间配额适用于应用的所有版本所存储的全部代码和静态数据。已存储的代码和静态文件的总大小列在主信息中心表格内。个体大小分别显示在“版本”和“后端”屏幕上。免费应用最多只能上传 1 GB 的代码和静态数据。付费应用可以上传更多内容,但超出 1 GB 后存储的任何代码和静态数据都需要按每月每 GB $ 0.026 的价格付费。
美国/欧洲 亚洲(日本)
资源 费用
代码和静态数据存储 - 最初的 1 GB 免费
代码和静态数据存储 - 超过 1 GB

Datastore

存储的数据量(计费)配额指在 Datastore、Blobstore 和任务队列中为应用存储的所有数据。在 Google Cloud Platform Console 中的配额详情屏幕上,Datastore 部分中的其他配额专指 Datastore 服务。

存储的数据量(计费)

数据存储区实体和相应索引、任务队列以及 Blobstore 中存储的数据总量。

必须要注意的是,存储在数据存储区中的数据可能会产生大幅开销。此开销取决于关联属性的数量和类型,并包括内置和自定义索引所使用的空间。存储在数据存储区中的每个实体都需要以下元数据:

  • 实体键,包括种类、ID 或键名称,以及实体祖先的键。
  • 每个属性的名称和值。因为数据存储区无架构,所以对于给定的任一实体,每个属性的名称都必须和属性值一起存储。
  • 引用此实体的任何内置和自定义的索引行。每一行都包含实体种类、任意数量的属性值(具体取决于索引定义)以及实体键。

如需了解在 Bigtable 级别存储实体和索引所需的元数据的完整列表。请参阅实体和索引的存储方式

索引数
因应用而存在的 Datastore 索引的数量。其中包括过去创建的、已不在应用配置中,但尚未删除的索引。如需详细了解限额信息,请参阅 Datastore 限额页面
写入操作次数
Datastore 写入操作的总次数。
读取操作次数
Datastore 读取操作的总次数。
小规模操作次数
Datastore 小规模操作的总次数。小规模操作包括用于分配 Datastore ID 的调用操作或仅限于键的查询。
美国/欧洲 亚洲(日本)
资源 免费的默认每日限额 启用结算功能后的默认限额
存储的数据量(计费 1 GB * 1 GB 免费;无最大值
索引数 200 * 200
实体读取次数 50,000
实体写入次数 20,000
实体删除次数 20,000
小规模操作次数 无限制 不适用

*不是每日限额,而是一个总限额。自动生成的单个属性的升序索引不计入此限额。

注意:由数据存储区管理员数据存储区查看者生成的数据存储区操作不计入应用配额。

部署

部署
开发者上传相关应用的次数。目前的配额是每天 10000 次。

应用的每个版本最多只能上传 10000 个文件。每个文件最大不能超过 32 MB。此外,如果所有版本的所有文件的总大小超过了最初的 1 GB 免费配额,则每个月每 GB 的费用为 $ 0.026。

实例小时

系统会根据指定的小时费率按实例运行时间计算实例使用费用。计费时间从实例启动时开始,在实例关闭 15 分钟后结束。如果空闲实例数量超出 GCP Console 的“性能设置”标签中所设的最大空闲实例数,系统不会计费。

前端和后端实例的每日免费配额是分开计算的。请注意,如果使用 App Engine 服务,服务的实例类别将决定适用的具体配额。

资源或 API 调用 免费配额
前端实例(自动扩缩模块) 每天 28 个免费 F1 实例小时
后端实例(基本模块和手动扩缩模块) 每天 9 个免费 B1 实例小时

日志

Logs API 是在检索日志数据时计量的,可用于付费和免费应用。

日志提取配额指应用的请求日志和应用日志数据,适用于付费应用和免费应用。App Engine 应用日志由 Stackdriver 提供。如需详细了解费率和限额,请参阅 Stackdriver 价格

资源 免费的默认限额 启用结算功能后的默认限额
日志数据检索 100 MB 付费应用没有最高限额。
日志提取配额 5 GB,日志数据最多保留 7 天。 日志数据最多保留 30 天。如需了解详情,请参阅 Stackdriver 价格

邮件

App Engine“按邮件”对电子邮件使用量计费,会统计发给每个收件人的每封电子邮件。例如,如果发送一封电子邮件给 10 个收件人,系统就会记录 10 封电子邮件。

Mail API 调用次数
应用访问邮件服务发送邮件的总次数。
发送的邮件数
应用发送的邮件总数。请注意,在您结清应用的第一笔费用之前,“发送的邮件数”的最大配额会保持在免费级别。
发送的管理员邮件数
应用发送给应用管理员的邮件总数(每封管理员电子邮件的总大小限额(包括标题、附件和正文)是 16 KB)。
发送的邮件正文数据量
在电子邮件正文中发送的数据量。这也计入传出带宽配额。
发送的附件数量
与电子邮件一起发送的附件总数。
发送的附件数据量
作为电子邮件附件发送的数据量。这也计入传出带宽配额。
资源 免费的默认限额 启用结算功能后的默认限额 所有应用的最大速率
Mail API 调用次数 10 次调用 7,000 次调用 32 次调用/分钟
电子邮件收件人数量 10 封邮件 100 封邮件 8 封邮件/分钟
电子邮件管理员收件人数量 5,000 封邮件 5,000 封邮件 24 封邮件/分钟
发送的邮件正文数据量 60 MB 60 MB 340 KB/分钟
发送的附件数量 2,000 个附件 2,000 个附件 8 个附件/分钟
发送的附件数据量 100 MB 100 MB 10 MB/分钟

您最多可以为 Mail API 添加 50 个授权发件人。

超出每日邮件配额发送的邮件

如果应用每天需要发送超过 7000 封邮件,可以使用第三方邮件服务提供商(如 SendGridMailjetMailgun),他们的配额较高。

请求

传出带宽(计费)

应用响应请求所发送的数据量。

包括:

  • 应应用服务器、静态文件服务器或 Blobstore 的安全请求和非安全请求而提供的数据
  • 电子邮件中发送的数据
  • 网址提取服务发送的传出 HTTP 请求中的数据
传入带宽

应用从请求中接收的数据量。每个传入的 HTTP 请求不得大于 32 MB。

包括:

  • 应用在安全请求和非安全请求中收到的数据
  • 上传到 Blobstore 的数据
  • 网址提取服务接收用来响应 HTTP 请求的数据
安全传出带宽
应用通过安全连接发送的数据量。安全传出带宽也计在传出带宽配额内。
安全传入带宽
应用通过安全连接从请求中接收的数据量。安全传入带宽也计在传入带宽配额内。
资源 免费的默认限额 启用结算功能后的默认限额
每日限额 最大速率 每日限额 最大速率
传出带宽(计费,包括 HTTPS) 1 GB 56 MB/分钟 1 GB 免费;最多 14,400 GB 10 GB/分钟
传入带宽(包括 HTTPS) 1 GB;最大 14,400 GB 56 MB/分钟

下表列出了免费的搜索配额。如需了解每种搜索调用的详细说明,请参阅 JavaPythonGo 文档。

开启结算功能后,系统将根据定价表中的费率收取 Search API 资源的费用。

资源或 API 调用 免费配额
总存储空间(文档和索引) 0.25 GB
查询 每天 1000 次查询
添加文档到索引中 每天 0.01 GB

应用控制台配额部分显示 API 请求的原始计数。请注意,在单次调用中将多个文档编入索引时,调用计数随文档数量而增加。

Search API 设定这些限额是为了确保服务的可靠性:

  • 在一个应用和一个索引中,每分钟的查询执行时间总共为 100 分钟。
  • 每分钟添加/删除 15000 个文档
另外,每个索引占用的存储空间不能超过 10 GB。如果应用尝试超出此限额,将返回配额不足的错误。您可以从 Google Cloud Platform Console App Engine 搜索页面提交申请以将此限额增加到最高 200GB。

注意:虽然这些限额是按分钟实施的,但 GCP Console 显示的是每个限额的每日总计值。拥有白银级、黄金级或白金级支持的客户可以联系支持代表来申请更高的吞吐量限额。

套接字

每日数据和每分钟(突发)数据限额
使用套接字的应用按分钟和按天受到速率限制。设置每分钟限额是为了处理应用的突发行为。
资源 每日限额 每分钟(突发)限额
套接字绑定计数3,456,00019,200
套接字创建计数3,456,00019,200
套接字连接计数3,456,00019,200
套接字发送计数663,552,0003,686,400
套接字接收计数663,552,0003,686,400
接收的套接字字节数3.3 TB2.4 GB
发送的套接字字节数3.3 TB2.4 GB

任务队列

Task Queue API 调用次数
应用调用 Task Queue API 来将任务加入队列的总次数。
任务队列存储的任务计数
应用已加入队列但尚未执行的任务总数。
任务队列存储的任务字节数
应用已加入队列但尚未执行的任务所占用的总字节数。此配额会计为“存储的数据量(付费)”的一部分。

当任务执行时,其关联的请求会计入应用的请求配额

以下限额适用于所有任务队列:

资源 免费的默认限额 启用结算功能后的默认限额
每日限额 最大速率 每日限额 最大速率
Task Queue API 调用次数 100,000 不适用 1,000,000,000 不适用
任务队列管理调用次数(使用 GCP Console) 10,000 不适用 10,000 不适用
资源 免费的默认限额 启用结算功能后的默认限额
任务队列存储的任务计数 1,000,000 10,000,000,000
任务队列存储的任务字节数 500 MB,最高可配置为 1 GB。 无。最高可按存储的数据量(计费)配置。
最大队列数(包括推送队列和拉取队列,但不包括默认队列) 10 个队列。 100 个队列。

注意:任务执行或删除后,其使用的存储空间就会释放。您的存储配额是定期更新的,可能不会立即显示回收的空间。您可以通过调整队列配置来配置“存储的任务字节数”限额。如需了解详情,请参阅 PythonJavaGoPHP 文档。

以下限额按类型适用于任务队列:

推送队列限额
任务大小上限100 KB
队列执行速率每个队列每秒调用 500 次任务
任务的最大倒计时/ETA30 天,从当前日期和时间算起
可以批量添加的最大任务数100 个任务
事务中可以添加的最大任务数5 个任务
默认的最大任务队列数100 个队列。如需增加,请联系支持团队。
拉取队列限额
任务大小上限1 MB
任务的最大倒计时/ETA30 天,从当前日期和时间算起
可以批量添加的最大任务数100 个任务
事务中可以添加的最大任务数5 个任务
您可以在单次操作中租用的最大任务数1000 个任务
租用批量任务时的负载上限32 MB
默认的最大任务队列数100 个队列。如需增加,请联系支持团队。

Cron

以下配额适用于 Cron 作业。

Cron 作业
cron 作业的数量。适用于付费和免费应用。
资源 免费的默认限额 启用结算功能后的默认限额
Cron 作业 20 个 Cron 作业 250 个 Cron 作业

网址提取

URL Fetch API 调用次数
应用访问网址提取服务以执行 HTTP 或 HTTPS 请求的总次数。
发送的网址提取数据
在请求中发送至网址提取服务的数据量。这也计入传出带宽配额。
接收到的网址提取数据量
在响应中从网址提取服务接收到的数据量。这也计入传入带宽配额。
资源 免费的默认限额 启用结算功能后的默认限额
每日限额 最大速率 每日限额 最大速率
UrlFetch API 调用次数 657,000 次调用 3,000 次调用/分钟 860,000,000 次调用 660,000 次调用/分钟
发送的 UrlFetch 数据量 4 GB 22 MB/分钟 4.5 TB 3,600 MB/分钟
接收到的 UrlFetch 数据量 4 GB 22 MB/分钟 4.5 TB 3,600 MB/分钟
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
App Engine Documentation