【发布时间】:2021-09-24 15:22:31
【问题描述】:
我正在开发一项服务,以创建托管 aws lambda 的叠加图像。在设法设置所有要求并实际运行后,我注意到代码运行得非常慢。我设法将问题跟踪到我在将 PIL 图像保存到可以发送到 s3 存储桶的对象时使用的图像的内存缓冲。这是有问题的代码:
def to_s3(img, s3_bucket, key):
logger.info("attempting to upload {} from s3".format(key))
buffer = BytesIO()
ts = time()
img.save(buffer, "PNG")
logger.info("image inmem save time {}".format(time() - ts))
buffer.seek(0)
sent_data = s3_bucket.put_object(Key=key, Body=buffer)
img.save(buffer, "PNG") 函数需要大约 10 秒来写入大约 1.8mb 的图像,这似乎不合理。所以我的问题是:
- 有没有办法提高在 aws lambda 上缓冲图像的速度?
- 是否有其他方法可以将枕头图像发送到 s3 存储桶?
- 有没有办法配置 lambda 函数以更快地管理这些进程(例如增加内存)
感谢任何建议。我住的地方是星期五晚上,我希望周末不用工作。提前致谢。
【问题讨论】:
-
图像的尺寸(以像素宽乘以像素高)是多少?另外,也许尝试 JPEG 而不是 PNG。
标签: python aws-lambda python-imaging-library in-memory