搭载集成式Datastore的GAE应用可运行位置及未修改旧版GAE应用兼容当前平台的咨询
咱们一步步来解答你的问题——这类老GAE应用的兼容问题确实是很多长期维护项目会碰到的情况:
旧版集成Datastore的GAE应用可运行的环境
如果你是在Datastore从GAE核心服务拆分前构建的应用,且不想修改任何代码,那么这类应用只能在Google App Engine标准环境的第一代运行时中运行,具体包括:
- Python 2.7运行时(基于旧版GAE SDK,使用
google.appengine.ext.ndb/db这类原生Datastore API) - Java 8运行时(基于初代App Engine Java SDK,依赖
com.google.appengine.api.datastore包) - PHP 5.5运行时(使用GAE原生的Datastore扩展)
- Go 1.11运行时(依赖旧版
appengine/datastore包)
这些运行时保留了拆分前GAE与Datastore深度集成的特性,你旧应用里调用的原生Datastore接口会自动映射到当前的Cloud Datastore(现在以Firestore Datastore模式提供服务),完全不需要修改代码。
当前GAE是否支持运行这类旧版应用?
当然可以——Google仍然支持运行这类旧版应用,但有个关键限制:你必须将应用部署到上面列出的标准环境第一代运行时。
需要注意的是,这些第一代运行时大多处于维护模式(不再添加新功能,仅修复关键安全漏洞),但Google目前没有停用它们的计划,所以你的旧应用可以持续稳定运行。如果未来你想迁移到更新的运行时(比如Python 3+、Java 11+等),就需要重构代码,改用独立的Cloud Datastore/Firestore客户端库;但如果只是维持现有应用运行,完全不需要做任何修改,直接部署到对应运行时即可。
内容的提问来源于stack exchange,提问作者quarks
相关产品推荐
相关产品推荐

