amazon-web-services - AWS Lambda 安排延迟执行运行一次
问题描述
我有一个带有 Lambda 的 API 网关,对于一些我想在未来安排执行的端点,运行一次,例如 REST 调用是在 T 时间进行的,我希望那个 lambda 在 T 安排一次执行+20 分钟。
我发现实现此目的的唯一解决方案是使用 boto3 和 Cloudwatch 在进行 REST 调用时设置一个 cron,发送一个带有有效负载的事件,然后当延迟的 lambda 运行时,它会删除规则。
我发现这很重,还有其他方法可以实现这种模式吗?
编辑:它不是一个重复的 Lambda,只是运行一次。
解决方案
一种选择是使用AWS Step Functions在给定延迟后触发 AWS Lambda 函数。
Step Functions 具有可以安排或延迟执行的等待状态,因此您可以实现一个相当简单的 Step Functions 状态机,该状态机在调用 Lambda 函数之前放置一个延迟。无需数据库!
有关该概念的示例(略有不同,但足够接近),请参阅:
推荐阅读
- python - Pandas:查找高于定义阈值的结束频谱
- python - Google Cloud Functions (Python) 中的随机连接错误
- typescript - 一个类型保护不能完全消除具有两个父级的 TypeScript 泛型
- c++ - 如何通过模板化参数传递 std::move
- sql - SQL 存储过程尝试选择然后将 URL var 放在一起
- sql - SQL 检查字段是否包含相同的字母
- c++ - 为什么 LAPACKE_dsygvd 在更改矩阵大小后返回错误?
- json - 使用 maximo oslc rest api 时如何包含 SR 相关的工作日志长描述?
- c# - 使用 HierarchyId 从 c# 匿名类型获取值
- python - 从 c 指针创建 numpy 数组会使 ipython 内核崩溃