gpt4 book ai didi

python - https 连接超时导致的 AWS Lambda 函数持续时间峰值

转载 作者:行者123 更新时间:2023-12-03 14:55:00 26 4
gpt4 key购买 nike

我有一个在 API Gateway 和 Lambda 函数上运行的 Flask API,其中我的 Lambda 函数是 configured to run in my VPC .

我的 Lambda 函数的正常持续时间应该是 3 秒左右,但有时会达到 130 秒或更长,这会导致我的 API 网关返回 504。

Lambda 函数使用 requests 发出 GET 请求图书馆:

url = base_url + endpoint
req = requests.get(url, headers=headers)
response = json.loads(req.content.decode('utf-8'))

CloudWatch 对超时的请求显示以下错误:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='host', port=port): Max retries exceeded with url: /foo/bar (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at foo>: Failed to establish a new connection: [Errno 110] Connection timed out'))

我读过的大多数帖子都提到了在私有(private)子网中运行的配置错误的 Lambda 函数,但我知道这不是我的问题,因为我的函数可以访问互联网。

我的另一个理论是 session 在函数的底层容器上被重用,这导致超时。

提前感谢您的帮助!

最佳答案

由于您已将 Lambda 设置为在 VPC 中运行,因此网络 ACL 很可能不允许流量。
您描述的行为将与被阻止的临时端口一致。这将导致流量最终超时,从而导致 lambda 运行时出现一些随机峰值以及由于看似未知的原因而失败。
我什至不确定从 VPC 流日志中是否会明显看出发生了什么,因为它是被阻塞的临时端口,而不是保留端口,但我必须仔细检查。
AWS 使用 ephemeral ports 1024 - 65535 .我会查看网络 ACL 并仔细检查这些端口是否被允许。

关于python - https 连接超时导致的 AWS Lambda 函数持续时间峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com