Lambda の使用を開始するには、Lambda コンソールを使用して関数を作成します。数分で関数を作成およびデプロイして、それをコンソールでテストできます。
チュートリアルを進めていくうちに、Lambda のイベントオブジェクトを使用して関数に引数を渡す方法など、Lambda の基本的な概念を学んでいきす。また、関数からログ出力を返す方法と、Amazon CloudWatch Logs で関数の呼び出しログを表示する方法についても説明します。
簡単のために、関数の作成には Python または Node.js ランタイムのいずれかを使用します。これらはインタープリター言語なので、コンソールの組み込みコードエディタで関数のコードを直接編集できます。Java や C# などのコンパイル型言語では、ローカルのビルドマシン上でデプロイパッケージを作成し、それを Lambda にアップロードする必要があります。他のランタイムを使用して Lambda に関数をデプロイする方法については、「その他のリソースと次のステップ」セクションにあるリンクを参照してください。
ヒント
サーバーレスソリューションを構築する方法については、「サーバーレスデベロッパーガイド」を参照してください。
前提条件
AWS アカウント がない場合は、以下のステップを実行して作成します。
AWS アカウントにサインアップするには
https://portal.aws.amazon.com/billing/signup
を開きます。 オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。
AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、ユーザーに管理アクセスを割り当て、ルートユーザーのみを使用してルートユーザーアクセスが必要なタスクを実行してください。
サインアップ処理が完了すると、AWS からユーザーに確認メールが送信されます。https://aws.amazon.com/
AWS アカウント にサインアップしたら、AWS アカウントのルートユーザー をセキュリティで保護し、AWS IAM Identity Center を有効にして、管理ユーザーを作成します。これにより、日常的なタスクにルートユーザーを使用しないようにします。
AWS アカウントのルートユーザーをセキュリティで保護する
-
[ルートユーザー] を選択し、AWS アカウント のメールアドレスを入力して、アカウント所有者として AWS Management Console
にサインインします。次のページでパスワードを入力します。 ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドのルートユーザーとしてサインインするを参照してください。
-
ルートユーザーの多要素認証 (MFA) を有効にします。
手順については、「IAM ユーザーガイド」で AWS アカウントのルートユーザーの仮想 MFA デバイスを有効にする方法 (コンソール) を確認してください。
管理アクセスを持つユーザーを作成する
-
IAM アイデンティティセンターを有効にします。
手順については、「AWS IAM Identity Center ユーザーガイド」の「AWS IAM Identity Center の有効化」を参照してください。
-
IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。
IAM アイデンティティセンターディレクトリ をアイデンティティソースとして使用するチュートリアルについては、「AWS IAM Identity Center ユーザーガイド」の「 Configure user access with the default IAM アイデンティティセンターディレクトリ」を参照してください。
管理アクセス権を持つユーザーとしてサインインする
-
IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM アイデンティティセンターユーザーを使用してサインインする方法については、「AWS サインイン User Guide」の「Signing in to the AWS access portal」を参照してください。
追加のユーザーにアクセス権を割り当てる
コンソールで Lambda の関数の作成
この例の関数は、"length"
および "width"
のラベルが付けられた 2 つの整数値を含む JSON オブジェクトを取り込みます。関数はこれらの値を乗算して面積を計算し、これを JSON 文字列として返します。
またこの関数は、計算された面積に加え CloudWatch ロググループの名前の表示も行います。チュートリアルの後半では、関数の呼び出しの記録を表示するための、CloudWatch Logs の使用方法を学習します。
コンソールでLambda 関数 Hello world を作成するには
Lambda コンソールの [関数ページ]
を開きます。 -
[Create function (関数の作成)] を選択します。
-
[ゼロから作る] を選択します。
-
[基本情報] ペインで、[関数名] に「
」を入力します。myLambdaFunction
-
[ランタイム] では、[Node.js 22.x] または [Python 3.13] のいずれかを選択します。
-
[アーキテクチャ] の設定は [x86_64] のままにし、[関数を作成] を選択します。
メッセージ Hello from Lambda!
を返すシンプルな関数に加えて、Lambda は、ユーザーの関数用の実行ロールも作成します。実行ロールとは、AWS のサービスおよびリソースへのアクセス許可を Lambda 関数に付与する AWS Identity and Access Management (IAM) のロールです。Lambda が作成するこのロールは、CloudWatch Logs に書き込むための基本的なアクセス許可を、ユーザーの関数に付与します。
コンソールの組み込みコードエディタを使用して、Lambda が作成した Hello world コードを独自の関数コードに置き換えます。
コンソールでコードを変更するには
-
[コード] タブを選択します。
Lambda が関数コードを作成すると、それがコンソールの組み込みコードエディタに表示されます。コードエディターに index.mjs タブが表示されない場合は、次の図に示すように、ファイルエクスプローラーで index.mjs を選択します。
-
次のコードを index.mjs タブに貼り付け、Lambda が作成したコードを置き換えます。
export const handler = async (event, context) => { const length = event.length; const width = event.width; let area = calculateArea(length, width); console.log(`The area is ${area}`); console.log('CloudWatch log group: ', context.logGroupName); let data = { "area": area, }; return JSON.stringify(data); function calculateArea(length, width) { return length * width; } };
-
[DEPLOY] セクションで、[デプロイ] を選択して関数のコードを更新します。
関数コードを把握する
次のステップに進む前に、関数コードを読む時間を作り、Lambda の主要な概念を把握しましょう。
-
Lambda ハンドラー:
ユーザーの Lambda 関数は、
handler
という名前の Node.js 関数を含んでいます。Node.js の Lambda 関数には複数の Node.js 関数を含めることができますが、コードへのエントリポイントは、常に handler 関数です。関数が呼び出されると、Lambda はこのメソッドを実行します。コンソールを使用して Hello world 関数を作成すると、Lambda は自動的に、関数のハンドラーメソッドの名前を
handler
に設定します。この Node.js 関数の名前は編集しないでください。編集すると、関数を呼び出しても Lambda はコードを実行できなくなります。Node.js の Lambda ハンドラーの詳細については、「Node.js の Lambda 関数ハンドラーの定義」を参照してください。
-
Lambda のイベントオブジェクト:
関数
handler
は 2 つの引数 (event
およびcontext
) を受け取ります。Lambda のイベントとは JSON 形式のドキュメントであり、関数で処理するためのデータが含まれています。関数が別の AWS のサービス によって呼び出された場合、イベントオブジェクトには、その呼び出しの原因となったイベントに関する情報が含まれています。例えば、オブジェクトを Amazon Simple Storage Service (Amazon S3) バケットにアップロードするときに関数を呼び出すと、そのイベントにはバケットの名前とオブジェクトキーが含まれています。
この例では、キーと値のペア 2 つを含む JSON 形式のドキュメントをコンソールに入力することで、イベントを作成しています。
-
Lambda のコンテキストオブジェクト:
この関数の 2 番目の引数は
context
です。Lambda は、ユーザーの関数に対し、自動的にコンテキストオブジェクトを渡します。コンテキストオブジェクトは、関数の呼び出しおよび実行環境に関する情報を含んでいます。モニタリング目的として、コンテキストオブジェクトを使用して関数の呼び出しに関する情報を出力できます。この例では、関数が
logGroupName
パラメータを使用して、CloudWatch ロググループの名前を出力しています。Node.js の Lambda コンテキストオブジェクトの詳細については、「Lambda コンテキストオブジェクトを使用して Node.js 関数の情報を取得する」を参照してください。
-
Lambda でのログ記録:
Node.js では、関数のログに情報を送信するために、
console.log
やconsole.error
などのコンソールメソッドを使用できます。このサンプルコードでは、計算された面積と関数の CloudWatch Logs グループの名前を出力するために、console.log
ステートメントを使用します。また、stdout
またはstderr
に書き込みを行う任意のロギングライブラリも使用できます。詳細については、「Node.js Lambda 関数のログ記録とモニタリング」を参照してください。他のランタイムでのログ記録については、関連するランタイムの「構築方法」のページを参照してください。
コンソールコードエディタを使用して Lambda 関数を呼び出す
Lambda コンソールコードエディタを使用して自分の関数を呼び出す場合、テストイベントを作成して、関数に送信します。このイベントは、キー "length"
および "width"
を使用するキーと値のペア 2 つを含む、JSON 形式のドキュメントです。
テストイベントを作成するには
-
コンソールコードエディタの [TEST EVENTS] セクションで、[テストイベントを作成] を選択します。
-
[Event Name] (イベント名) で、「
myTestEvent
」と入力します。 -
[Event JSON] セクションで、デフォルトの JSON を次のように置き換えます。
{ "length": 6, "width": 7 }
-
[Save] を選択します。
関数をテストして呼び出しレコードを表示するには
コンソールコードエディタの [TEST EVENTS] セクションで、テストイベントの横にある実行アイコンを選択します。

関数の実行が終了すると、[出力] タブにレスポンスと関数ログが表示されます。次のような結果が表示されます。
Status: Succeeded
Test Event Name: myTestEvent
Response
"{\"area\":42}"
Function Logs
START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST
2024-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42
2024-08-31T23:39:45.331Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO CloudWatch log group: /aws/lambda/myLambdaFunction
END RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a
REPORT RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Duration: 20.67 ms Billed Duration: 21 ms Memory Size: 128 MB Max Memory Used: 66 MB Init Duration: 163.87 ms
Request ID
5c012b0a-18f7-4805-b2f6-40912935034a
Lambda コンソール以外で関数を呼び出す場合は、CloudWatch Logs を使用して関数の実行結果を表示する必要があります。
CloudWatch Logs で関数の呼び出しレコードを表示するには
-
Amazon CloudWatch コンソールの [[Log groups (ロググループ)] ページ
] を開きます。 -
関数のロググループの名前を選択します (
/aws/lambda/myLambdaFunction
) 。これは関数がコンソールに出力したロググループ名です。 -
下にスクロールし、表示したい関数呼び出しのログストリームを選択します。
次のような出力が表示されます:
INIT_START Runtime Version: nodejs:22.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9 START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST 2024-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2024-08-23T22:04:15.810Z aba6c0fc-cf99-49d7-a77d-26d805dacd20 INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 REPORT RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Duration: 17.77 ms Billed Duration: 18 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 178.85 ms
クリーンアップ
作業が完了したサンプル関数は削除しておきます。また、関数のログを保存するロググループと、コンソールが作成した実行ロールも削除できます。
Lambda 関数を削除するには
-
Lambda コンソールの関数
ページを開きます。 -
作成した関数を選択します。
-
[アクション] で、[削除] を選択します。
-
テキスト入力フィールドに
confirm
と入力し、[削除] を選択します。
ロググループを削除するには
-
Amazon CloudWatch コンソールの [Log groups (ロググループ)] ページ
を開きます。 -
関数のロググループ (
/aws/lambda/myLambdaFunction
) を選択します。 -
[アクション]、[ロググループの削除] の順にクリックします。
-
ロググループの削除ダイアログボックスで、[削除] をクリックします。
実行ロールを削除するには
-
AWS Identity and Access Management (IAM) コンソールの [Roles (ロール)] ページ
を開きます。 -
関数の実行ロールを選択します (
myLambdaFunction-role-
など)。31exxmpl
-
[削除] を選択します。
-
[ロールを削除] ダイアログボックスにロール名を入力し、[削除] を選択します。
その他のリソースと次のステップ
コンソールを使用してシンプルな Lambda 関数を作成してテストを行ったので、次の各ステップを実行します。
-
自分の関数に依存関係を追加し、.zip デプロイパッケージを使用してデプロイする方法を学習します。次のリンクから任意の言語を選択します。
-
別の AWS のサービスを使用して Lambda 関数を呼び出す方法については、「チュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出す」を参照してください。
-
これより複雑な、他の AWS のサービスで Lambda を使用する例については、次のチュートリアルのいずれかを選択してください。
-
チュートリアル: API Gateway で Lambda を使用する: Lambda 関数を呼び出す Amazon API Gateway REST API を作成します。
-
チュートリアル: Lambda 関数を使用して Amazon RDS にアクセスする: Lambda 関数を使用して RDS Proxy 経由で Amazon Relational Database Service (Amazon RDS) データベースにデータを書き込みます。
-
チュートリアル: Amazon S3 トリガーを使用してサムネイル画像を作成する: Lambda 関数を使用して、イメージファイルが Amazon S3 バケットにアップロードされるたびにサムネイルを作成します。
-