AWS cron作业将S3 bucket中的图像转换为WebP



我有一个客户希望将其网站的图像文件(存储在S3存储桶中(转换为WebP。由于他们的客户经常上传图像(不使用WebP(,他们想要一些定期运行的脚本,在存储桶中搜索未转换的图像文件,并将其转换为WebP。该脚本将检测是否存在文件的现有WebP版本,如果没有,则创建一个;然后,如果每个图像的WebP版本可用,一些服务器端代码将优先加载该版本。

根据我的研究,AWS计划的/cron作业似乎是通过EventBridge使用Lambda函数完成的。

我可以使用BASH脚本吗?还是仅限于Lambda函数支持的语言(.NET、Go、Java、Node.js、Python或Ruby(?

我必须在AWS中安装一些东西才能进行WebP处理吗(以及我如何做到这一点(?

此外,Lambda功能最多只能运行15分钟。一旦一切都设置好了,这可能不会成为问题,但已经在存储桶中的图像的初始转换(轻松超过1000张(可能需要15分钟以上。转换已经存在的图像的好方法是什么?

转换现有图像的好方法是什么?

对于已经存在的图像,您可以使用带有spot实例的AWS批处理,以提高成本效益。

我可以使用BASH脚本吗?可以,但为此需要使用自定义运行时https://aws.amazon.com/about-aws/whats-new/2018/11/aws-lambda-now-supports-custom-runtimes-and-layers/或者不同的方法是将bash脚本作为zip上传到lambda内部,并要求lambda执行它。https://stackoverflow.com/a/38337076/13126651

现在的问题是lambda应该何时运行?如果客户端想要周期性运行,请使用event bridge + cron + lambda architecture,否则请使用s3上载触发器来调用lambdahttps://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html