【问题标题】:AWS Lambda image corruptedAWS Lambda 映像已损坏
【发布时间】:2016-06-26 08:54:31
【问题描述】:

我在使用 AWS Lambda 时遇到问题,我调整大小的图像每隔几次上传就会损坏。我写了一个脚本,它从 S3 中提取并将其调整为 3 种大小到另一个存储桶中,主要是文件流。代码如下:

https://github.com/handonam/AWS-Resizer/blob/493ff10c317e7150d1ac040f54065083963a9c67/createThumbnails.js

您可以看到更大的 512px 放大文件(调整后的)以及原始文件 (200px)

还有一个调整为 120px

我的 lambda 消耗在大多数情况下看起来都很好。它设置在具有 768mb 内存和 20 秒超时的同一区域上。对于小图像(如 500 像素宽),脚本使用 90/768mb 执行大约 2 秒,在更大的图像(如 2000 像素宽)上执行 14 秒 @ 648/768mb。但即使是小图像,调整大小也会对我不利。如果我放弃文件流而只写入缓冲区(就像aws example),那么图像处理将以缓冲区自助结束,而 lambda 将占用太多资源。

感谢任何指导!

【问题讨论】:

  • 虽然我承认我不精通您在这里所做的事情,但我确实注意到您有时会调用 async.waterfall[ .. ... .. function transform(next) 。 ... ... ... .. .. 看到整个部分的颜色突出显示,我不太确定这段代码是否按您的预期工作。
  • @Uvar 你能解释一下颜色突出显示是什么意思吗?

标签: node.js amazon-web-services image-processing amazon-s3 aws-lambda


【解决方案1】:

您的代码不是线程安全的可能性有多大?即,脚本的一些并发运行发生冲突?您显示的损坏文件看起来可能尺寸不正确。

【讨论】:

  • 每张图片我只运行一次脚本,每次上传一张图片。
  • 这可能是真的,但我还是会担心。 fs.writeFile('/tmp/object.jp2', response.Body, function(err) { 填充将存在于调用中,如果一个 lambda 被调用两次,它将损坏文件。
猜你喜欢
  • 2021-09-26
  • 2022-08-17
  • 1970-01-01
  • 2015-11-14
  • 2019-05-16
  • 2022-08-10
  • 1970-01-01
  • 2017-06-23
  • 1970-01-01
相关资源
最近更新 更多