1

我有这样的基础设施:S3-> SQS-> Lambda。当文件被拖放到 S3 时,它会将事件放入 SQS 队列,然后由 lambda 函数使用。

Lambda 是用 .net 核心编写的。在 lambda handlers 参数中,我SQSEvent在它的主体中收到一个和,它S3Event被序列化为 Json。

类结构大致如下。它们直接来自 AWS .net SDK。

class SQSEvent
{
    public List<SQSMessage> Records;
    ...
}

class SQSMessage
{
    public string Body; // json serialized S3Event is put into here
    ...
}

class S3Event
{
    public List<S3EventNotification> Records;
    ...
}

我很好奇的部分是,两者SQSEvent都有S3Event记录列表。在我的实验中,我总是在这些列表中收到一个项目。是否知道在哪些情况下这些Records列表中的任何一个将包含多个项目?我没有找到说明这种行为的文件。

4

1 回答 1

2

如果在很短的时间内生成了许多记录,例如,如果同时上传了许多 S3 文件,那么 Amazon 可能会在单个事件中发送记录列表。

于 2019-12-26T23:42:23.167 回答