首页 > 解决方案 > AWS Lambda 安排延迟执行运行一次

问题描述

我有一个带有 Lambda 的 API 网关,对于一些我想在未来安排执行的端点,运行一次,例如 REST 调用是在 T 时间进行的,我希望那个 lambda 在 T 安排一次执行+20 分钟。

我发现实现此目的的唯一解决方案是使用 boto3 和 Cloudwatch 在进行 REST 调用时设置一个 cron,发送一个带有有效负载的事件,然后当延迟的 lambda 运行时,它会删除规则。

我发现这很重,还有其他方法可以实现这种模式吗?

编辑:它不是一个重复的 Lambda,只是运行一次。

标签: amazon-web-servicesaws-lambdaboto3amazon-cloudwatch

解决方案


一种选择是使用AWS Step Functions在给定延迟后触发 AWS Lambda 函数。

Step Functions 具有可以安排或延迟执行的等待状态,因此您可以实现一个相当简单的 Step Functions 状态机,该状态机在调用 Lambda 函数之前放置一个延迟。无需数据库!

有关该概念的示例(略有不同,但足够接近),请参阅:


推荐阅读