【AWS】S3 PUTトリガー設定
1. 使用するサービス
(AWS)
- S3
- Lambda
2.概要
S3のバケットに対するPUTアクションに対するLambdaの処理を説明します。
主に、簡単なS3の設定と、Lambdaでのその内容の取得の仕方を説明します。
3. 実装
3-1. S3の設定
通知設定の部分が、トリガーの設定になります。Lambda側のトリガー設定でも同様です。
イベント名等の設定を行います。Prefixを設定すれば、Prefix毎のS3トリガーを設定出来ます。Event TypeはPUTなどS3のトリガーアクションの設定になります。PUT意外にもDELETEなど多種あります。
トリガーの設定でLambdaを設定します。指定方法はARNとLambda名がありますが、どちらでもいいです。
3-2. Lambda実装
Lambdaのevent引数からトリガーから送られてくる内容を取得します。
import json def handler(event, context): messages = event['Records'] for message in messages: body = json.loads(message['body']) print(body) """ Lambdaの処理 """
以上でわかるようにトリガーの内容は配列で複数来ることがあるので、
for文で回して対応するのがbetterかと思います。
4. おわりに
今回はLambdaの非同期処理であるS3のトリガーを説明しましたが、SQSでの非同期処理、特にVPC内のLambdaからSQSを投げる方法を説明しようかと思います。