本地运行的GAE多模块多语言应用程序

4 投票
1 回答
512 浏览
提问于 2025-04-20 16:08

我有一个多模块的GAE应用,结构如下:

  • 一个Python27模块,这是一个普通的网页应用。这个Python应用使用了Datastore API,就是一个常规的、没什么特别的网页应用。
  • 一个Java模块(另一个网页应用),它会连接到Datastore的调用(由Python网页应用发出的调用),并显示关于这些调用的汇总数据。

我已经成功地把这个应用部署到GAE云上,一切运行得很好。

不过,当我想在本地运行这个应用时,就出现了一些问题。

Python模块必须通过Python SDK启动,而Java模块则需要通过Java SDK启动。但是,这两个SDK似乎不共享同一个datastore(我觉得这两个SDK在磁盘上写入/读取的是不同的文件)。

我还发现这两个SDK在开发控制台的实现上也有所不同。Python SDK的开发控制台看起来更干净、更现代(类似于新的console.developers.google.com控制台),而Java SDK则是旧版的开发控制台(类似于旧的appspot.com控制台)。

所以我想问,有没有办法同时启动两个以上的模块(不同语言:Python和Java),并让它们共享同样的Datastore文件?这样就太好了,因为这将允许Java模块连接到Python的Datastore调用,而目前似乎是做不到的。

1 个回答

2

你可以尝试使用“appscale”,这是一个开源项目,如果你设置了Virtual Box并在上面加载了镜像,它可能会对你有帮助。你可以去看看community.appscale.com。

还有另一种方法(不过这有点复杂),步骤如下:

1- 把你的Python项目单独部署在localhost:9000上。

2- 把你的Java项目单独部署在localhost:8000上。

3- 修改你的Python和Java代码,让它们在开发环境下能正确连接到对应的localhost(Java连接localhost:9000,Python连接localhost:8000)。

4- 尝试像@tx802建议的那样,指定一个local_db的路径。

我不确定这两种方法是否有效,但我觉得至少可以试试看。

撰写回答