【问题标题】:How to get url for sibling modules in app engine如何在应用引擎中获取兄弟模块的 url
【发布时间】:2016-09-17 03:20:50
【问题描述】:

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

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

假设mod1 需要与mod2 交谈。有没有办法可以动态地在mod1 中获取mod2 的网址?

# In mod1's code
import google.some.magic
url_for_mod2 = magic.get_url_for_module('mod2') # http://localhost:9001 or http://mod2.id.appspot.com

【问题讨论】:

    标签: python google-app-engine webapp2 microservices


    【解决方案1】:

    可以使用modules.get_hostname() API 构建适用于 GAE 和开发服务器的跨模块 URL。你可以在这个答案中找到一个例子:https://stackoverflow.com/a/31145647/4495081

    【讨论】:

      【解决方案2】:

      只要我知道这是不可能的。由于您有 2 个服务,并且将来可能会更多,因此您似乎正在使用分布式微服务架构,因此您需要注册您的服务以让他们知道另一个服务在哪里。为此我推荐etcd,它真的很容易使用。 一位好人也为它写了python-client

      【讨论】:

        猜你喜欢
        • 2019-12-13
        • 1970-01-01
        • 2020-03-20
        • 2020-06-13
        • 2017-09-25
        • 2022-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多