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

AWS Lambda调用日志间歇性缺失问题排查求助

问题原因与排查建议

核心原因

你的Lambda handler函数调用异步函数addTrack时未使用await,导致Lambda执行环境可能在addTrack的异步操作(包括日志输出)完成前就已终止。Lambda的生命周期规则是:handler返回后,执行环境会被冻结,若后续无新请求触发则会被回收,这直接导致addTrack中后续的RESPONSE日志或错误日志来不及输出。

解决与排查步骤

1. 修复异步调用的等待逻辑

修改handler代码,在调用addTrack时添加await,确保Lambda等待整个异步流程完成后再结束:

export const handler = async (message: any) => {    
    let body = JSON.parse(message.Records[0].body);    

    let { Item }:any = await //call to dynamoBD...
    let token:string = Item.bdToken.S
    // 添加await等待异步操作完成
    await addTrack(token, body)
}

2. 检查Lambda超时配置

进入Lambda函数配置页面,确认超时时间是否足够覆盖外部API调用的最大耗时。如果外部API响应较慢,Lambda超时会直接中断执行,导致后续日志无法输出。建议设置超时时间比外部API的平均响应时间长2-3倍。

3. 完善axios的异常处理

给axios请求添加超时配置,避免请求无限制挂起;同时确保所有异常都能被捕获:

// 在addTrack中修改axios请求,添加timeout参数
let response = await axios.put(url, parameters, { 
    headers,
    timeout: 10000 // 设置10秒超时,可根据实际情况调整
})

4. 启用X-Ray追踪排查链路

开启Lambda的X-Ray追踪功能,查看完整的请求执行链路:

  • 直观确认addTrack是否被完整执行,以及执行过程中的耗时、异常节点
  • 帮助排查是否存在Lambda提前终止、外部API未响应等隐藏问题

内容的提问来源于stack exchange,提问作者M. Brandao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:57:17