Amazon Java SDK-调用Lambda函数
当我使用JavaSDK使用json数据调用lambda函数时,遇到了一个小问题 这是我的密码 我的Pojo课程Amazon Java SDK-调用Lambda函数,java,json,lambda,aws-lambda,Java,Json,Lambda,Aws Lambda,当我使用JavaSDK使用json数据调用lambda函数时,遇到了一个小问题 这是我的密码 我的Pojo课程 public class MyVO implements Serializable { /** * */ private static final long serialVersionUID = 3425814577032276812L; @JsonProperty("object_id") private Long
public class MyVO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3425814577032276812L;
@JsonProperty("object_id")
private Long objectId;
@JsonProperty("object_name")
private String objectName;
...
...
...
}
调用Lambda函数的代码
InvokeRequest invokeRequest = new InvokeRequest().withFunctionName(functionName).withPayload(jsonToSend);
InvokeResult invokeResult = null;
try {
invokeResult = awsLambdaAsyncClient.invoke(invokeRequest);
} catch (Exception e) {
...
...
}
Amazon Lambda-andler方法
public LambdaResponseVO handleRequest(final MyVO input, final Context lambdaContext) {
LOG.info("Entered handleRequest - input:{}", input);
}
当我传入以下Json时,处理程序中的我的对象打印为null
{"object_id":299,"object_name":"Example Schedule"}
然而,当我传入以下json时,对象被完美地设置
{"objectId":299,"objectName":"Example Schedule"}
Lambda处理程序基于字段名而不是jackson@JsonProperty注释解析json
我是否需要强制lambda代码使用jackson注释来解析json
谢谢
达米恩我以前也有过这个问题。在Lambda中,Jackson解析器似乎被忽略Jackson特定注释的内容覆盖。我唯一能解决这个问题的方法就是转到Gson。你在哪里实现了json?是在调用lambda函数时发生的吗?或者在处理程序本身中使用?在我的处理程序中,我收到了一个自定义对象。我也想重新命名字段,但从未想出一个方法。所以我接受了Lambda给我的东西以及Gson使用的任何其他JSON处理。我承认我当时有时间上的压力,所以一直坚持下去。这是有道理的——谢谢你的评论。你使用过框架还是纯Java?不,我的lambda非常简单——主要是作为触发其他东西的前门。例如,我将响应IOT事件并将其保存到DynamoDB中。其他的是由时间驱动的,例如,执行一些非常简单的数据库维护。