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 运行本地问题