我在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应用程序。
注意:我还建议在您自己的指定目录中启动模拟器,而不是默认目录,这样您就可以确保您拥有该目录的所有权限。 例如,要这样做,请按照以下步骤操作:
- 在桌面中创建一个名为
Datastore_Emulator
的目录 - 执行命令:
$ gcloud beta emulators datastore start --data-dir=C:Users[USERNAME]DesktopDatastore_Emulator
- 这将创建一个空目录
C:Users[USERNAME]DesktopDatastore_EmulatorWEB-INFappengine-generated
- 现在创建一个 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文档中提到的命令。