AWS Lambdaとは、AWSに関する何かしらのイベントにより、処理を実行する環境のことです。特定のイベントにより、処理を実行することが出来ます。例えば、S3にファイルをアップロードした時に処理を実行したり、APIサーバとしてクライアントから通信を受けた時に処理を実行するなど様々な場面で活用出来ます。

Lambdaの特徴

  • Java、Go、PowerShell、Node.js、C#、Python、Rubyの言語をサポートしている
  • 実行時間は15分までという上限がある
  • 毎月100万リクエストまで無料で使える

課金のタイミング

リクエスト数と処理の実行時間に対して課金されます。
AWS Lambdaの料金を詳しくみる

IAMロールの作成

LambdaはNode.js、Java、C#、Python、Goをサポートしていますが、今回はNode.jsを使います。まずは、Lambda関数用のIAMロールを作成します。IAMロールとは、AWSのサービスに対して権限を割り当てるための仕組みです。

IAMを検索

aws-lambda-function18
AWSマネジメントコンソールから「IAM」を検索し選択後、「ロール」→「ロールの作成」の順にクリックします。

ロールを付与する対象を選択

aws-lambda-function
次にロールを付与する対象を選択します。今回はLambdaに対するロールを作成するため、Lambdaを選択し「次のステップ:アクセス権限」をクリックします。

ロールに付与する権限を選択

aws-lambda-function10
Lambdaロールに付与する権限を選択します。今回はログの書き込み権限をもつ「AWSLambdaBasicExecutionRole」とDynamoDBへのアクセス権限をもつ「AmazonDynamoDBFullAccess」をポリシーとして加えます。

検索フォームには半角スぺース区切りで複数(OR)検索が行えますので、上記2点を探す場合「AWSLambdaBasicExecutionRole AmazonDynamoDBFullAccess」として入力すると一発で複数探せます。ポリシーを選択し終えたら「次のステップ:タグ」をクリックします。

タグの追加(オプション)

aws-lambda-function11
ここは何も入力せずに「次のステップ:確認」をクリックします。

ロール名の入力

aws-lambda-function5
次にロール名を入力します。今回は「test-lambda-role」と入力しました。そして「ロールの作成」をクリックします。

これでIAMロールの作成は完了です。

Lambda関数の作成

aws-lambda-function6
IAMロールの作成が完了したら、次にLambda関数を作成します。AWSマネジメントコンソールから「Lambda」を検索します。そして「関数の作成」をクリックします。

関数名とランタイムの設定

aws-lambda-function12
関数名は今回は「test」とし、ランタイムはnode.jsを選択しました。ランタイムとは、関数が呼び出されたときにLambda関数を実行するプログラムのことです。

アクセス権限の設定

aws-lambda-function13
先ほど作成したロールを選択し、「関数の作成」をクリックします。

Lambda関数のテスト

aws-lambda-function14
関数の作成は完了しましたので、実際にテストをしてみます。まずは「テスト」をクリックします。

イベント名を入力

aws-lambda-function15
「テスト」をクリックすると、"Key1"、"value1"などがJsonとして表示されている画面が出ます。これはテスト実行時に引数としてLambda関数に渡されるeventとなります。

このページでは、イベント名を入力します。今回は「event001」とし、「作成」をクリックします。

Lambda関数の実行

aws-lambda-function17
event001が選択されている状態で「テスト」をクリックします。

aws-lambda-function16
実行結果のログに「Hello from Lambda!」が表示されていれば成功です。