我的团队有两个 AWS Lambda,分别用 Golang(1) 和 Java8(2) 编写。Lambda#1 正在向 Lambda#2 发送 JSON 负载;由于 Lambda 中 Golang 的性质,它必须作为字节数组发送。这是问题开始的地方。我首先像这样声明我的 Java 处理程序:
public String handleRequest(String input, Context _context) {}
然而,甚至在 Lambda#2 被调用之前,Cloudwatch 日志指示 JSON 映射错误,表示 START_OBJECT 无法映射到字符串。很明显,在将其传递给 Lambda 之前,它试图自己进行一些映射。接下来我尝试的是自定义 POJO:
public String handleRequest(RequestObj input, Context _context){}
然而这也失败了,我相信这是由于 JSON 字符串中的一些转义字符串。所以我想对我来说,所有这一切归结为两个问题:
根据 CW 日志,Lambda 使用 FasterXML 的 Jackson 来映射 Lambda 输入。有什么方法可以@JsonProperty
在自定义 RequestObject 类中使用注释或类似的东西吗?文件说:
您不应依赖序列化框架的任何其他功能,例如注释。
(但它仍然是杰克逊!!)
有没有办法告诉 Lambda 停止尝试映射输入并只使用原始字节数组手动解析?这将解决很多令人头疼的问题,以便能够使用注释进行我们自己的自定义解析。
在此先感谢,如果需要可以提供更多详细信息。
www说
相关分类