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

新手求助:如何用Python编写对接API Gateway的HTTP请求型AWS Lambda函数

嘿,我刚好折腾过这个场景,给你整理了Python版本的Lambda代码,完全能满足你的需求,还顺便加了点健壮性处理~

Python Lambda 实现代码

这是完整的函数代码,直接复制到Lambda控制台里就能用:

import json

def lambda_handler(event, context):
    # 从API Gateway传递的event里获取请求方法
    http_method = event.get('httpMethod', '')
    
    # 处理GET请求
    if http_method == 'GET':
        return {
            'statusCode': 200,
            'headers': {
                'Content-Type': 'text/plain'
            },
            'body': 'GET request made'
        }
    
    # 处理POST请求
    elif http_method == 'POST':
        # 获取POST提交的原始数据
        raw_post_data = event.get('body', 'No data submitted')
        # 尝试把JSON格式的请求体解析成可读格式
        try:
            parsed_data = json.loads(raw_post_data)
            formatted_data = json.dumps(parsed_data, indent=2)
            response_text = f'POST request made\n\nSubmitted data:\n{formatted_data}'
        except json.JSONDecodeError:
            # 如果不是JSON格式,直接返回原始数据
            response_text = f'POST request made\n\nSubmitted data:\n{raw_post_data}'
        
        return {
            'statusCode': 200,
            'headers': {
                'Content-Type': 'text/plain'
            },
            'body': response_text
        }
    
    # 处理其他不支持的请求方法
    else:
        return {
            'statusCode': 405,
            'headers': {
                'Content-Type': 'text/plain',
                'Allow': 'GET, POST'
            },
            'body': f'Unsupported HTTP method: {http_method}'
        }
关键细节说明
  • 核心逻辑:API Gateway和Lambda用Proxy集成时,所有请求信息都会打包到event参数里,我们通过event['httpMethod']就能判断是GET还是POST请求
  • POST请求处理:API Gateway会把JSON格式的请求体转成字符串存在event['body']里,所以我们用json.loads解析成字典,再用json.dumps格式化输出,方便浏览器查看;如果提交的不是JSON(比如表单数据),就直接返回原始内容
  • 响应格式:Lambda必须返回包含statusCode、headers、body的字典,API Gateway才会正确把结果返回给浏览器,Content-Type设为text/plain是为了让浏览器直接显示文本,不用解析JSON
API Gateway 配置提醒

别忘了把API Gateway和Lambda的集成类型设为Lambda Proxy集成,否则event里拿不到httpMethod和请求体这些数据,函数就没法正常工作啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:54:20