我正在尝试使用docker创建数据存储模拟器, 并按照这里的说明 https://cloud.google.com/datastore/docs/tools/datastore-emulator
我也使用了cloud-sdk https://hub.docker.com/r/google/cloud-sdk/
我能够创建模拟器并使用它进行身份验证,但是当我尝试访问它时throght localhost:8000 / datastore 它给了我“未找到”的回复,
我如何访问数据存储区数据?
我用来创建它的命令是:
docker run -p 8000:8000 google/cloud-sdk gcloud beta emulators datastore start --project=pname --host-port localhost:8000 --no-store-on-disk
答案 0 :(得分:1)
数据存储模拟器仅支持HTTP/2
。这意味着您应该使用支持客户端访问模拟器中的数据,即google-cloud-python,google-cloud-java等。此官方库支持使用环境变量DATASTORE_EMULATOR_HOST
和DATASTORE_PROJECT_ID
设置模拟器主机
样本设置变量
export DATASTORE_EMULATOR_HOST=localhost:8000
export DATASTORE_PROJECT_ID=project-id-in-google
这应该允许客户端访问模拟器,当完成上面的变量取消设置以访问实时数据存储时使用:
unset DATASTORE_EMULATOR_HOST
unset DATASTORE_PROJECT_ID
备注:强>
可以从正在运行的docker容器中检索DATASTORE_EMULATOR_HOST
,如下所示
[datastore] API endpoint: http://localhost:8000
[datastore] If you are using a library that supports the DATASTORE_EMULATOR_HOST environment variable, run:
[datastore]
[datastore] export DATASTORE_EMULATOR_HOST=localhost:8000
[datastore]
[datastore] Dev App Server is now running.
DATASTORE_PROJECT_ID
应与在线项目匹配tid位
检查模拟器状态GET
请求http://localhost:8000
,如果模拟器正在运行,它应返回ok
重置模拟器以按POST
请求http://localhost:8000/reset
删除所有数据