google-app-engine - 我可以构建一个与本地主机应用引擎数据存储区对话的 golang 命令行工具吗?

标签 google-app-engine go google-cloud-datastore datastore

我有一个使用这些 API 在 golang 中构建的标准应用引擎 + 数据存储应用程序(不是 flex):

google.golang.org/appengine
google.golang.org/appengine/datastore

我正在尝试在 golang 中编写一个命令行工具来对数据存储执行各种批处理操作,例如迁移数据、运行一致性检查等。 cli 工具使用此 API:

cloud.google.com/go/datastore

我可以获得 cli 工具来与我托管的应用引擎数据存储区通信,但我不知道如何让它与本地主机 dev_appserver.py 数据存储区通信。第一次调用数据存储 datastoreClient.GetAll(ctx, q, nil) 总是挂起。

我阅读了一些 API 代码,看起来我需要将 DATASTORE_EMULATOR_HOST 设置为指向 http://localhost:some_port,但我做不到使用由 dev_appserver.py(端口 8000、8080、53536)启动的 3 个服务器中的任何一个运行。

我走在正确的轨道上吗?我已经阅读了很多帖子和帮助,但它们要么太旧,要么谈论 appengine flex 等等。

谢谢。

最佳答案

您始终可以使用独立的 Datastore 模拟器。

安装它:

gcloud components install cloud-datastore-emulator

启动模拟器(在后台 shell 中执行此操作,命令在前台运行):

gcloud beta emulators datastore start

然后通过运行为您的应用程序设置环境:

$(gcloud beta emulators datastore env-init)

然后运行您的应用,它应该会自动启动并连接到 Datastore 模拟器。

关于google-app-engine - 我可以构建一个与本地主机应用引擎数据存储区对话的 golang 命令行工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48724779/

相关文章:

python - 我可以将模板变量与 Django/App Engine 模板中的整数进行比较吗?

java - 如何测试 Google App Engine 的数据库实现?

Golang Goroutine 内存泄漏

go - 为什么在将接口(interface)变量传递给函数时应使用类型断言

vim - 定义用于构建和加载错误文件的命令

python - Google App Engine - 将 key 存储到ndb KeyProperty中

google-app-engine - Google App Engine 中类似 Twitter 的数据库结构

python - 如何将多个参数传递给 Google App Engine python 中的处理程序?

python - 使用 Airflow 将文件从本地系统上传到 Google Bucket - Python

json - 将数据从 JSON 加载到 Google Cloud Datastore