配额

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

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

计费限额和安全限制

App Engine 有三种配额或限额:

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

支出限额

项目所有者结算管理员可以为项目启用结算功能

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

安全限制

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

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

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

提示:最高每分钟配额可以满足高流量级别的需求,足以应对您的网站在获得新闻报道后迎来的流量高峰。如果您认为某特定配额达不到此要求,请在问题跟踪器中提交反馈。请注意,提交反馈并不是一项增加配额的请求,但这可帮助我们了解哪个配额的设置可能太低,无法满足一般用途。

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

如何补充资源

App Engine 会参照系统配额跟踪您的应用使用资源的情况。 在每个日历日开始时,App Engine 都会重置所有资源计量结果(不包括“存储的数据量”,因为此指标始终表示已使用的数据存储区的存储容量)。

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

当资源耗尽时

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

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

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

提示:您可以对应用进行配置,使其在超出配额时显示自定义错误页面。如需了解详情,请参阅 Python(2.73.7JavaGo、PHP(5.57.2)或 Node.js 的配置文件参考。

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

以下示例说明了如何捕获 OverQuotaError,它可能在超过电子邮件相关配额时由 SendMessage() 方法引发:

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 来发送电子邮件。如需增加任何其他配额,并且您购买了白银级、黄金级或白金级支持套餐,可以联系您的支持代表,以申请更高的吞吐量限额。否则,您可以在 Google Cloud Console 上提交增加配额的申请,方法是选择特定配额,然后点击修改配额

App Engine 柔性环境配额

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

资源

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

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

默认 Cloud Storage 存储分区

默认 Cloud Storage 存储分区的每日用量有一个免费配额,具体如下所示。您可以在 Google Cloud Console 的 App Engine 设置页面中为项目创建此免费默认存储分区。

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

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

Blobstore

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

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

代码和静态数据存储

静态数据限额
在除 Go 之外的所有语言中,单个静态数据文件不得大于 32MB。Go 的数据限额是 64MB。
总存储空间
存储配额适用于应用所有版本所存储的全部代码和静态数据。已存储的代码和静态文件的总大小列在主信息中心表格内。个体大小分别显示在“版本”和“后端”屏幕上。对于超出 1 GB 后存储的任何代码和静态数据,应用会按每月每 GB $ 0.026 的价格收费。

Datastore

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

存储的数据量(计费)

数据存储区实体、相应索引和 Blobstore 中存储的数据总量。

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

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

如需全面了解在 Bigtable 层面存储实体和索引所需的元数据,请参阅实体和索引的存储方式

索引数
因应用而存在的 Datastore 索引的数量。其中包括过去创建的、已不在应用配置中,但尚未删除的索引。如需详细了解限额信息,请参阅 Datastore 限额页面
写入操作次数
Datastore 写入操作的总次数。
读取操作次数
Datastore 读取操作的总次数。
小规模操作次数
Datastore 小规模操作的总次数。小规模操作包括用于分配 Datastore ID 的调用操作或仅限于键的查询。
资源 默认限额
存储的数据量(计费 1 GB 免费;无最大值。
超过免费配额的部分,适用结算费率。
索引数 200
实体读取次数 5 万免费;无最大值。
超过免费配额的部分,适用结算费率。
实体写入次数 2 万免费;无最大值。
超过免费配额的部分,适用结算费率。
实体删除次数 2 万免费;无最大值。
超过免费配额的部分,适用结算费率。
小规模操作次数 无限制

注意:由 Datastore AdminDatastore Viewer 生成的 Datastore 操作不计入应用配额。

部署

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

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

实例小时

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

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

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

日志

Logs API 是在检索日志数据时计量的。

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

邮件

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

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

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

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

如果您的应用需要较高的发送邮件的配额,您可以使用具有较高配额的第三方邮件提供商,例如 SendGridMailjetMailgun

请求

传出带宽(计费)

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

包括:

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

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

包括:

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

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

系统将根据定价表中的费率收取 Search API 资源的费用。

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

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

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

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

注意:虽然这些限额是按分钟实施的,但 Cloud 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 调用次数 1,000,000,000
任务队列管理调用次数(使用 Cloud Console) 10000
资源 默认限额
任务队列存储的任务计数 100 亿
任务队列存储的任务字节数 无。
最大队列数(包括推送队列和拉取队列,但不包括默认队列) 100 个队列。

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

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

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

Cron

以下配额适用于 Cron 作业。

Cron 作业
Cron 作业的数量。
资源 默认限额
Cron 作业 250 个 Cron 作业

网址提取

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

发送以下问题的反馈:

此网页
App Engine 文档