使用泊坞窗

时间:2017-10-24 21:23:00

标签: google-app-engine docker google-cloud-datastore containers

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

数据存储模拟器仅支持HTTP/2。这意味着您应该使用支持客户端访问模拟器中的数据,即google-cloud-python,google-cloud-java等。此官方库支持使用环境变量DATASTORE_EMULATOR_HOSTDATASTORE_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删除所有数据