2017-10-18 159 views
1

我创建了一个CloudWatch的规则与下列事件模式:AWS LAMBDA 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"; 
    } 
} 

那么,哪一类是我应该使用解析CloudWatch Rule事件?

谢谢。

回答