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

如何使用AWS HTTP API发起POST请求?Lambda参数获取异常求助

解决AWS HTTP API POST请求与Lambda参数获取问题

让我一步步帮你搞定这两个问题:先解决Lambda返回undefined的bug,再讲清楚如何用AWS HTTP API配置并发送POST请求。

1. 为什么key是undefined?

你现在的Lambda代码直接从event.key取参数,但AWS HTTP API会把POST请求的**请求体(body)**打包成JSON字符串存在event.body字段里,不是直接把参数挂在event对象上。所以直接取event.key肯定拿不到值,返回undefined是必然的。

2. 修复Lambda函数代码

修改你的Lambda代码,先解析event.body里的JSON字符串,再从中提取key参数:

exports.handler = async (event) => {
    // 先处理请求体解析,兼容空请求或非JSON格式的情况
    let requestBody = {};
    if (event.body) {
        try {
            requestBody = JSON.parse(event.body);
        } catch (err) {
            return {
                statusCode: 400,
                body: JSON.stringify({ error: "请求体不是合法的JSON格式" })
            };
        }
    }
    
    const key = requestBody.key;
    const response = {
        statusCode: 200,
        body: `Hello from Lambda! ${key || '未提供key参数'}`,
    };
    return response;
};

3. 配置AWS HTTP API支持POST请求

确保你的HTTP API正确配置了POST路由并集成到Lambda:

  • 登录AWS控制台,进入API Gateway -> 你的HTTP API
  • 到Routes页面,点击「Create route」:
    • 请求方法选POST
    • 填写路由路径(比如/invoke-lambda)
  • 为这条路由配置集成:
    • 选择「Lambda function」作为集成目标
    • 选中你的Lambda函数
    • 确认集成请求的Payload format version是2.0(这是HTTP API默认值,会把请求体放在event.body里)

4. Postman测试的正确方式

用Postman发送POST请求时注意这几点:

  • 请求方法选POST,URL填你的HTTP API调用地址+路由路径(比如https://abc123.execute-api.us-east-1.amazonaws.com/invoke-lambda)
  • 切换到Body标签,选择raw -> 格式选JSON,然后输入参数:
    {
        "key": "我的测试key"
    }
    
  • 发送请求,就能收到响应:Hello from Lambda! 我的测试key

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:27:31