You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda函数未按预期触发:调度触发延迟问题排查

解决AWS Lambda按固定间隔触发(无视前一次执行状态)的问题

问题根源分析

你之前遇到的“EventBridge每分钟触发,但需等上一次Lambda结束后才触发下一次”,大概率是对日志时间的误解——EventBridge固定速率触发默认是异步调用Lambda,只要并发足够,会严格按间隔发送触发事件,不会等待上一次执行完成。你看到的日志间隔,可能是把上一个实例的结束时间和下一个实例的开始时间混淆了,建议按日志的开始时间排序查看,确认触发是否符合间隔。

而你当前用“代码循环+sleep 15秒”的方案存在以下问题:

  • 浪费资源与成本:sleep期间Lambda占用执行时长但不处理任务,直接增加计费
  • 无法保证严格间隔:若单次任务处理耗时超过15秒,后续循环会被延迟,打破15秒的固定触发要求
  • 存在终止风险:若循环总时长超过Lambda最大运行限制(15分钟),函数会被强制终止,导致任务中断

正确实现方案

要实现“无论前一次是否完成,按固定15秒间隔触发”,直接通过EventBridge配置即可,无需在Lambda内做循环:

1. 调整Lambda代码

删除循环与sleep逻辑,让每个Lambda实例仅处理单次任务,保证逻辑简洁、执行高效。

2. 配置EventBridge固定速率触发

  • 进入EventBridge控制台,创建新规则(或修改现有规则)
  • 触发类型选择固定速率(Fixed rate),设置为Every 15 seconds
  • 目标选择你的Lambda函数,保持默认配置即可(EventBridge触发Lambda为异步调用,自动启动新实例处理,无需等待前一次完成)

3. 确认并发配置

你已设置Lambda总并发数为1000,完全满足15秒一次的触发需求(即使任务执行超过15秒,并发数最多仅会随运行中的实例数增加,1000的上限足够支撑)。

验证触发效果

配置完成后,在CloudWatch日志中按时间戳升序查看Lambda的执行日志,每个实例的START时间应严格保持15秒左右的间隔,即使某实例的END时间晚于下一个实例的START时间,也说明触发逻辑正常。

内容的提问来源于stack exchange,提问作者xeroshogun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:47:31