AWS Lambda編~S3イベント通知機能を実装する~

せっかくなので、東京リージョンでLambdaを設定していきたいと思います。

「Get Started Now」をクリックします。

lambda-01

Lambdaでは「Function(機能)」という入れ物を使ってコードの管理を行います。

Functionを作成するにあたって、テンプレート替わりになる「blueprint(青写真)」を選ぶことができます。

今回は「s3-get-object」を選択します。

lambda-02

この画面ではイベント発信元の設定を行います。

「Bucket」に対象のs3バケットを指定し、今回は「Event type」に「Object Created」を指定します。

Event Typeにはその他にも下記を指定することが出来ます。

Complete Multipart Upload

Copy

Delete

Delete Maker Created

Object Removed

Post

Put

Complete Multipart Upload

Copy

Delete

Delete Maker Created

Object Removed

Post

Put

Reduced Redundancy Lost Object

lambda-03

この画面ではFunctionの設定を行います。

Functionの名前、説明文、コードの形式(Node.js or Java 8)を設定します。

lambda-04
今回はblueprintをそのまま使用しますので、コード部分に手を加える必要はありません。

※なお、設定内容はアップロードされたオブジェクトのメタデータ情報を取得するというものです。

lambda-05

この画面では今回はIAMロールの設定を行います。

Suggested roleで示唆されている「S3 execution role」を設定します。

lambda-06

別ウィンドウが開き、IAMロールの作成を行えます。

「IAM Role」で「Create a new IAM Role」を選択するだけで作成ができます。

また、ポリシーを確認することも出来ます。

lambda-07

確認画面では、すぐに実行させるかどうかを選択します。

問題が無ければ「Create function」をクリックします。

lambda-08

StateがEnabledになっていれば設定完了です。

lambda-09

動作確認

それでは、イベント通知を設定したS3バケットにテキストファイルをアップロードしてみます。

アップロードを実行するとそれをトリガーにLambdaへと通知が為され、CloudWatch logsに出力されます。

lambda-10

該当のLog Streamsをクリックします。

lambda-11

ログが出力されており、ファイルのメタデータとして「CONTENT TYPE: text/plain」となっているのが確認できます。

lambda-12
いかがでしたでしょうか。

今回紹介したイベント通知機能を応用してS3バケットへの不正なファイルアップロードやファイル削除を検知するという使い方もできます。

次回もお楽しみに!!

この記事を書いた人

aws-recipe-user