App Engine 标准环境运行时

App Engine 标准环境具有两代运行时环境。第二代运行时显著改进了 App Engine 的功能,并消除了第一代运行时的一些限制。本页面介绍了第一代和第二代运行时之间的相似之处和不同之处。

第二代 第一代
支持的语言 Python 3
Java 11/17(预览版)
Node.js
PHP 7+
Ruby
Go 1.12+
Python 2.7
Java 8
PHP 5.5
Go 1.11
语言扩展和系统库支持 任何扩展或库 Python 2.7、PHP 5.5:列入许可名单的扩展程序 和 库
Java 8、Go 1.11:所有扩展程序或库
支持的 API

如需访问功能全面的 Google Cloud 服务,请使用开源 Cloud 客户端库

更新到 Python 3、Java 11/17 或 Go 1.12+ 运行时时,您可以继续使用许多 App Engine 捆绑服务。如需了解详情,请参阅 Python 3Java 11Go 1.12+ 指南了解详情。

Cloud 客户端库和专有 App Engine API
为了实现数据永久性,请使用 Datastore(Python 开发者还可以使用 Cloud NDB)、Firestore(需要新项目)或 Cloud SQL
App Engine Datastore API
对于处理图片,建议使用 Imgix
如果您喜欢享受免费层级服务,请使用 Rethumb
App Engine Images API
对于发送电子邮件,您可以使用第三方邮件提供程序,例如 SendGridMailgunMailjet App Engine Mail API
对于缓存应用数据,您可以并使用无服务器 VPC 访问通道创建一个 Memorystore 实例,将其连接到您的应用。 App Engine Memcache API
对于可搜索的文档索引,您可以托管任何全文搜索数据库,例如 Compute Engine 上的 ElasticSearch,并通过您的服务访问该数据库。 App Engine Search API
对于推送队列,您可以使用 Cloud Tasks
对于拉取队列,您可以使用 Pub/Sub
App Engine Task Queue API
对于用户身份验证,您可以使用任何基于 HTTP 的身份验证系统,例如 OAuth 2.0 或 Firebase 身份验证 App Engine Users API
外部网络访问 完全访问 Python 2.7、PHP 5.5:通过网址提取 API
Java 8、Go 1.11:完整访问权限。
文件系统访问 拥有对 /tmp 的读/写访问权限 Python 2.7、PHP 5.5:无
Java 8、Go 1.11:拥有对 /tmp 的读/写访问权限
语言运行时 未修改的开源运行时 针对 App Engine 进行了修改
隔离机制 基于 gVisor 的容器沙盒 基于 gVisor 的容器沙盒

App Engine 第一代运行时支持

目前还没有计划弃用其他 App Engine 第一代运行时。第二代运行时代表 App Engine 的未来发展方向;但是,使用第一代运行时的开发者和客户将可继续获得支持和所学的系统更新。

如需详细了解第一代运行时的支持方案,请参阅对旧版运行时的长期支持

第一代和第二代运行时之间的相似之处

  • 扩增时间近乎即时,从而可以应对流量高峰
  • 应用使用相同的构建过程进行构建
  • 正式版服务的服务等级协议 (SLA) 相同
  • gcloud 命令支持相同,并且 GCP Console 界面相同
  • 免费层级

从第一代到第二代运行时的迁移资源

长期支持页面上提供了每种语言运行时的迁移指南。