我正在创建一个应在Google App Engine的python 3标准环境下运行的微服务。我想在模拟的Google App Engine环境中运行它。在python2标准环境中,您可以执行以下操作:
dev_appserver.py [PATH_TO_YOUR_APP]
但是python不支持,并且我在文档中没有找到它和它等效的东西,我需要它来使用数据存储在本地测试我的应用。
答案 0 :(得分:2)
dev_appserver.py
在GAE Python 3运行时中仍然可用,但是不建议这样做,因为它与他们现在想要的惯用沙箱不符。为了使其正常工作,您需要采取一些额外的步骤。
首先,在终端cloud beta emulators datastore env-init
中运行以获取项目的数据存储模拟器环境变量。如果所有内容均为默认设置,则它们应如下所示:
DATASTORE_DATASET=your-project-name
DATASTORE_EMULATOR_HOST=localhost:8081
DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore
DATASTORE_HOST=http://localhost:8081
DATASTORE_PROJECT_ID=your-project-id
现在将此变量应用于终端,您将使用以下命令运行dev_appserver.py
(这将使dev_appserver.py
中的数据存储查看器正确连接到数据存储模拟器):
$ $(gcloud beta emulators datastore env-init)
现在,您需要使用以下参数结构将此变量传递到dev_appserver.py
内的python venv中(这将使您应用的Google云库正确连接到数据存储模拟器):
$ dev_appserver.py \
--application=your-project-name \
--env_var DATASTORE_DATASET=your-project-name \
--env_var DATASTORE_EMULATOR_HOST=localhost:8081 \
--env_var DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore \
--env_var DATASTORE_HOST=http://localhost:8081 \
--env_var DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore \
[PATH_TO_YOUR_APP]
最后,打开第二个终端并使用以下命令运行数据存储模拟器:
$ gcloud beta emulators datastore start
您应该运行所有内容。请注意,我假设您的项目已针对Python 3环境正确设置(新的app.yaml
结构和requirements.txt
文件的存在)