2017-10-18 12 views
1

私は、次のイベントパターンとCloudWatchのルールを作成しました:AWSラムダCloudWatchのルール

{ 
    "detail-type": [ 
    "EMR Cluster State Change" 
    ], 
    "source": [ 
    "aws.emr" 
    ] 
} 

アイデアは毎回、クラスタの状態が変化したが、それはラムダ関数を呼び出すことです。クラスは、私が使用することになっていた、だから、

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"; 
    } 
} 

:コード付き

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) 

さて、問題は、それがラムダ関数を呼び出すとき、私は次のエラーを取得するということですCloudWatchルールのイベントを解析するには?

ありがとうございます。

答えて

0

あなたが

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

ルールはありません CloudWatchのイベントで、ドキュメントのイベントタイプの1を聞くことができます。

また、動的オブジェクトを定義し、ラムダに送信されるオブジェクトの詳細を取得することもできます。

希望します。

+0

基本的に私が行ったことは、codehaus "read"を使ってJSONを逆シリアル化する自分のオブジェクトを作成したことです。しかし、私はアマゾンがすでにクラスを提供していないことにショックを受けています... – Alessandroempire