Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda计划的一次性任务_Amazon Web Services_Aws Lambda_Amazon Sqs - Fatal编程技术网

Amazon web services AWS Lambda计划的一次性任务

Amazon web services AWS Lambda计划的一次性任务,amazon-web-services,aws-lambda,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Sqs,我正在研究让Lambda在给定时间运行一次性任务的最佳方法 我设想的系统基本上会有需要发送的事件,无论是在接收/创建事件时,还是在特定时间,或者作为一个重复动作。我希望尽可能多地使用AWS,因为它具有可伸缩性 我最初的想法是使用AWS SQS队列发送事件。然后我会有一个DynamoDB表,用于将来的活动。我还有两个AWS Lambda函数,一个设置是每隔几分钟在cron作业上运行一次,从DynamoDB表中获取在未来15分钟左右计划的事件,并将它们放入AWS SQS队列中,同时设置消息计时器,以

我正在研究让Lambda在给定时间运行一次性任务的最佳方法

我设想的系统基本上会有需要发送的事件,无论是在接收/创建事件时,还是在特定时间,或者作为一个重复动作。我希望尽可能多地使用AWS,因为它具有可伸缩性

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

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

我刚刚发现的最大问题是。我需要一个FIFO队列,因为我需要防止这些事件被发送多次,或者触发我的第二个Lambda函数两次

我还研究了AWS Lambda cron作业,虽然您可以每5分钟安排一次调用,但我不认为这是我想要的,因为我更希望在将来安排一次调用,并使其具有可扩展性。所以我不认为这是我要找的


关于如何实现这一点,有什么想法吗?因为Amazon SQS消息计时器看起来不适合我要做的事情?

您考虑过Step函数吗?您可以在调用lambda之前创建一个参数。

我认为这不起作用,因为我找不到将自定义值传递到该
时间戳
参数的方法。