【问题标题】:Processing S3 events in order with Lambda使用 Lambda 按顺序处理 S3 事件
【发布时间】:2021-01-05 05:35:20
【问题描述】:

我正在设置一个 S3 存储桶。在这个 S3 存储桶中,数据将由外部进程写入。

我正在设置一个 AWS Lambda,它会在 S3 中的对象被创建/更新时触发,并且会在 RDS 中处理和存储数据。

我的问题如下:

如果对象在 s3 上写入速度过快,则可能存在多个 Lambda 函数 被同时触发。

那么,在这种情况下,是否有机会不按它们的顺序处理对象 写入 S3 存储桶?

如果上述问题的答案是肯定的,那么使用 Lambda,我必须将有效负载推送到 FIFO SQS,并设置监听器处理payload,最终将数据存入RDS。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    遗憾的是,它们不能保证按顺序排列。来自docs

    事件通知不保证按事件发生的顺序到达。但是,来自创建对象 (PUT) 和删除对象的事件的通知包含一个排序器,可用于确定给定对象键的事件顺序。

    【讨论】:

    • 在这种情况下,对于我的用例,我认为我无法在 Lambda 中进行数据库操作。我必须借助 SQS FIFO 队列,以强制执行事件处理的排序。我必须在必须实现数据库操作的队列上设置一个侦听器。如果我错了,请纠正我。
    • @Joy 是的。 FIFO 保证顺序,但只在同一个消息消息组内。所以你的 msg 生产者必须确保它只将记录推送到组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多