2017-05-08 15 views
0

オブジェクトがバケット 'test'で接頭辞 'a/b/2017/05'で作成されたときに呼び出されるAWSでラムダを構築しようとしています/ 08 'を入力します。しかし明日、それは 'a/b/2017/05/09'に書き込まれます。AWSラムダ関数は、オブジェクトがS3で作成されたときにプレフィックスを再帰的にリッスンします

'a/b'に接頭辞を設定してラムダを作成しようとしましたが、この方法では 'a/b/tmp.txt'にファイルを作成したときにのみラムダがトリガーされます。 'a/b/201/05/09'で作成した場合、ラムダはもうトリガーされません。

誰でもお手伝いできますか? Lambdaがすべてのサブディレクトリにファイルを作成するのを聞くには?ありがとう!

+0

あなたの質問は明確ではありませんが、それを再練習できますか? – kosa

+1

* "しかし、このようにして、 'a/b/tmp.txt'にファイルを作成した場合にのみ、ラムダがトリガーされます。" *これは当てはまりませんが、本当に必要な接頭辞は 'a/b/'ではなくa/b /'を使用します。 –

答えて

0

あなたの記述は真実ではありません。

オブジェクト・キー・プレフィックス-を持つS3トリガーの構成は、再帰的なです。

次のトリガの定義を参照してください。これは、このイベントによってトリガーされた簡単なラムダある enter image description here

を:

exports.handler = (event, context, callback) => { 
    let lastRecordObjectKey; 
    event.Records.forEach(record => { 
     lastRecordObjectKey = record.s3.object.key; 
     console.log(lastRecordObjectKey); 
    }); 

    callback(null, lastRecordObjectKey); 
}; 

これは再帰的なパスのそれぞれのためにそれを示す、CloudWatchのログです - ラムダが誘発された。 enter image description here

関連する問題