AWS LAMBDA CloudWatch的规则

问题描述:

我创建了一个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事件?

谢谢。

您可以收听到文档中的事件型之一,

http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html

规则是的CloudWatch的事件。

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

希望它有帮助。

+0

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