AWS Lambda でS3にファイルがアップロードされたのを検知する

今回は AWS Lambda を使ってS3にファイルがアップロードされたのを検知します。

その後に色々やりたいのですが、まずは今回は検知だけで。

AmazonS3の設定

試験しやすいようにAWS CLIを使って以下のようにバケットの作成を行います。
[crayon-5dfb517a9a3c0471767170/] バケットが作成されました。

そしてローカルのテストファイルを作成します。
[crayon-5dfb517a9a3d3172800777/]  

こちらをAWS CLIでアップロード。
[crayon-5dfb517a9a3d8023901399/]  

一旦、ファイルは削除いたします。
[crayon-5dfb517a9a3dd207201914/]  

S3側の準備はここまでです。

 

AWS Lambda の設定

まずAWSコンソールからLambdaにアクセスします。

「関数の作成」をクリックします。

AWS Lambda

 

「関数の作成」の「一から作成」を選択された状態にします。

AWS Lambda

 

名前を「myFirstTest」として「ロール」セレクトボックスの部分をクリックします。

AWS Lambda

 

「カスタムロールの作成」をクリックします。

 

特に変更せず、右下の「許可」をクリックします。

 

既存のロールで「lambda_basic_execution」が選ばれたので右下の「関数の作成」をクリックします。

 

「myFirstTest」の関数が作成されました。

 

 

トリガーを追加するために左側のメニューから「S3」を選択します。

 

トリガーの設定を以下にします。

バケット sample-app01.developer-collaboration.com
イベントタイプ オブジェクトの作成(すべて)
プレフィックス input

右下の「追加」をクリックします。

 

S3のトリガーが「保存されていない変更」で追加されているのが確認できました。

 

 

次に「myFirstTest」のLambda関数の部分をクリックします。

「index.js」を上記のように変更します。

設定したファイルは以下になります。
[crayon-5dfb517a9a3e6391700616/]  

 

右上の「保存」ボタンをクリックします。

こちらでトリガーの設定は完了です。

 

S3の操作

再度、AWS CLIに戻りS3にファイルをアップしてみます。
[crayon-5dfb517a9a3f0224337047/]  

「モニタリング」タブを確認すると以下のようにイベントの発動がモニタリングできます。

 

また「CloudWatchのログを表示」を押すと以下のようなイベントのログが表示できます。

 

こちらで無事、ファイルのアップロードの検知が実施できました。

今回はコンソールを使った基本的な動きを試してみたので、次回はもう少し複雑な動作などを試してみます。

 

【関連記事】
AWS LambdaでS3にファイルがアップロードされたら、加工して別フォルダにファイルを作成する(Python)
外部のライブラリを利用してのAWS Lambdaの設定
AWS Lambdaをpython-lambda-localとlambda-uploaderを使ってローカル開発してみる