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的对象的详细信息。
希望它有帮助。
基本上我所做的是创建我自己的对象,使用codehaus“read”反序列化JSON。然而,我很震惊亚马逊并没有提供一个课程...... – Alessandroempire