【问题标题】:How to perform HTTP POST from within container running in Azure Container Instances?如何在 Azure 容器实例中运行的容器内执行 HTTP POST?
【发布时间】:2022-01-13 00:34:55
【问题描述】:

我有一个快速而肮脏的 REST API,我用 Python/Flask 编写并部署到具有公共 IP 地址的 Azure 容器实例。作为功​​能的一部分,我以通常的方式调用另一个资源:

response = requests.post(api_url, json=query_body, auth=('username', 'password'))

日志显示连接错误,说明名称或服务未知:

ERROR:app:Exception on / [GET] 回溯(最近一次通话最后): _new_conn 中的文件“/usr/local/lib/python3.7/site-packages/urllib3/connection.py”,第 175 行 (self._dns_host, self.port), self.timeout, **extra_kw 文件“/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py”,第 72 行,在 create_connection 对于 socket.getaddrinfo(host, port, family, socket.SOCK_STREAM) 中的 res: 文件“/usr/local/lib/python3.7/socket.py”,第 748 行,在 getaddrinfo 对于 _socket.getaddrinfo 中的 res(主机、端口、家庭、类型、原型、标志): socket.gaierror: [Errno -2] 名称或服务未知

服务确实存在。我需要以任何方式配置容器吗?为 HTTP 请求打开端口?

【问题讨论】:

    标签: azure rest flask containers azure-container-instances


    【解决方案1】:

    您是否为这些服务配置了 NSG?

    似乎您正在调用 api url 的服务,无法连接到互联网(我假设您的其他服务托管在互联网上并且您通过公共 IP 调用它)。

    正如错误所说的“gaierror”,当由于无法访问互联网或 DNS 服务器配置错误而无法将 URL 解析为 IP 时,就会发生这种情况。

    如果是这种情况,您可以允许对 NSG 中的调用服务进行 Internet 访问,或者检查为什么该服务无法将其连接到 Internet(DNS 配置错误?)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多