Kre*_*der 2 google-app-engine python-3.x google-cloud-datastore
我正在创建一个应该在 Google App Engine 的 python 3 标准环境上运行的微服务。我想在模拟的 Google 应用引擎环境中运行它。在 python2 标准环境中你可以这样做:
dev_appserver.py [PATH_TO_YOUR_APP]
Run Code Online (Sandbox Code Playgroud)
但这不支持 python,并且我在文档中没有找到等效项,我需要它使用数据存储在本地测试我的应用程序。
小智 5
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
Run Code Online (Sandbox Code Playgroud)
现在将此变量应用到您将运行以下命令的终端dev_appserver.py(这将使数据存储查看器dev_appserver.py正确连接到数据存储模拟器):
$ $(gcloud beta emulators datastore env-init)
Run Code Online (Sandbox Code Playgroud)
现在您需要dev_appserver.py使用以下参数结构将此变量传递给 python venv(这将使您的应用程序的谷歌云库正确连接到数据存储模拟器):
$ 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]
Run Code Online (Sandbox Code Playgroud)
最后,打开第二个终端并使用以下命令运行数据存储模拟器:
$ gcloud beta emulators datastore start
Run Code Online (Sandbox Code Playgroud)
你应该让一切都运行起来。请注意,我假设您的项目已针对 Python 3 环境正确设置(新app.yaml结构和文件的存在requirements.txt)
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |