我可以构建一个与本地主机appengine数据存储区对话的golang命令行工具吗?

时间:2018-02-10 19:34:19

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

我使用这些API在golang中构建了标准的appengine + datastore app(非flex):

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

我试图在golang中编写一个命令行工具来与数据存储区进行各种批处理,例如迁移数据,运行一致性检查等等。 cli工具使用此API:

cloud.google.com/go/datastore

我可以使用cli工具与托管的appengine数据存储区通信,但我无法弄清楚如何让它与localhost dev_appserver.py数据存储区通信。对数据存储区datastoreClient.GetAll(ctx, q, nil)的第一次调用始终挂起。

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

我是否在正确的轨道上?我读了很多帖子&帮助,但他们要么太老了,要么谈论appengine flex等等。

感谢。

1 个答案:

答案 0 :(得分:0)

您始终可以使用独立的数据存储模拟器。

安装它:

gcloud components install cloud-datastore-emulator

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

gcloud beta emulators datastore start

然后运行以下命令为应用程序设置环境:

$(gcloud beta emulators datastore env-init)

然后运行您的应用,它应该自动接收并连接到数据存储模拟器。