Python 请求可以在本地发布,但不能在 AWS ECS 中发布

Posted

技术标签:

【中文标题】Python 请求可以在本地发布,但不能在 AWS ECS 中发布【英文标题】:Python Requests can make post locally but not in AWS ECS 【发布时间】:2020-09-30 07:10:14 【问题描述】:

我目前正在开展一个项目,我正在尝试通过发布请求访问 3rd 方 API。为此,我正在使用 Requests 库。当我在本地运行代码时,代码执行得很好。当我在 AWS ECS FARGATE 中运行代码时,出现以下错误:

url 超出最大重试次数:(由 SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"引起)

很明显,这与 ssl 证书有关,但是什么?我的代码只是一个基本的

requests.post(url, cookies, headers, data, timeout, verify)

我已尝试将验证参数设置为 false。

我尝试使用 pip install requests[security] 安装带有请求的额外安全组件。这导致了上面显示的更长更详细的错误,但它的核心仍然是相同的错误。

我尝试过使用 requests.session 而不是基本请求。都产生相同的结果。

我还确保安全出站协议是开放的。我只是很困惑为什么它在本地而不是 ecs 工作。

非常感谢任何输入!谢谢!

【问题讨论】:

AWS ecs 默认禁用端口 443。你启用了吗? 是的,我们做到了!但我找到了解决方案。它最终成为未列入白名单的 api 端的重定向 【参考方案1】:

这最终成为我们的防火墙白名单和第三方 API 在幕后使用重定向的问题。重定向导致我们的连接被切断,因为它要去一个未列入白名单的域。

【讨论】:

以上是关于Python 请求可以在本地发布,但不能在 AWS ECS 中发布的主要内容,如果未能解决你的问题,请参考以下文章

validate_email python库在本地机器上工作,但不在aws弹性bean上

AWS Beanstalk Django / Python 运行本地问题

Webpack 在本地工作,但不在 AWS 服务器上

可以访问Oracle的AWS python Lambda脚本:驱动程序太大而不能达到50MB

为啥我不能远程登录我的 aws 实例?

React 应用程序在本地加载图像,但 AWS Amplify 不会加载这些图像