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

如何用Python编写AWS Lambda实现API仅返回响应body不含头信息

解决方案

你当前返回的完整结构是AWS Lambda配合API Gateway代理集成/函数URL默认响应的标准格式,要实现仅输出body内的JSON数据,可选择以下任意一种方案:

方案1:修改入口配置(无需改动Lambda代码,推荐)

  • 如果使用API Gateway接入:进入对应API的集成请求配置页,关闭「使用Lambda代理集成」选项,再在集成响应规则中配置直接提取Lambda返回值的body字段作为响应体,固定状态码为200、响应头Content-Type为application/json即可。
  • 如果使用Lambda函数URL作为接口入口:进入函数URL配置页,将响应格式修改为返回原始响应即可。

方案2:直接修改Lambda返回逻辑

如果不想调整入口配置,先关闭Lambda代理集成/结构化响应配置,再将Lambda代码修改为如下内容:

import json
import boto3
from decimal import Decimal

def lambda_handler(event, context):
    # 扫描DynamoDB表
    client = boto3.resource('dynamodb')
    table = client.Table("register-to-event")
    
    response = table.scan()
    # 处理DynamoDB Decimal类型兼容问题,直接返回Items
    items = json.loads(json.dumps(response["Items"], default=lambda x: int(x) if isinstance(x, Decimal) else x))
    return items

注意事项

如果保持API Gateway的Lambda代理集成、或者函数URL的结构化响应配置开启,必须返回包含statusCode、headers、body的标准结构,否则接口会返回500错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:06:02