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

AWS API Gateway无法触发Lambda:POST/PUT/DELETE请求失败求助

解决方案排查步骤

1. 检查API Gateway集成请求配置

  • 确认POST/PUT/DELETE路由的方法请求与集成请求的HTTP方法完全匹配(比如方法请求是POST,集成请求不能误设为GET),且已正确关联目标Lambda函数。
  • 若使用Lambda代理集成:确保Lambda响应格式符合API Gateway要求(见下文);若使用非代理集成,需为application/json等请求类型配置正确的映射模板,比如添加模板$input.json('$'),否则请求体无法传递到Lambda,触发502错误。

2. 验证CORS配置有效性

  • 若为非代理集成:检查控制台CORS配置是否覆盖所有HTTP方法(含OPTIONS),必须返回以下响应头:
    • Access-Control-Allow-Origin(指定前端域名或*)
    • Access-Control-Allow-Methods(包含GET, POST, PUT, DELETE, OPTIONS)
    • Access-Control-Allow-Headers(包含前端请求携带的所有自定义头,如Content-Type、Authorization)
  • 若为代理集成:API Gateway控制台的CORS配置不生效,必须由Lambda函数直接返回上述CORS头,且需单独处理OPTIONS请求,返回合规响应。

3. 修正Lambda响应格式(代理集成专用)

代理模式下,Lambda返回的响应必须严格遵循如下结构,否则API Gateway无法解析响应,导致500/502错误:

{
  "statusCode": 200,
  "headers": {
    "Access-Control-Allow-Origin": "*", // 或指定前端具体域名
    "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Authorization"
  },
  "body": JSON.stringify({ data: "操作成功" })
}

特别注意:OPTIONS请求需单独处理,直接返回上述CORS头,无需执行业务逻辑。

4. 确认API部署状态

  • 每次修改配置后,必须手动重新部署API到对应的阶段(如prod),控制台修改不会自动生效。
  • 开启阶段的详细日志功能,查看CloudWatch中API Gateway的日志(非Lambda日志),日志会明确标注错误原因,比如Invalid lambda response或Mapping template mismatch。

5. 检查Lambda权限配置

  • 确认API Gateway拥有调用Lambda的权限:在Lambda的「资源策略」中添加允许API Gateway调用的规则,示例如下(替换占位符为实际值):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "apigateway.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:FUNCTION_NAME",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:execute-api:REGION:ACCOUNT_ID:API_ID/*/{POST,PUT,DELETE}/*"
        }
      }
    }
  ]
}

6. 排查请求体格式问题

  • 确保前端Axios请求的Content-Type为application/json,且请求体是合法JSON;若发送表单数据,需在API Gateway配置application/x-www-form-urlencoded类型的映射模板。
  • 用Thunder Client直接发送POST/PUT请求(跳过预检),查看返回的具体错误信息,结合CloudWatch日志定位Lambda执行是否存在报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:20:38