を拡張:AWSラムダハンドラは、私は、次のパイプラインを持っているS3event
ファイルをS3にアップロードされ、それはいくつかの処理を実行しないラムダを(のはL1それを呼びましょう)がトリガされます。あなたは "テスト" セクションで、このJSONを渡すと
{
"Records": [
{
"awsRegion": "xxxxx",
"eventName": "ObjectCreated:Put",
"eventSource": "aws:s3",
"eventTime": "2017-09-12T09:27:59.471Z",
"eventVersion": "2.0",
"requestParameters": {
"sourceIPAddress": "xxxxxx"
},
"responseElements": {
"x-amz-id-2": "xxxxxx",
"x-amz-request-id": "xxxx"
},
"s3": {
"configurationId": "xxxxxx1",
"bucket": {
"name": "xxxxx",
"ownerIdentity": {
"principalId": "xxxxx"
},
"arn": "xxx"
},
"object": {
"key": "xxx",
"size": xxx,
"eTag": "xxxx",
"versionId": null,
"sequencer": "xxx",
"urlDecodedKey": "xxx"
},
"s3SchemaVersion": "1.0"
},
"userIdentity": {
"principalId": "xxxx"
}
}
],
}
:
だから現時点では、私のエントリポイントは次のようになります。
public Response handleRequest(S3Event event, Context context) {
....
}
さて、S3Event JSONは次のようになります成功するでしょう。
は今、ポイントに:私はこのようになります。このJSON、何かに情報を追加したい:
{
"Records": [
{
"awsRegion": "xxxxx",
"eventName": "ObjectCreated:Put",
"eventSource": "aws:s3",
"eventTime": "2017-09-12T09:27:59.471Z",
"eventVersion": "2.0",
"requestParameters": {
"sourceIPAddress": "xxxxxx"
},
"responseElements": {
"x-amz-id-2": "xxxxxx",
"x-amz-request-id": "xxxx"
},
"s3": {
"configurationId": "xxxxxx1",
"bucket": {
"name": "xxxxx",
"ownerIdentity": {
"principalId": "xxxxx"
},
"arn": "xxx"
},
"object": {
"key": "xxx",
"size": xxx,
"eTag": "xxxx",
"versionId": null,
"sequencer": "xxx",
"urlDecodedKey": "xxx"
},
"s3SchemaVersion": "1.0"
},
"userIdentity": {
"principalId": "xxxx"
}
}
],
"MyErrorMessage":
{
"EnvelopeErrors": [
{
"EnvelopeErrorTrace": "stackTrace",
"EnvelopeErrorPositions": 1,
"EnvelopeErrorLength": 2
},
{
"EnvelopeErrorTrace": "SecondTrace",
"EnvelopeErrorPositions": 3,
"EnvelopeErrorLength": 4
}
],
}
}
お知らせがS3Event JSONですが、少しより多くのデータを。
私の質問の問題は次のとおりです。純粋なS3Eventが呼び出されたときにも動作するカスタム入力が必要です。
public Response handleRequest(MyS3Event event, Context context) {
....
}
しかし、私はこれを達成できませんでした。
私はカスタムPOJOを試しましたが、S3にファイルをアップロードすると機能しません。 S3Event拡張クラス(S3Eventが拡張されています)を拡張しようとしましたが、やはり成功しませんでした。
私は何をしようとしていますか?
s3イベントjsonにデータを追加することで、何を達成したいですか? 理想的には、イベント駆動型環境で作業する場合、イベントの属性が非常に特定のデータを扱うので、イベントの属性は一定です。 – Suyash
@ Suyash元のイベントに情報を追加して元のファイルを再処理します。しかし、完全ではなく、その一部だけが追加情報を使用しています。 – Alessandroempire
あなたのラムダがS3Eventを受け取ったら、それを変更したいと思います。同じlambdaが再び処理する必要がありますが、今回は変更されたデータで処理する必要がありますか? – Suyash