【问题标题】:AWS Lambda schedule a delayed execution to run onceAWS Lambda 安排延迟执行运行一次
【发布时间】:2019-11-18 02:30:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: amazon-web-services aws-lambda boto3 amazon-cloudwatch


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢@John 的回答,我会为延迟付费吗?还是只计算实际执行时间?
    • AWS Step Functions 按“每 1000 次状态转换 0.025 美元”计费。延迟可能会触发状态转换,因此它将是 0.000025 美元。延迟没有 Lambda 成本,因为延迟期间没有使用 Lambda。
    • 谢谢,这比 Cloudwatch 解决方案好得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    相关资源
    最近更新 更多