AWS cron 作业将 S3 存储桶中的图像转换为 WebP

AWS cron job converting images in S3 bucket to WebP

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

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

我能否使用 BASH 脚本执行此操作,或者我是否仅限于 Lambda 函数支持的语言(.NET、Go、Java、Node.js、Python, 或 Ruby)?

我是否必须在 AWS 中安装一些东西才能进行 WebP 处理(我该怎么做)?

此外,Lambda 函数最多只能 运行 15 分钟。一旦一切设置完毕,这可能不会成为问题,但是存储桶中已有图像(很容易超过 1000 张)的初始转换可能需要 15 分钟以上的时间。转换已有图像的好方法是什么?

What's a good way to convert the images that are already there?

对于已经存在的图像,您可以使用 AWS batch with spot instances cost-effective.

Can I do this using a BASH script? you can, but for that you need to use custom runtime https://aws.amazon.com/about-aws/whats-new/2018/11/aws-lambda-now-supports-custom-runtimes-and-layers/ or different approach will be to upload your bash script as a zip inside lambda and ask lambda to execute it.

现在的问题是什么时候应该使用 lambda 运行? 如果客户端想要 运行 定期去 event bridge + cron + lambda architecture 否则去 s3 上传触发器调用 lambda https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html