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

API Gateway调用Node.js Lambda返回502 malformed Lambda proxy response错误

问题原因

  1. 你返回给API Gateway的响应结构不符合Lambda代理集成的强制格式要求:
    API Gateway要求Lambda代理集成的返回值必须包含statusCode(数字类型HTTP状态码)、headers(响应头对象)、body(字符串类型响应内容)三个核心字段。你当前的返回对象里把Content-Type响应头直接放在根层级,且键名写为contentType,没有封装到headers字段中,API Gateway无法识别合法响应结构所以报错。
  2. Promise的catch块只打印了日志没有返回合法的响应对象:如果逻辑触发reject,catch执行完会返回undefined,最终Lambda返回undefined也会被识别为格式错误。
  3. 潜在风险:没有判断event.headers.Cookie是否存在,如果请求不带Cookie头,调用str.replace会抛出异常,也会导致返回格式错误。

修复方案

  1. 修改所有resolve、reject返回的对象结构,补充正确的headers字段:
// 成功返回示例
resolve({
  statusCode: 200,
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({JoinInfo: { Meeting: meeting, Attendee: attendee }})
});

// 错误返回示例
reject({
  statusCode:400, 
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({error: "access denied"})
});
  1. 修改catch块,返回合法的错误响应:
.catch(function(erro){ 
  console.log(erro.message);
  return {
    statusCode: 500,
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({error: "internal server error"})
  };
});
  1. 补充Cookie头存在性判断:
var str = event.headers.Cookie || '';

内容的提问来源于stack exchange,提问作者Éder Rocha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 07:42:01