AWS Lambda计划一次性任务

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

我正在努力找出Lambda在给定时间运行一次任务的最佳方法。

我想象的系统基本上会有事件需要发送,一旦接收/创建事件,在特定时间,或作为重复动作。由于可扩展性,我希望尽可能多地使用AWS。

我最初的想法是为要发送的事件设置AWS SQS队列。然后我会有一个DynamoDB表用于未来的事件。我还有两个AWS Lambda函数,一个用于每隔几分钟在cron作业上运行的设置,用于从DynamoDB表中获取在接下来的15分钟左右计划的事件,并使用Message将它们放入AWS SQS队列定时器设置可延迟消息在给定时间内可见。将设置第二个Lambda函数,并具有从该AWS SQS队列运行的触发器。该函数将负责实际发送事件。

从那里我可以将事件添加到SQS队列(有或没有消息计时器),如果它需要在接下来的15分钟内发送出去。或者将它添加到DynamoDB表中,如果它将来需要发送(超过15分钟)。

我刚才想到的最大问题是AWS SQS FIFO queues doesn’t support Message Timers on individual messages。我需要一个FIFO队列,因为我需要防止多次发送这些事件,或者两次触发我的第二个Lambda函数。

我也查看了AWS Lambda cron作业,虽然你可以每隔5分钟调度一次调用,但我认为这不是我想要的,因为我正在寻找更多安排一次调用的方法。未来,并具有可扩展性。所以我认为这不是我想要的。

关于如何实现这一点的任何想法,因为它看起来不像亚马逊SQS消息定时器将适用于我正在尝试做的事情?

amazon-web-services aws-lambda amazon-sqs
1个回答
-2
投票

你考虑过步功能吗?你可以在调用lambda之前创建一个wait state

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