- イベントトリガーの設定
- 実行するコードの設定
- ロールの設定
イベントトリガーの設定
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それぞれの説明と例については、下記のスライド下の▶︎を押して順に手順をご覧ください。
本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。
参考文献