Java AWS Lambda云量观测规则

Java AWS Lambda云量观测规则,java,amazon-web-services,aws-lambda,aws-sdk,Java,Amazon Web Services,Aws Lambda,Aws Sdk,我创建了具有以下事件模式的CloudWatch规则: { "detail-type": [ "EMR Cluster State Change" ], "source": [ "aws.emr" ] } 其思想是,每当集群的状态发生变化时,它都会调用lambda函数 现在的问题是,当它调用lambda函数时,我得到以下错误: An error occurred during JSON parsing: java.lang.RuntimeException jav

我创建了具有以下事件模式的CloudWatch规则:

{
  "detail-type": [
    "EMR Cluster State Change"
  ],
  "source": [
    "aws.emr"
  ]
}
其思想是,每当集群的状态发生变化时,它都会调用lambda函数

现在的问题是,当它调用lambda函数时,我得到以下错误:

An error occurred during JSON parsing: java.lang.RuntimeException
java.lang.RuntimeException: An error occurred during JSON parsing
Caused by: java.io.UncheckedIOException: com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definitions for property "state": com.amazonaws.services.cloudwatchevents.model.Rule#setState(1 params) vs com.amazonaws.services.cloudwatchevents.model.Rule#setState(1 params)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definitions for property "state": com.amazonaws.services.cloudwatchevents.model.Rule#setState(1 params) vs com.amazonaws.services.cloudwatchevents.model.Rule#setState(1 params)
代码为:

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.cloudwatchevents.model.Rule;

public class ErrorLambda implements RequestHandler<Rule, String>  {

    private static final Logger LOG = Logger.getLogger(ErrorLambda.class);

    public String handleRequest(Rule input, Context context) {
         LOG.info("Rule is " + input);
         return "Ok";
    }
}
import com.amazonaws.services.lambda.runtime.Context;
导入com.amazonaws.services.lambda.runtime.RequestHandler;
导入com.amazonaws.services.cloudwatchevents.model.Rule;
公共类ErrorLambda实现RequestHandler{
私有静态最终记录器LOG=Logger.getLogger(ErrorLambda.class);
公共字符串handleRequest(规则输入,上下文){
日志信息(“规则为”+输入);
返回“Ok”;
}
}
那么,我应该使用哪个类来解析CloudWatch规则事件?


多谢各位

您可以收听文档中键入的事件之一

规则是而不是一个cloudwatch事件

您还可以定义动态对象,并获取发送到Lambda的对象的详细信息


希望有帮助。

基本上,我所做的是创建自己的对象,使用codehaus“read”反序列化JSON。然而,我很震惊亚马逊还没有提供一个类。。。