Google app engine 在测试环境中的GAE(ndb)和GCE(gcloud.datastore)之间共享数据存储

Google app engine 在测试环境中的GAE(ndb)和GCE(gcloud.datastore)之间共享数据存储,google-app-engine,google-compute-engine,app-engine-ndb,google-cloud-datastore,Google App Engine,Google Compute Engine,App Engine Ndb,Google Cloud Datastore,我有一个Python appengine应用程序,使用带有ndb API的数据存储,我想做后台工作并将结果存储到数据存储中,以便appengine使用它 我想使用GCE或我的计算机来实现这一点,但除了appengine之外,ndb API不可用,另一种选择似乎是gcloud.datastore API,这是非常不同的 您如何保证您推送的内容(使用gcloud API)与您得到的内容一致(即:匹配ndb实体) 我无法进行单元测试,因为本地服务器不同(gcd与dev_appserver)。是一种变通

我有一个Python appengine应用程序,使用带有ndb API的数据存储,我想做后台工作并将结果存储到数据存储中,以便appengine使用它

我想使用GCE或我的计算机来实现这一点,但除了appengine之外,ndb API不可用,另一种选择似乎是gcloud.datastore API,这是非常不同的

您如何保证您推送的内容(使用gcloud API)与您得到的内容一致(即:匹配ndb实体)

我无法进行单元测试,因为本地服务器不同(gcd与dev_appserver)。是一种变通方法(但在Java中)

我是否应该用appengine中的gcloud.datastore替换ndb代码以确保一致性(但失去ndb的自动缓存等优势

有没有一个明显的解决办法我错过了?如果有人有同样的问题,你是如何处理的


谢谢

如果您真的担心一致性,并且正在使用
ndb
的奇特功能,您可能应该考虑使用,它可以有效地让您通过远程(HTTP)接口运行任意代码。它可能会帮助您完成任务,但请记住,您使用的CPU周期将在GAE中--而不是在GCE中

如果您愿意等待一段时间,我们正在移植ndbAPI以运行,这意味着您在App Engine中运行的相同代码将在App Engine之外工作(在您的本地计算机上或Google Compute Engine内部)


gcloud.datastore
()API的级别要低得多,因此您应该对数据存储中的数据有更多的控制权。它不是为与ndb完全相同而建造的(因此没有像一流公民那样的衍生领域或地理点),但是,
ndb
使用自己的Python逻辑存储这些字段,因此如果您对较低级别的数据表示感到满意,您应该能够安全地编写这些字段。

您是否查看了远程api()?谢谢!那确实很有趣。