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

调用带参数的Python Lambda函数遇内部服务器错误求助

问题分析与修复方案

你的Lambda函数触发内部服务器错误,核心问题在于Lambda函数URL的POST请求数据结构和控制台测试的结构不一致:

  • 控制台测试时,你直接将temp放在了event根节点,所以代码能正常取值
  • 但通过POST请求发送JSON时,请求体内容会被包装在event['body']字段中,且该字段是字符串格式,并非直接的JSON对象

修复后的代码

import json

def lambda_handler(event, context):
    # 解析POST请求的body内容
    if 'body' in event:
        try:
            body = json.loads(event['body'])
            temp = body["temp"]
        except (json.JSONDecodeError, KeyError):
            return {
                'statusCode': 400,
                'body': json.dumps('请求格式错误:缺少temp参数或JSON格式无效')
            }
    else:
        # 兼容控制台测试或无body的请求场景
        temp = event.get("temp", "默认值")
    
    return {
        'statusCode': 200,  # 注意:原代码中写的是小写c的statuscode,这是不符合规范的错误写法
        'body': json.dumps(f'Hello from {temp}!')
    }

额外注意事项

  1. 原返回字段statuscode(小写c)不符合Lambda响应规范,正确写法是statusCode(大写C),这个错误也会导致响应异常
  2. 添加异常处理可以避免因请求格式错误触发崩溃,同时返回友好的错误提示
  3. 如果是GET请求,查询参数会存放在event['queryStringParameters']中,比如curl https://xxxx.lambda-url.us-east-1.on.aws?temp=test,需要通过event['queryStringParameters'].get('temp')获取参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:15:39