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

AWS Lambda返回内部服务器错误且无CloudWatch日志排查

问题排查方向

1. 异步操作未等待,引发未捕获的Promise拒绝

你的代码里调用findOne时没加await:

response = client.methods
    .collection<Project>("projects")
    .findOne({ path: headers?.project_path });

这会导致这个异步查询在函数返回后才执行,如果查询抛出错误,属于未捕获的Promise拒绝,Lambda会直接崩溃,甚至来不及写入CloudWatch日志。同时当前GET分支里没有返回有效响应,函数会走到最后的400响应,但Promise拒绝会触发API Gateway返回500错误。

修复:给findOne加await,并返回正确响应:

try {
    response = await client.methods
        .collection<Project>("projects")
        .findOne({ path: headers?.project_path });
    return {
        statusCode: 200,
        body: JSON.stringify(response || { message: "项目未找到" })
    };
} catch (err: any) {
    return {
        statusCode: 500,
        body: JSON.stringify({ error: err.message })
    };
}

2. MongoDB连接逻辑未做错误捕获

mongoClient()初始化或await client.connect()如果抛出错误,这部分代码没有被try/catch包裹,会导致Lambda在初始化阶段崩溃,可能还没执行到console.log就挂了,自然不会生成日志。

修复:把连接逻辑放进try/catch:

export const handler: Handler = async (event: APIGatewayEvent) => {
    console.log("Lambda running");
    let client;
    try {
        client = mongoClient();
        await client.connect();
    } catch (err) {
        console.error("MongoDB连接失败:", err);
        return {
            statusCode: 500,
            body: JSON.stringify({ error: "数据库连接失败" })
        };
    }

    // 后续GET逻辑...
}

3. API Gateway与Lambda集成配置错误

如果API Gateway没正确配置Lambda集成,可能返回500但Lambda根本没触发:

  • 直接在Lambda控制台测试函数,传入模拟的APIGatewayEvent,看是否能正常执行并生成日志。
  • 检查API Gateway的集成请求配置,确认Lambda函数ARN正确,且启用了代理集成(如果用的是代理模式)。

4. esbuild编译兼容性问题

使用--platform=node编译时,需确保:

  • 编译后的JS文件包含了所有依赖(比如MongoDB驱动是否被正确打包)。
  • tsconfig.json的target版本与Node.js 20兼容(比如设为ES2020)。

5. CloudWatch日志权限或延迟问题

虽然配置了日志权限,但可能存在:

  • Lambda执行角色的权限未生效,重新部署Lambda或检查IAM角色的信任策略是否允许Lambda服务使用该角色。
  • CloudWatch日志有延迟,等待几分钟后再查看,或确认日志组是否为/aws/lambda/[你的Lambda函数名]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:52:28