私は新しい情報を見つけました。私のS3イベントソースに誤ったインターフェースを実装した可能性があります。私は今のところ、それが動作するようにすることができていないか、または、もしあればどのインタフェースを実装すべきかを理解できていません。 RequestHandlerインタフェースでは、handleRequestメソッドが値を返す必要があります。助言がありますか?AWS Lambda Java Handler Hello World
OUTPUTTYPE - あなたはラムダ関数同期 (RequestResponse呼び出しタイプを使用して)を呼び出すために計画している場合は、あなたがサポートされるデータ型のいずれかを使用して、関数の出力 を返すことができます。たとえば、 モバイルアプリケーションバックエンドとしてラムダ関数を使用する場合は、 を同期呼び出しします。あなたの出力データ型は、 をJSONにシリアル化します。
( イベント起動型を使用して)Lambda関数を非同期に呼び出す予定がある場合は、outputTypeは無効にする必要があります。たとえば、 Amazon S3、Amazon Kinesis、Amazon SNSなどのイベントソースでAWS Lambdaを使用する場合、これらのイベントソースは、イベント起動タイプを使用してLambda 関数を呼び出します。
私は基本的なハンドラを作成したが、私をほのめかすし続けて重要なステップを見逃しているように思われています。
コード&エラー以下:
package example;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.s3.model.S3Event;
public class Hello implements RequestHandler<S3Event, Object> {
public String handleRequest(S3Event input, Context context) {
return "Hello";
}
}
{ "にErrorMessage": "エラーはJSONの解析中に発生しました"、
"ERRORTYPE": "java.lang.RuntimeException"、 "スタックトレース": []、
"原因":{ "にErrorMessage":「com.fasterxml.jackson.databind.JsonMappingException: は START_OBJECTトークン\ n個のうちのcom.amazonaws.services.s3.model.S3Eventのインスタンスをデシリアライズすることはできません出所: lambdainternal.util.NativeMemoryAsInputSt[email protected];行:1、 コラム:1" 、 "ERRORTYPE": "java.io.UncheckedIOException"、 "スタックトレース":[]、 "原因":{ "にErrorMessage":「COMのインスタンスをデシリアライズすることはできません。 amazonaws.services.s3.model.S3 START_OBJECTトークンのうち、\ 0,にあるイベント出典:[email protected];1、列:1 "、 " errorType ":" com.fasterxml.jackson.databind.JsonMappingException "、 " stackTrace ":[ " com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java :148) "、 " com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:835) "、 " com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:831) "、 com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeOther(EnumDeserializer.java:137) " 、 "com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserial (EnumDeserializer.java:18) "、 " com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1441) "、 " com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader。「オブジェクトとして] } }}
私はあなたがJSONオブジェクトにシリアライズできる値を返すことになっていると思います。 '' 'Hello" ''は無効です。 – garnaat