如何在app引擎中获取兄弟模块的url

时间:2016-05-20 02:10:01

标签: python google-app-engine webapp2 microservices

我有一个App Engine应用程序,它有多个独立的模块。

deployed时,这些模块在http://<module>.<app_id>.appspot.com可用,当使用dev_appserver.py mod1.yaml mod2.yaml --port-9000进行本地测试时,mod1会在http://localhost:9000和{{1}中运行在mod2中运行。所有模块都在同一个项目上运行。到目前为止一切都很好。

我们假设http://localhost:9001需要与mod1对话。有没有办法动态地在mod2内获取mod2的网址?

mod1

2 个答案:

答案 0 :(得分:1)

可以使用modules.get_hostname() API构建跨GAE和开发服务器上运行的跨模块URL。您可以在此答案中找到一个示例:https://stackoverflow.com/a/31145647/4495081

答案 1 :(得分:0)

只要我知道这是不可能的。由于您有2项服务,未来可能会有更多服务,因此您似乎使用的是分布式微服务架构,因此您需要为其注册服务以了解其他服务的位置。为此,我建议etcd它非常容易使用。 一个好人也为它写了python-client