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

Lambda增改功能正常,但通过API Gateway调用时Payload传递失败

问题解决步骤

问题根源:API Gateway会将POST请求的JSON payload以字符串格式存入Lambda事件的event.body字段,而你在Lambda控制台测试时直接传入的是已解析的JSON对象,代码直接读取event.FingerPrint自然会拿到undefined,触发必填字段缺失的错误。

直接按以下方式修复:

  • 在Lambda函数开头先解析event.body为JSON对象,再从中读取所需字段:
    以Node.js为例:
    // 先解析请求体字符串
    let requestBody;
    try {
      requestBody = JSON.parse(event.body);
    } catch (err) {
      // 处理非法JSON的情况,返回400错误
      return {
        statusCode: 400,
        body: JSON.stringify({ message: "Invalid request body" })
      };
    }
    
    // 从解析后的对象中获取字段
    const fingerPrint = requestBody.FingerPrint;
    const ipAddress = requestBody.IpAddress;
    const votes = requestBody.Votes;
    // 后续逻辑...
    
    以Python为例:
    import json
    
    def lambda_handler(event, context):
        try:
            request_body = json.loads(event['body'])
        except json.JSONDecodeError:
            return {
                'statusCode': 400,
                'body': json.dumps({'message': 'Invalid request body'})
            }
        
        finger_print = request_body.get('FingerPrint')
        ip_address = request_body.get('IpAddress')
        votes = request_body.get('Votes')
        # 后续逻辑...
    
  • 不需要额外配置API Gateway的映射模板,默认的传递方式就可以正常工作,只要在Lambda里做好字符串解析即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:58:13