Lambda 调用之间有 30 分钟的缓冲区

问题描述 投票:0回答:1

我想多次调用 lambda,但不能与 30 分钟(几分钟)的调用并发,该调用在 2 个 lambda 触发器之间具有事件自定义信息和缓冲区。所以基本上,一次 1 个 lambda 调用。

我的期望:

  • 任何一次性发送/存储所有触发器但在其他 Lambda 调用之前触发带有等待功能的 lambda 的 AWS 服务。
  • 触发器1 -> Lambda -> 30 分钟 -> 触发器2 -> Lambda -> 30 分钟

最初,我认为有SQS,它将通过delaySeconds方法触发Lambda。然而,如果突发消息具有延迟秒属性,它们往往会异步工作并在几秒内触发 lambda。

预期结果:

SQS -> 消息 1 -> Lambda 触发器 -> 30 分钟 -> 消息 2 -> Lambda 触发器 -> 30 分钟

现实:


SQS -> 30mins -> Message1 -> Lambda Trigger

    -> 30mins -> Message2 -> Lambda Trigger (Few second delay only)

然后我想到了一个在 lambda 调用后具有等待时间的步骤函数,但是通过多个并发执行,我会得到相同的结果。

我想知道如何才能达到这样的要求。

amazon-web-services aws-lambda amazon-sqs aws-step-functions
1个回答
0
投票

将另一个 Lambda 函数配置为所有事件的“接收器”。 该 Lambda 将其收到的任何事件写入公共存储(可能是 RDS)。这个lambda函数不需要并发限制

将您想要限制/缓冲的 lambda 配置为由 EventBridge 触发(基于时间的触发 - 每 30 分钟)。该 lambda 函数应该从公共存储中读取所有待处理事件并决定要做什么

© www.soinside.com 2019 - 2024. All rights reserved.