【问题标题】:I keep getting '[Errno 101] Connection timed out' when running python script on Airflow在 Airflow 上运行 python 脚本时,我不断收到“[Errno 101] Connection timed out”
【发布时间】:2021-11-24 13:57:28
【问题描述】:

当我尝试使用 Google Cloud Composer 提供的 Airflow 上的 Python 调用 API 时,我不断收到“[Errno 101] Connection timed out”。

这是我的代码:

r1 = requests.post(
    url1,
    params=request1_params,
    headers=request1_headers
)

a_token = r1.json().get('access_token')

当我尝试触发 DAG 时的响应是这样的:

[2021-10-04 01:21:33,056] {taskinstance.py:1152} 错误 - HTTPSConnectionPool(host='xxx.com', port=443):最大重试次数超出了 url:/sf/xxx/ token?grant_type=password&username=???%40???&password=???%2???&client_id=????&client_secret=???? (由 NewConnectionError 引起(': 无法建立新连接:[Errno 110] Connection timed out',)) 回溯(最近一次通话最后): _new_conn 中的文件“/opt/python3.6/lib/python3.6/site-packages/urllib3/connection.py”,第 170 行 (self._dns_host, self.port), self.timeout, **extra_kw 文件“/opt/python3.6/lib/python3.6/site-packages/urllib3/util/connection.py”,第 96 行,在 create_connection 提出错误 文件“/opt/python3.6/lib/python3.6/site-packages/urllib3/util/connection.py”,第 86 行,在 create_connection sock.connect(sa) TimeoutError: [Errno 110] 连接超时

我看过一些文章,你需要在发送请求时包含代理,但是我应该使用什么代理?

感谢任何帮助!

编辑: 我发现问题出在我正在使用的气流上。它说专用网络需要配置 NAT。因此,在安装了一些库并设置了 NAT 之后,它现在可以向 API 发送请求了。

感谢大家的帮助。

【问题讨论】:

  • 如果我在你的位置,我会尝试连接到 Airflow/Composer 之外的目标服务器,并验证底层请求是否正常工作。如果不是,则不是气流问题。
  • 我确实尝试调用该函数并且它有效。所以,唯一可能的原因是气流。虽然,我没有在本地机器上尝试过,但是从互联网上阅读了一些实现,它应该可以工作。
  • 您到底想达到什么目标?您是从 GCP UI 还是从本地计算机运行它?你是如何认证自己的?这是你的全部代码?请使用以下更改再次运行 dag,并使用 this snippet 发布输出

标签: python google-cloud-platform python-requests airflow google-cloud-composer


【解决方案1】:

这很可能与代理无关,而是格式错误的请求。这看起来像是 OAuth 流程的一部分,但有什么不使用运算符的特殊原因吗?例如。 https://airflow.apache.org/docs/apache-airflow-providers-http/stable/operators.html#simplehttpoperator ,然后您可以通过 extra_options 设置超时,因为它们来自 requests lib https://github.com/apache/airflow/blob/main/airflow/providers/http/operators/http.py#L58

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2020-09-07
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多