在带有文件的现有存储桶中运行aws-lambda函数

问题描述:

我打算将现有图像处理逻辑迁移到AWS lambda。 Lambda缩略图生成器比我以前的代码更好,因此我想使用lamdba重新处理现有存储桶中的所有文件。在带有文件的现有存储桶中运行aws-lambda函数

Lambda似乎只是事件驱动,这意味着我的lamdba函数将只能通过PUT事件调用。由于文件已经在存储桶中,因此不会触发任何事件。

我曾考虑过创建一个新的存储桶并将文件从现有的存储桶移动到一个新存储桶中。这将触发新的PUT事件,但我的存储桶有2MM文件,因此我拒绝将此黑客视为可行的选项。

即使您将要处理S3文件,您也不一定必须使用S3作为事件源。例如,您可以创建一个函数,该函数接受custom event(可能以S3存储桶和图像文件名作为关键字),然后调用AWS开发工具包来检索实际图像数据以进行处理。然后,您可以通过控制台或命令行使用您要处理的存储桶和文件名来调用此功能,而且您将很乐意继续。

+0

那么这正是我想要避免的,我将不得不生成另一个脚本,它将列出并找到我所有的文件,然后调用lambda函数 – rat 2016-06-24 14:01:57

您可以随时使用像Algorithmia服务来创建调整大小的文件的功能,喜欢这里:

http://blog.algorithmia.com/amazon-s3-image-processing-pipeline-python/

希望它能帮助! (这个例子是在Python中,但你可以使用其他语言)