微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 s3 的简单 list_objects 在 AWS Lambda 中的连接池初始化非常慢python|boto3

如何解决来自 s3 的简单 list_objects 在 AWS Lambda 中的连接池初始化非常慢python|boto3

也许有人可以将我指向一个实际显示解决方案的帖子,但我似乎找不到,所以我再次发布。

我在 AWS Lambda 中运行了一些基于 Python 的程序来列出 S3 中的对象(除其他外)。看起来在 urllib3 连接池中创建到 s3 位置的 HTTP 连接需要很长时间(30 秒以上)。

我看过很多鼓励增加 Lambda 函数内存的帖子。 任何人都可以建议为什么这是正确的方法(例如,什么会占用所有内存或 cpu 周期?)。

代码如下:

import boto3
import functools

s3 = _s3_client()
result = s3.list_objects_v2(
  Bucket=MY_BUCKET,MaxKeys=1000,)

# cache the boto client so we don't reinstantiate everytime
@functools.lru_cache()
def _s3_client(**kwargs):
    return boto3.client("s3",**kwargs)

更重要的是日志(注意创建 https 连接所需的 32 秒):

{"timestamp": "2021-03-19T01:00:48.619532+0000","levelname": "DEBUG","name": "urllib3.connectionpool","message": "Starting new HTTPS connection (1): my-bucket.s3.us-east-1.amazonaws.com:443","aws_request_id": "53e46a72-8d20-49e8-91ac-554614a0573f"}
{"timestamp": "2021-03-19T01:01:20.761505+0000","message": "https://my bucket.s3.us-east-1.amazonaws.com:443 \"GET /?list-type=2&max-keys=1000&encoding-type=url HTTP/1.1\" 200 None","aws_request_id": "53e46a72-8d20-49e8-91ac-554614a0573f"}
{"timestamp": "2021-03-19T01:01:27.599037+0000","name": "botocore.parsers","message": "Response headers: {'x-amz-id-2': 'A7hCoKEZStLZ++dYMrKo6RAkrelFRKLt04KgtgzdvYD1KkZgLYNKu7HU54rN2oxwWYaMyzIWdlg=','x-amz-request-id': 'ED1V3W53HC7VPZAP','Date': 'Fri,19 Mar 2021 01:01:10 GMT','x-amz-bucket-region': 'us-east-1','Content-Type': 'application/xml','transfer-encoding': 'chunked','Server': 'AmazonS3'}","aws_request_id": "53e46a72-8d20-49e8-91ac-554614a0573f"}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。