如果过去的 lambda 失败,我是否可以使用 AWS EventBridge(或替代方案)在一小时后重新 运行 lambda?

Am I able to use AWS EventBridge (or alternative) in order to re-run a lambda after an hour if the past one fails?

我使用 Python 编写了一个 lambda,它依赖于偶尔会出现故障的外部 APIs。每天使用EventBridge收集昨天的数据触发一次,每天同一时间更新S3中的一个文件。

我想知道如何重新运行 Lambda,其中包括检查外部 API 是否在开始时正常运行,每 1-2 小时检查一次剩下的一天,直到它成功工作?它需要在晚上 11 点停止,以免进入下一个日历日。

具体来说,我正在使用 Google Search Console API,它应该每 4 小时更新一次,但在这种情况下 30 小时没有更新。

感谢帮助!

A CloudWatch event schedule 可以全天定期触发您的 lambda。使用 cron 表达式,您可以在适当的时间间隔调用 lambda。

lambda 首先在目标 S3 文件上查找 last_modified 属性。如果 last_modified 不是今天,请继续并调用 API。如果 last_modified 是今天,我们无事可做,那么 lambda returns 什么都不做。