1

我在 Windows 下安装了 Google Cloud SDK,并且正在 Powershell 中运行命令(以管理员身份运行)。

我运行了以下命令以确保我的所有 Google Cloud SDK 组件都已更新:

gcloud component update

然后我设置数据存储模拟器主机域和项目 ID,如下所示:

set DATASTORE_EMULATOR_HOST=localhost:8081
set DATASTORE_PROJECT_ID=project-id

然后,我使用以下命令运行Google Cloud Datastore Mode Emulator :

gcloud beta emulators datastore start

这是为了创建一个文件local_db.bin,提供对数据的本地访问。当我运行该命令时,我在终端(Powershell,以管理员身份运行)中收到一条消息,表明该文件将在以下位置创建:

C:\Users\myUserName\AppData\Roaming\gcloud\emulators\datastore\WEB-INF\appengine-generated\local_db.bin

该文件没有被创建,并且没有有用的错误信息。我做了以下事情:

  • 检查 gcloud SDK 可用的凭据帐户列表,使用gcloud auth list
  • 确保我使用预期帐户登录,使用gcloud auth login 'accountName'和使用 Google 登录

如何获取有关错误原因的更多信息?我还能尝试什么?

4

1 回答 1

3

local_db.bin没有创建失败。它只是表明数据库是空的。如果您在服务器运行时打开浏览器并导航到http://localhost:8081 ,您可以验证一切是否按预期工作。您应该收到一条ok消息作为响应。

运行数据存储模式模拟器 > 模拟器数据目录文档部分所述,“要清除 local_db.bin 文件的内容,请停止模拟器并手动删除该文件。 ”。这意味着通过这种方式您正在清除数据库的所有内容。

我已经尝试了文档,并且确实local_db.bin在乞求时缺少该文件。但是,在数据库中添加一些数据后,文件就生成了。我设法做到了这一点,方法是创建一个基于Google GitHub 示例的 Python 应用程序。

注意:我还建议在您自己指定的目录而不是默认目录中启动模拟器,这样您就可以确保您拥有该目录的所有权限。例如,要这样做,请按照以下步骤操作:

  1. 在桌面内部创建一个名为Datastore_Emulator
  2. 执行命令:$ gcloud beta emulators datastore start --data-dir=C:\Users\[USERNAME]\Desktop\Datastore_Emulator\
  3. 这将创建一个空目录C:\Users\[USERNAME]\Desktop\Datastore_Emulator\WEB-INF\appengine-generated\
  4. 现在例如创建一个 Python 脚本,将一些数据添加到数据库中,然后local_db.bin将生成文件。

更新

您参考的文档,Windows部分下的命令用于命令提示符。&&不支持在 Power shell 中链接命令,但您需要改为使用;。有关更多信息,请参阅此Stackoverflow 答案

Power Shell 也不支持该命令gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd,因为当您运行它时,您可能会遇到生成set_vars.cmd文件的问题。以后建议使用命令提示符来执行谷歌文档中提到的命令。

于 2019-04-01T09:05:11.743 回答