如何延迟阅读SNS消息?

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

我目前有一个订阅 SNS 队列的 lambda 函数。

它正在按应有的方式工作,并且在将消息发布到此队列后不久,事件就会运行。

当我收到延迟 lambda 执行的要求时,问题就出现了。即把它推到未来任意的时间。

据我所知,SNS 无法开箱即用。我查看了使用 eventbridge/cloudwatch 来安排它,但似乎我无法安排每条消息的事件,并且需要有预定义的延迟(最多 100 个?),这对我来说并不适用。

所以我想问题是: 是否有任何相对省力的解决方案来延迟 SNS 上的消息读取(或以某种方式推迟发送)?

我考虑过投票,但这听起来是一个相当费力且昂贵的解决方案。

amazon-web-services aws-lambda amazon-cloudwatch amazon-sns aws-event-bridge
1个回答
0
投票

EventBridge Scheduler(于 2022 年 11 月推出)支持 One Time Schedules,这可能正是您想要的。您可以将 CreateSchedule API 调用与 ScheduleExpression 的 at(yyyy-mm-ddThh:mm:ss) 语法结合使用。请注意,这与 CloudWatch Events 中首次支持且不支持一次性计划的计划规则功能不同。

或者,您可以将逻辑放入Step Functions状态机中,并使用带有TimestampPath的Wait State来动态设置等待时间。

如果您只想运行单个 Lambda 函数,那么一次性计划可能是最好的。但如果您想要协调多个操作,Step Functions 可能是最好的选择。您始终可以将它们组合起来,因为Step Functions 是 EventBridge Scheduler 的目标

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