Python3 App Engine本地Datastore使用疑问及403权限问题咨询
针对你的App Engine Python3应用Datastore问题的解答
1. 该应用是否应默认使用本地Datastore?
你使用的google.cloud.ndb是Cloud Datastore的官方客户端库,不会默认适配dev_appserver.py自带的本地Datastore(.db文件)——这个.db格式的本地存储是给老版本的google.appengine.ext.ndb(App Engine原生NDB库)设计的。你配置GOOGLE_APPLICATION_CREDENTIALS后,google.cloud.ndb会尝试连接云端的Cloud Datastore,这就是触发403权限错误的原因。
2. 是否需要改用Datastore模拟器?
是的,非常推荐。Datastore模拟器是Google官方提供的本地开发工具,专门模拟云端Cloud Datastore的行为,和google.cloud.ndb完全兼容,既能避免连接云端带来的权限、成本问题,也能提供更贴近生产环境的测试体验。
3. 是否仍需使用dev_appserver.py启动,还是可直接用python ...命令启动?
两种方式都可行,取决于你的应用依赖:
- 如果你需要用到App Engine专属服务(比如App Engine任务队列、App Engine版本的Memcache),那还是得用
dev_appserver.py启动,但需要额外设置环境变量让google.cloud.ndb指向Datastore模拟器; - 如果你的应用只是用Datastore+普通Python Web框架,没有依赖App Engine特定服务,直接用
python ...启动更简单——只要先启动Datastore模拟器,设置DATASTORE_EMULATOR_HOST环境变量,google.cloud.ndb会自动识别并连接模拟器,无需额外配置。
内容的提问来源于stack exchange,提问作者Bruno Ripa
相关产品推荐
相关产品推荐

