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

AWS SDK V3调用Lambda时Payload丢失问题求助

AWS SDK v3调用Lambda异步传递Payload为空的解决方案

问题现象

使用AWS SDK v3调用Lambda时,设置InvocationType: Event(异步调用),被调用Lambda的event参数为空;调用返回的响应中Payload字段也为空对象。相关代码、日志如下:

调用方代码

import { 
    LambdaClient, 
    InvokeCommand,  
    LogType,
    InvocationType
} from "@aws-sdk/client-lambda";
const lambdaClient = new LambdaClient({});

const payload = { 
    "param1": 100, 
    "param2": 200
};

const input = {
    FunctionName: TAG + "data-iot",
    InvocationType: InvocationType.Event,
    LogType: LogType.Tail,
    Payload: Buffer.from(JSON.stringify(payload), "utf8")
};
let invokeCommand  = new InvokeCommand(input);
let res = await lambdaClient.send(invokeCommand);
console.log(`res = ${JSON.stringify(res)}`);

调用响应日志

{
    "$metadata": {
        "httpStatusCode": 202,
        "requestId": "b06b7abf-3bcb-42f3-b45d-c66c9c6badb0",
        "attempts": 1,
        "totalRetryDelay": 0
    },
    "Payload": {},
    "StatusCode": 202
}

被调用Lambda日志

INFO {}

关键说明

调用响应中的Payload为空是正常行为:InvocationType: Event属于异步调用,AWS不会返回被调用Lambda的执行结果,因此该字段为空无需关注。问题核心是被调用Lambda无法接收传递的Payload。

解决方案

1. 替换Payload编码方式

AWS SDK v3要求Payload参数为Uint8Array类型,虽然Buffer是Uint8Array子类,但部分环境下存在兼容性问题。建议使用标准TextEncoder编码:

// 替换原有Payload赋值
Payload: new TextEncoder().encode(JSON.stringify(payload))

2. 确认Payload有效性

调用前打印JSON.stringify(payload),确保生成合法JSON字符串:

console.log(JSON.stringify(payload)); // 预期输出: {"param1":100,"param2":200}

若字符串存在格式错误(如未转义特殊字符),被调用Lambda会解析出空对象。

3. 补全Lambda客户端区域配置

确保LambdaClient的区域与被调用Lambda所在区域一致,避免跨区域调用的潜在问题:

const lambdaClient = new LambdaClient({ region: "your-region" }); // 替换为实际区域,如us-east-1

4. 验证被调用Lambda的Event处理

若被调用Lambda使用Node.js运行时,可先打印原始event的base64编码,验证是否收到正确Payload:

exports.handler = async (event, context) => {
    console.log("Raw event base64:", Buffer.from(JSON.stringify(event)).toString('base64'));
    console.log("Parsed event:", event);
    // 后续业务逻辑
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:17:09