如何等待触发 Lambda 函数直到上传特定文件

How to wait to trigger Lambda function until specific files are uploaded

我是 AWS 的新手,正在研究由 S3 触发的 Lambda 函数。 我有两个 json 文件,需要使用这两个数据将队列发送到 SQS。 例如,要同时上传“file_a.json”和“file_b.json”两个文件到S3。

file_a.json
{"data": "123"}

file_b.json
{"data": "456"}

然后,Lambda 将发送类似 ["123", "456"] 的队列消息,该消息是使用两个文件中的数据创建的。

但是,每次上传单个文件时,S3 都会调用 Lambda 函数,这使得很难像我上面写的那样将队列发送到 SQS。我在想,如果S3可以等到两个文件上传后触发Lambda,就可以解决这个问题。 如果有人遇到过类似情况,我想知道如何解决这个问题。谢谢!

S3 通知是响应 S3 中更改的简单事件,因此您不能“让 s3 等待”这两个文件,这取决于您在 lambda 中处理。

您可以存储消息(或您需要的任何数据)- s3、rds、paramstore 等,或者如果您可以从消息中推断出其他文件名,您可以查询 S3 并检查其他文件是否存在并采取行动因此。