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

Lambda自定义API响应状态码未在Postman生效,如何解决?

解决Lambda返回状态码在Postman不显示的问题

以下是针对性的排查和解决步骤:

1. 确认API Gateway集成类型

如果使用的是Lambda代理集成,你的响应格式本身符合要求,但需确保API Gateway的资源方法已启用代理集成:

  • 进入API Gateway控制台,找到目标资源的方法(如GET/POST)
  • 查看"集成请求",确认"集成类型"为Lambda代理集成(已勾选"使用Lambda代理集成")

2. 完善Lambda响应格式(代理集成必做)

代理集成要求响应包含headers字段(至少指定Content-Type),否则API Gateway可能无法正确解析状态码。修改你的响应代码:

import json

response404 = {
    "statusCode": 404,
    "headers": {
        "Content-Type": "application/json"
    },
    "body": json.dumps({"message": "Not Found"})
}

# 同时确保output_response也遵循相同格式
if httpStatusCode == "200":
    # 示例符合规范的output_response格式
    output_response = {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps({"data": "your content"})
    }
    return output_response
else:
    return response404

3. 非代理集成的状态码映射配置(若未使用代理)

如果是Lambda非代理集成,需要手动配置API Gateway的响应映射:

  • 进入目标方法的"方法响应",添加404状态码,并配置对应的响应头(如Content-Type)
  • 进入"集成响应",为404状态码设置映射模板:
    1. 选择"添加映射模板",输入application/json
    2. 在模板中输入以下内容,将Lambda返回的body映射到响应体:
      #set($inputRoot = $input.path('$'))
      $inputRoot.body
      
    3. 确保集成响应的"状态码"设置为404,并关联到Lambda返回的判断条件(如根据Lambda返回的字段匹配)

4. 重新部署API

所有配置修改后,必须部署API到对应的阶段(如prod/test),否则更改不会生效。部署步骤:

  • 在API Gateway控制台点击"部署API"
  • 选择目标阶段,确认部署

5. 验证Lambda返回内容

在Lambda控制台测试函数,检查返回的响应是否正确包含statusCode字段(值为404或200),以及完整的headers和body。如果Lambda返回正确,问题则集中在API Gateway配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:32:53