问题标签 [datastore-mode-emulator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
502 浏览

java - App Engine - LocalDatastoreService 加载 - 无法从后备存储加载

我们正在使用 App Engine、Datastore 和 Java,我们一直在尝试将我们的生产 Google Datastore 复制到本地副本,但没有成功。

(我使用的完整迁移脚本在单独的Github 问题中有详细说明)

我们使用以下导出

然后导入看起来像这样的东西

运行脚本会创建一个“local_db.bin”,它看起来是正确的,但是我们将它复制到所需的位置并运行它,我们遇到了以下错误。

com.google.appengine.api.datastore.dev.LocalDatastoreService init INFO:本地数据存储已初始化:类型:高复制存储:\WEB-INF\appengine-generated\local_db.bin com.google.appengine.api.datastore.dev。 LocalDatastoreService 加载信息:无法从后备存储加载,\WEB-INF\appengine-generated\local_db.bin java.lang.ClassNotFoundException:com.google.cloud.datastore.emulator.impl.LocalDatastoreFileStub$FileProfile at java.net。 URLClassLoader.findClass(URLClassLoader.java:382) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424)

如果我们然后保存一条新记录,它会清除 local_db.bin 并创建一个新记录。

任何人都知道这个问题可能在哪里?

更新:

我已经按照@Chris Halcrow 在他的回答中描述的确切过程重新导入数据。数据现在已成功直接导入 App Engine 应该看到的 local_db.bin,但我仍然看到错误。

我们怀疑可能存在权限问题。我们已尝试更改运行 AppEngine 的帐户的一些 IAM 权限。具体来说,我们已尝试将 Project Editor IAM 角色添加到我们用于我们的帐户的帐户中gcloud login,如激活 App Engine 的 DataStore 权限中所述。

我们还查看了以下内容,其中详细说明了使用 GitHub 问题中详述的导出/导入 Powershell 脚本时所需的权限。

https://cloud.google.com/datastore/docs/export-import-entities#permissions

我们相信我们当前的角色应该允许本文描述的所需权限。

0 投票
1 回答
1563 浏览

google-cloud-platform - Google Cloud Datastore Emulator - gcloud beta emulators datastore start 无法创建 local_db.bin

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

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

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

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

这是为了创建一个文件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 登录

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

0 投票
2 回答
243 浏览

python - 如何使用数据存储模拟器检查正在运行的 dev_appserver.py

我为谷歌云应用引擎开发服务器和数据存储模拟器安装了所有环境。我首先运行数据存储模拟器。

gcloud beta 模拟器数据存储启动

并启动 dev-appengine 服务器。

dev_appserver.py app.yaml


如何检查 devappserver 是否与数据存储模拟器一起使用?

数据存储环境为 DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore localhost:8000/datastore 正常工作,但 localhost:8081/datastore 不起作用。

0 投票
0 回答
176 浏览

.net-core - 如何使用 .Net Core 访问 Google Cloud Datastore 模拟器?

我在 .Net Core v3.1 中有这个简单的控制台程序:

我正在使用Google.Cloud.Datastore.V1 v3.0.0库从我的 C# 代码访问数据存储区。如文档所述,我启动了模拟器并使用$(gcloud beta emulators datastore env-init)设置环境变量。当我通过浏览器访问它时,我从模拟器端点 (http://localhost:8081) 收到一条 OK 消息。一切似乎都井然有序。

这是我在 .Net 控制台上得到的堆栈转储:

这是相应的 Datastore 模拟器控制台消息:

我是否在我的代码或模拟器的设置中遗漏了一些明显的东西?

0 投票
1 回答
208 浏览

python - 如何检查数据存储python中的Put操作是否成功

我正在使用 Datastore Emulator 和Datastore-Python-Client-Library在本地运行以下 Python 代码

如果put操作失败(假设 Datastore Emulator 未启动),如何获取错误值和操作失败的消息?

目前,该put操作正在成功执行,并且没有引发错误消息或异常。