是否可以使用远程数据存储区运行dev_appserver.py?

时间:2014-03-06 03:29:06

标签: python google-app-engine

我正在使用Google的AppEngine开发一个网络应用程序。我想使用dev_appserver.py在本地迭代代码。但是如果没有我部署的应用程序的数据存储区中的所有数据,那么很难做到这一点。我目前运行一个脚本来填充本地数据存储区,但需要大约15-20分钟才能填充。

dev_appserver.py是否可以连接到我已部署应用的数据存储区?

2 个答案:

答案 0 :(得分:8)

是的,这是可能的。

首先,打开app.yaml中的remote-api,然后在生产环境中部署该应用程序。

builtins:
- remote_api: on

然后,例如在appengine_config.py中:

import os
from google.appengine.ext.remote_api import remote_api_stub
from google.appengine.datastore.entity_pb import Reference

remote_api_stub.ConfigureRemoteApi(app_id=None, path='/_ah/remote_api',
                                   auth_func=lambda: ('email', 'password'),
                                   servername='appid.appspot.com')

if os.environ['SERVER_SOFTWARE'].startswith('Development'):
  Reference.app = lambda *args: os.environ['APPLICATION_ID'].replace('dev~', 's~')

如果您有旧的应用程序ID,则可能需要编辑.replace(' dev' ...)部分。

答案 1 :(得分:1)

是的,可以使用Google Cloud Datastore。您需要在应用程序中使用一个标志来控制在任何特定时间使用的数据存储,以及另一组数据模型类作为Cloud Datastore实例的接口。