• イベントトリガーの設定
  • 実行するコードの設定
  • ロールの設定

 

イベントトリガーの設定

AWSコンソールでサービスの中からLambdaを選択して、Balnk Functionなどのblueprint選択を行うと、最初に「Configure triggers」というコードが実行されるトリガーとなるイベントの設定画面となります。

Lambdaのコードを実行するトリガーとなるイベントの発生元となるAWSリソースは、
– Amazon S3
– Amazon Kinesis
– Amazon DynamoDB Stream
の三種類です。各イベントソースごとにファンクション起動の挙動に違いがありますが、基本的にはイベントごとにファンクションが起動され、PushモデルとPullモデルの2種類があります。

Pushモデル
Amazon S3のモデル。S3にファイルが格納される等のイベントが発生した場合に、S3がLambdaにイベントを通知するモデルです。3回までリトライを行います。

Pullモデル
Amazon DynamoDBトAmazon Kinesisのモデル。ストリームに入ってきた順に処理。イベントソースとして登録したストリームに対して、Lambda側から取得するモデルで、データが期限切れになるまでリトライします。

 

 

実行するコードの設定

次に、「Configure function」というLambdaで実行するコードの設定画面です。まずは処理名を決めて入力した後に、コードの設定を行います。コンソールで直接コードを入力していくこともできますし、Zipファイルをアップロードすることもできます。コンソールから直接コードを入力した場合にはモジュールを利用することはできません。

プログラミングモデルとしては、イベントのデータをeventパラメータとして渡す形となります。基本的には、JSON形式ですが、サービスごとに具体的なデータ形式は異なります。

処理の終了時にはcontext.done()を呼び出します。

「Configure function」の画面下にあるAdvanced settingsでリソースサイズの設定を行います。メモリサイズの指定として128MBから64MB単位で指定できるとともに、タイムアウト時間を1秒から60秒の間で設定可能です。

 

 

ロールの設定

Lambda関数(ファンクション)はそれぞれの権限設定としてIAMロールを設定する必要があります。Lambdaの権限設定はInvocation RoleとExecution Roleの2種類のロールを設定します。

Invocation Role:  誰がそのファンクションを実行できるかを指定
Execution Role:  そのファンクションがどのAWSのリソースに対してどのようなアクションを行うことができるかを指定

Lambdaファンクション作成時にAWS Lambda側で自動的に作成させることも可能ですが、自動作成されるロールは簡単なものとなってしまうため、細かく制御したい場合には、そのためのIAMロールを作成して当該Lambda関数(ファンクション)のロールとして指定する必要があります。

Invocation Role, Execution Roleそれぞれの説明と例については、下記のスライド下の▶︎を押して順に手順をご覧ください。

 

 

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

参考文献