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

Next.js调用AWS Lambda+API Gateway返回502错误求助

解决Next.js前端调用AWS API Gateway + Lambda出现502 Bad Gateway的问题

1. 确认CloudWatch日志组权限与存在性

  • 登录CloudWatch控制台,检查/aws/lambda/generate-api-descriptions日志组是否存在。若不存在,手动创建该日志组(Lambda首次执行会自动创建,但如果API Gateway调用时使用的角色无权限读取,也会报此错误)。
  • 检查API Gateway关联的执行IAM角色,确保其拥有以下权限:
    • lambda:InvokeFunction(允许调用目标Lambda)
    • logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents(允许API Gateway写入/读取Lambda日志组)
      权限资源需指定为arn:aws:lambda:你的区域:你的账号ID:function:generate-api-descriptions和对应的CloudWatch日志组ARN。

2. 验证Lambda返回格式是否符合API Gateway要求

Lambda必须返回API Gateway可解析的标准格式,确保你的index.mjs返回结构如下:

export const handler = async (event) => {
  // 解析前端传入的参数
  const { fields } = JSON.parse(event.body);
  // 调用Gemini API处理逻辑
  const modifiedResult = await callGeminiAPI(fields);
  
  return {
    statusCode: 200,
    headers: {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'OPTIONS, POST',
      'Access-Control-Allow-Headers': 'Content-Type',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(modifiedResult) // 必须转为JSON字符串返回
  };
};

注意:如果Lambda返回非JSON格式、缺少statusCode或body未序列化,API Gateway会返回502错误。

3. 测试API Gateway集成是否正常

  • 进入API Gateway控制台,找到/generate-api-descriptions资源的POST方法,使用测试功能发送与前端相同的请求体:
    {
      "fields": [
        {"path": "name", "type": "string"},
        {"path": "email", "type": "string"}
      ]
    }
    
  • 查看测试结果:如果返回502,直接查看API Gateway的执行日志定位具体错误;如果返回正常,说明问题出在前端请求配置或CORS。

4. 检查Lambda依赖包是否完整

  • 确认打包zip时已包含node_modules目录:在本地执行npm install安装node-fetch后,将index.mjs、package.json、package-lock.json和node_modules一起打包上传,避免Lambda运行时找不到依赖导致报错。

5. 完善API Gateway的CORS配置

  • 在API Gateway的/generate-api-descriptions资源上,启用CORS配置,设置:
    • 允许的Origin:*(或指定你的前端域名)
    • 允许的Methods:OPTIONS, POST
    • 允许的Headers:Content-Type
  • 修改CORS配置后,必须重新部署API到prod阶段才会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:05:18