【问题标题】:Prevent AWS Lambda throttling from async invocation防止 AWS Lambda 限制异步调用
【发布时间】:2021-03-23 10:12:36
【问题描述】:

我目前正在建模一个广泛使用 S3 事件作为 lambda 函数源的无服务器应用程序。

我已经为 lambda 配置了死信队列 (DLQ) 以提供一些弹性,但我仍然想知道:有没有其他方法可以减少 lambda 并发并防止限制问题?

理论上,AWS 文档指出,对于异步调用,Lambda 使用内部队列来处理事件和重试,这意味着 Lambda 处理此队列应该没有问题。

在非无服务器应用程序中,我会使用队列和有限数量的队列工作人员来组织它,但是,这对于 AWS 来说并不是那么简单。

除了 DLQ 之外,还有其他方法可以处理或避免节流问题吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    根据我的经验,将 Lambda 直接插入 S3 事件会带来很多问题,包括限制和消息丢失。

    我们(在生产中)通常的做法是将所有 S3 事件推送到 SQS 并从中触发 Lambda 函数(而不是轮询)。这样您就可以更好地控制并行执行、重试和保留。

    您可以使用 SNS 代替 SQS,但我对此没有任何经验。

    【讨论】:

    • 您如何为 SQS 配置 Lambda 触发器?只是使用标准的内置 SQS->Lambda 触发器选项,还是使用 CloudWatch 调度 Lambda 进行轮询?
    • 这是一个普通的 SQS --> Lambda 触发器。没有投票。
    猜你喜欢
    • 2018-01-12
    • 2021-12-30
    • 2022-06-30
    • 2018-01-19
    • 2016-12-31
    • 2016-05-01
    • 2020-10-13
    • 2020-04-24
    • 2016-09-18
    相关资源
    最近更新 更多