【问题标题】:Google Cloud Datastore Emulator - gcloud beta emulators datastore start fails to create local_db.binGoogle Cloud Datastore Emulator - gcloud beta emulators datastore start 无法创建 local_db.bin
【发布时间】:2019-08-22 06:19:01
【问题描述】:

我在 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 auth list 检查了 gcloud SDK 可用的凭据帐户列表
  • 确保我使用预期帐户登录,使用 gcloud auth login 'accountName' 并使用 Google 登录

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

【问题讨论】:

    标签: google-cloud-platform google-cloud-datastore gcloud google-cloud-sdk datastore-mode-emulator


    【解决方案1】:

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

    Running the Datastore mode Emulator > Emulator data directories 文档部分所述,“要清除 local_db.bin 文件的内容,请停止模拟器并手动删除该文件。”。这意味着您正在清除数据库的所有内容。

    我已经尝试了文档,并且确实在乞求时缺少文件local_db.bin。但是,在数据库中添加一些数据后,文件就生成了。我设法做到了这一点,方法是创建一个基于 Google GitHub samples 的 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 answer

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

    【讨论】:

      猜你喜欢
      • 2019-01-12
      • 2019-02-17
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2021-10-31
      相关资源
      最近更新 更多