APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

S3 × EventBridge × Lambda の連携手順

はじめに

こんにちは、株式会社エーピーコミュニケーションズの西村です。
今回はS3にファイルを置くとLambdaが動くシンプルな構成を作成しました。

目次

構成図

手順

1.Lambda関数を作成する。

基本的な情報には以下の値を入力する。

  • オプション:一から作成
  • 関数名:<任意>
  • ランタイム:Python3.12
  • アーキテクチャ:x86_64

コードソースにコードを張り付けdeployをクリックする。

※サンプルコード 

def lambda_handler(event, context):
    # 1. 届いたデータの中から「バケット名(フォルダ名)」を取り出す
    bucket = event['detail']['bucket']['name']
    
    # 2. 届いたデータの中から「ファイル名」を取り出す
    file_name = event['detail']['object']['key']
    
    # 3. 画面(ログ)に「〇〇というバケットに、△△というファイルが届いたよ!」と表示する
    print(f"S3にファイルが届きました!")
    print(f"場所:{bucket}")
    print(f"名前:{file_name}")

    # 4. 最後に「無事に終わったよ」という合図を送る
    return "完了!"

2.S3バケットを作成する

一般的な設定には以下の値を入力する。

  • バケットタイプ:汎用
  • バケット名:任意

プロパティをクリックする。

Amazon Event Bridgeセクションで編集をクリックする。

Amazon Event Bridgeの通知の送信をonにする。

3.EventBridgeを作成する

トリガーイベントにS3のObject Createdを設定する。
※bucketnameは作成したS3バケット名を設定してください。

ターゲットにLamda関数を設定する。

作成をクリックすると画面が表示されるため任意のRule nameを入力して作成する。

4.テストを実施する

S3にテスト用のファイルをアップロードする。

LamdaのモニタリングからCloudwatchログを表示をクリックする。

対象のログストリームをクリックする。

Lamda関数に設定した内容がログから確認できる。