【发布时间】:2021-10-15 17:25:12
【问题描述】:
我需要在我的 lambda 中处理一些事件。当 lambda 接收到一个事件时,它需要更新数据库中的数据。但是该事件包括一个date,这是一个未来的日期,我需要实现一个逻辑,以便在未来date 时写入数据库。
例如,如果今天是2021-08-20,当我恢复这个事件时,我需要在 11 天后写入数据库。我正在考虑将这些事件放在 SQS 延迟队列中,但它最多有 15 分钟的延迟时间。而且远远低于我的预期(可能是几周甚至几个月后)。
{
effectDate: "2021-09-01",
value: xxxx
}
另一个解决方案是在我的 lambda 中创建一个 cloudwatch 规则。该规则将触发另一个 lambda 写入 db。此解决方案还有一个限制,即 cloudwatch 规则每个区域最多有 100 条规则。我每天可能会收到数千个事件,因此我不能依赖此解决方案。
使用 dynamodb TTL + 流式传输可能有效,但问题是 dynamodb TTL 在 48 小时内无法正常工作。它每 48 小时运行一次 TTL 调度程序,这意味着我无法安排触发时间少于 48 小时的事件。
有什么办法可以解决这个问题吗?
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sqs