AWS EventBridge 规则触发两次

nic*_*tev 8 amazon-web-services

我在 AWS EventBridge 中有基于 CRON 的规则。
活动日程为cron(0 16 * * ? *). 它会在每天 16:00 UTC 触发 Lambda 函数。

我第一次创建此规则后,它触发了 Lambda 一次 - 这很好。
但是当我编辑 cron 表达式时,它在 16 点开始触发 2 个事件。
我删除了这条规则并创建了一条新规则,但它还在 16:00 触发了 2 个事件。

监控Lambda函数,每天16点左右执行2次: 在此输入图像描述


这是此规则的 CloudWatch: 在此输入图像描述


总结一切,我有一条规则应该触发 1 个事件,但它却触发 2 个事件。知道为什么会有 2 个事件吗?
看起来像是 AWS EventBridge 中的错误。

nic*_*tev 16

问题是我的 Lambda 函数运行时间超过 15 秒。不过,我将允许的最大持续时间设置为 15 秒,并将重试次数(以防 Lambda 中出现错误)设置为 2。

所以会发生以下情况:

  1. AWS EventBridge 触发我的 Lambda 一次。
  2. Lambda 在 16 秒内执行。所有业务逻辑都在其中执行。
  3. 最终 Lambda 超时(超过 15 秒)并返回错误代码。
  4. 错误会触发对同一 Lambda 的重复调用。
  5. 重复调用 Lambda 只需不到 15 秒即可完成。
  6. 我的业务逻辑执行了两次。

解决方案是增加超时限制。

仅供参考
,我在 Lambda 监控仪表板中发现错误、观察 CloudWatch 中的 Lambda 日志并看到“任务在 15.01 秒后超时”消息后发现了它。