LoginSignup
0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【AWS】S3バケットのファイル作成をトリガーにLambdaを実行する

Posted at

はじめに

AWSのS3バケットにファイルをアップロードすることをトリガーにしてLambda関数を実行する方法について勉強したので備忘録も兼ねて本記事にまとめています。本記事では、S3バケットとLambda関数の設定手順、およびトリガーの設定方法を記載する。

環境

python 3.12

S3側の準備

Lambdaから指定するバケットを作成します。

  1. Amazon S3 > バケット > バケットを作成 を選択。
  2. 任意のバケット名を入力し、右下のバケットを作成をクリック。(本記事ではバケット名をtest-lambda-trigger1とします。)

image.png

Lambda側の準備

関数の作成

  1. Lambda > 関数 > 関数の作成 から新規でLambdaを作成します。
  2. 任意の関数名を入力し、右下の関数の作成をクリック。(本記事では関数名をtest-s3-lambdaとします。)

image.png

トリガーの設定

  1. 設定タブ > トリガー > トリガーの追加から選択。

image.png

2. 先ほど作成したバケット名(test-lambda-trigger1)と入力し再帰呼び出しの項目にチェックを入れ右下の追加ボタンをクリック。
S3のバケット内にフォルダを作成している場合は、任意のフォルダパスをプレフィックスに記載する。

image.png

トリガーを設定する際に、同一のバケットで条件が同じものをトリガーにすることはできないので注意する。
既存のLambdaで同じバケットのトリガー条件がある上で、新規のLambdaで同じバケット、トリガーを指定しようとするとエラーが発生します。

trigger の作成中にエラー が発生しました: Configurations overlap. Configurations on the same bucket cannot share a common event type.

image.png

ソース

lambda_function.py
def lambda_handler(event, context):
    print('Hello Lambda')
    return 

実行 & 結果確認

任意のファイルをS3にアップロードし、Lambdaが実行されたか動作を確認する。
バケットにファイルをアップロード後、CloudWatchのログを確認すると、Hello Lambdaのログが出ていることが確認できました。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0