问题标签 [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.
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
我们相信我们当前的角色应该允许本文描述的所需权限。
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 登录
如何获取有关错误原因的更多信息?我还能尝试什么?
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 不起作用。
.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 模拟器控制台消息:
我是否在我的代码或模拟器的设置中遗漏了一些明显的东西?
python - 如何检查数据存储python中的Put操作是否成功
我正在使用 Datastore Emulator 和Datastore-Python-Client-Library在本地运行以下 Python 代码
如果put
操作失败(假设 Datastore Emulator 未启动),如何获取错误值和操作失败的消息?
目前,该put
操作正在成功执行,并且没有引发错误消息或异常。