Google Cloud Datastore EmulatoR语言 gcloud beta emulators Data



我在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 云数据存储模式模拟器:

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 登录
  • 登录

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

创建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]DesktopDatastore_Emulator
  3. 这将创建一个空目录C:Users[USERNAME]DesktopDatastore_EmulatorWEB-INFappengine-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文件的问题。将来建议使用命令提示符来执行Google文档中提到的命令。

最新更新