如何在本地模拟 python3 应用程序的 App Engine 环境
How to simulate app engine environment for a python3 application locally
我正在创建一个应该 运行 在 python 3 标准环境 Google App Engine 上的微服务。我想在模拟的 Google 应用引擎环境中 运行 它。在 python2 标准环境中,您可以执行以下操作:
dev_appserver.py [PATH_TO_YOUR_APP]
但是 python 不支持,我在文档中没有找到等效项,我需要它来使用数据存储在本地测试我的应用程序。
dev_appserver.py
在 GAE Python 3 运行-time 中仍然可用,但不推荐这样做,因为它违背了他们现在正在使用的惯用沙箱。为使其正常工作,需要执行一些您习惯的额外步骤。
首先,在终端 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
你应该拥有一切 运行ning。请注意,我假设您的项目已针对 Python 3 环境正确设置(新的 app.yaml
结构和 requirements.txt
文件的存在)
我正在创建一个应该 运行 在 python 3 标准环境 Google App Engine 上的微服务。我想在模拟的 Google 应用引擎环境中 运行 它。在 python2 标准环境中,您可以执行以下操作:
dev_appserver.py [PATH_TO_YOUR_APP]
但是 python 不支持,我在文档中没有找到等效项,我需要它来使用数据存储在本地测试我的应用程序。
dev_appserver.py
在 GAE Python 3 运行-time 中仍然可用,但不推荐这样做,因为它违背了他们现在正在使用的惯用沙箱。为使其正常工作,需要执行一些您习惯的额外步骤。
首先,在终端 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
你应该拥有一切 运行ning。请注意,我假设您的项目已针对 Python 3 环境正确设置(新的 app.yaml
结构和 requirements.txt
文件的存在)