【AWS】S3 PUTトリガー設定

1. 使用するサービス

(AWS)

  • S3
  • Lambda


2.概要

S3のバケットに対するPUTアクションに対するLambdaの処理を説明します。
主に、簡単なS3の設定と、Lambdaでのその内容の取得の仕方を説明します。

3. 実装

3-1. S3の設定

通知設定の部分が、トリガーの設定になります。Lambda側のトリガー設定でも同様です。

s3_notification
S3トリガー設定

イベント名等の設定を行います。Prefixを設定すれば、Prefix毎のS3トリガーを設定出来ます。Event TypeはPUTなどS3のトリガーアクションの設定になります。PUT意外にもDELETEなど多種あります。

S3_event
S3イベント設定

トリガーの設定でLambdaを設定します。指定方法はARNとLambda名がありますが、どちらでもいいです。

S3_trigger
S3トリガー設定


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を投げる方法を説明しようかと思います。