动态解析get请求的pods地址

2024-10-02 20:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我让我的应用程序在docker compose中工作,然后使用kompose转换它。但是,当我想从后端获取数据时,我遇到了一个问题。由于url的原因,我无法再使用以前的方法。你知道吗

@app.route("/")
def home():
    url = "http://backend:5000/"
    try:
        res = requests.get(url)
    except Exception:
        return "Error with {}".format(url)
    dictFromServer = res.json()
    return dictFromServer['message']

让url工作的最佳方法是什么?你知道吗


Tags: 方法composedockerapp应用程序httpurlhome
1条回答
网友
1楼 · 发布于 2024-10-02 20:39:48

传统的方法是使用注入容器运行时的环境变量。有合理的违约是可以的,这样当地的发展可以像以前一样继续:

 import os

 def home():
     be_host = os.getenv('BACKEND_SERVICE_HOST', 'backend')
     be_port = os.getenv('BACKEND_SERVICE_PORT', '5000')
     url = 'http://{}:{}'.format(be_host, be_port)

这些环境变量及其值基于当前命名空间中作为运行Pod的Service对象的名称。在上面的例子中,这意味着一个Service被命名为backend,并且该服务在5000上公开了一个ports:(指向Pod本身上公开的containerPorts:)。你知道吗

当然,您可以声明自己的环境变量,如果这对您的团队来说太神奇的话。你知道吗

相关问题 更多 >