在单个 S3 对象上传事件上触发多个 lambda

Alw*_*nny 5 amazon-s3 amazon-web-services aws-lambda

我在我的存储桶上设置了一个 S3 事件,该事件触发 lambda 来调整图像大小。因此,每次将文件放入存储桶 S3 时,都会调用 lambda 函数,包含所创建文件信息的事件将被发送到 lambda 函数。

以下是如何触发的示例:

在此输入图像描述

下一个:

在此输入图像描述

下面是 lambda nodejs 执行此操作的示例代码:

exports.handler = (event, context, callback) => {

  var lastCreatedFile = event.Records[0].s3.object.key;
  console.log(lastCreatedFile);

};
Run Code Online (Sandbox Code Playgroud)

但我的要求是在一个 S3 事件(上传对象)上触发 2 个 lambda - 一个图像调整大小,另一个将图像元数据存储回 RDS。

但目前S3事件不支持多个lambda触发器。我看到了一个使用 SNS 然后发送到多个 lambda 的实现,但我不想使用该实现,因为在这种情况下我需要更改当前的架构。

因此,请让我知道或展示一些其他实现或建议。

fed*_*nev 6

最近发布的Amazon S3 事件通知与 Amazon EventBridge允许您使用触发多个 lambda 关闭存储桶事件,并具有重播和存档等功能。

或者,您可以坚持使用 S3 通知并链接 lambda 调用S3 -> lambda1 -> lambda2:恶心。或者使用阶跃函数S3 -> lambda -> Sfn -> lambda1 + lambda2。双讨厌。[编辑]:三重恶心 -S3 -> Lambda1 -> S3 -> Lambda2