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

如何通过AWS CLI正确序列化JSON调用Java编写的AWS Lambda函数?

解决AWS Lambda Java函数jackson反序列化错误问题

问题根源分析

从你的错误日志和代码来看,主要有两个核心问题:

  • CLI命令传递的Payload是HTML转义后的字符串,Lambda无法识别为有效JSON
  • 可能存在Handler配置或方法签名的匹配问题

具体解决方案

1. 修正CLI调用的Payload格式

你当前命令里的{"a":"x","b":"y"}是HTML转义后的内容,并非标准JSON。在bash终端中,直接用单引号包裹正常JSON字符串即可:

aws lambda invoke --invocation-type RequestResponse --function-name HelloWorldJava --cli-binary-format raw-in-base64-out --payload '{"a":"x","b":"y"}' outputfile.txt

2. 确认Lambda Handler配置

登录AWS Lambda控制台,检查函数的运行时设置,确保Handler字段准确指向你的方法。比如你的类全限定名为com.example.HelloWorld,Handler应配置为:

com.example.HelloWorld::handlerMap

3. 优化方法参数类型(可选)

如果后续需要处理不同类型的输入值,建议把参数从Map<String, String>改为Map<String, Object>,提升反序列化的兼容性:

import java.util.HashMap;
import java.util.Map;

public class HelloWorld {
    public Map<String, Object> handlerMap(Map<String, Object> input){
        Map<String, Object> newMap = new HashMap<>();
        input.forEach((k,v) -> newMap.put("New Map -> " + k, v));
        return newMap;
    }
}

4. 查看完整错误日志

进入CloudWatch日志组,找到Lambda函数对应的日志流,查看完整栈跟踪信息,确认是否存在依赖冲突、类路径错误等隐藏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:55:12