我们目前正在运行组合的AppEngine / GCE应用程序,到目前为止,我们所有的数据存储访问都保留在AppEngine方面。现在,我们正在探索还允许我们的GCE实例对(共享)数据存储区进行一些查询。首先,我试图弄清楚如何在本地运行事物。到目前为止,我们拥有:
我看过一些文档,但他们(a)仅谈论Python和Java,并且(b)讨论连接到(独立的)开发数据存储区服务器,而不是嵌入到AppEngine的devappserver中的数据存储区(如果两者甚至不同?)。 。
当前,由于多种原因,这在开发环境中是不可能的。Google Cloud Datastore工具( gcd.sh )使用Java开发服务器。但是,在开发go for App Engine时,您使用的是python开发服务器,该服务器具有不同的基础存储。在github页面上有一个跟踪此问题的错误。
您仍然可以在go中开发Google Cloud Datastore应用程序,但是当前的go客户端库中存在许多错误。不幸的是,开发服务器当前不支持go库使用的JSON API(请参阅页面顶部的注释)。
更新 :我想确保proppy的评论被视为答案的一部分。他的建议确实提供了使用API协议版本的方法,该方法可能比上面的go客户端库更稳定。它还可以让您使用该gcd.sh工具在开发服务器中对此进行测试。不过,您将必须自己设计HTTP请求,并且您将无法在应用程序和开发中的Cloud Datastore之间共享数据存储中的数据。但是,这绝对是一个很好的解决方法,可以让您使用Cloud DatastoreAPI,随着它的发展,它比其他解决方法更容易使用。从proppy:
gcd.sh
请注意,您仍然可以将Cloud Datastore Protobuf HTTP API与Go结合使用。protobuf定义在GitHub上可用,您可以使用Go protobuf编译器插件将其编译为Go代码,然后将POST HTTP请求发送到 /datastore/{version}/datasets/{datasetId}/{method}。
/datastore/{version}/datasets/{datasetId}/{method}