为什么错误地检测到数据存储模拟器的env变量?

时间:2017-01-18 08:11:45

标签: google-app-engine google-cloud-datastore gcloud

我运行数据存储模拟器,我得到以下显然正确的控制台日志

> gcloud beta emulators datastore start --project=myproj --data-dir "./gcloud_datastore"

[datastore] If you are using a library that supports the DATASTORE_EMULATOR_HOST environment variable, run:
[datastore]
[datastore]   export DATASTORE_EMULATOR_HOST=localhost:8232
[datastore]
[datastore] Dev App Server is now running.

在另一个cmd窗口中,当模拟器运行时,我运行以下命令,或者我先停止模拟器。无论哪种方式,它都会产生不同的端口和不同的项目:

> gcloud beta emulators datastore env-init

set DATASTORE_DATASET=anotherproj
set DATASTORE_EMULATOR_HOST=localhost:8297
set DATASTORE_EMULATOR_HOST_PATH=localhost:8297/datastore
set DATASTORE_HOST=http://localhost:8297
set DATASTORE_PROJECT_ID=anotherproj

出了什么问题?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

运行env-init命令时使用相同的数据目录。例如:

gcloud beta emulators datastore env-init --data-dir=./gcloud_datastore 

使用start命令启动仿真器时,它会在指定的数据目录中创建/更新文件env.yaml。此文件包含环境信息(例如端口,项目名称),我相信env-init命令使用该信息。