最初の Lambda 関数を作成する
Lambda の使用を開始するには、Lambda コンソールを使用して関数を作成します。数分で関数を作成およびデプロイして、それをコンソールでテストできます。
チュートリアルを進めていくうちに、Lambda のイベントオブジェクトを使用して関数に引数を渡す方法など、Lambda の基本的な概念を学んでいきす。また、関数からログ出力を返す方法と、CloudWatch Logs で関数の呼び出しログを表示する方法についても学習します。
簡単のために、関数の作成には Python または Node.js ランタイムのいずれかを使用します。これらはインタープリター言語なので、コンソールの組み込みコードエディタで関数のコードを直接編集できます。Java や C# などのコンパイル型言語では、ローカルのビルドマシン上でデプロイパッケージを作成し、それを Lambda にアップロードする必要があります。他のランタイムを使用して Lambda に関数をデプロイする方法については、「その他のリソースと次のステップ」セクションにあるリンクを参照してください。
ヒント
サーバーレスソリューションを構築する方法については、「サーバーレスデベロッパーガイド」を参照してください。
前提条件
AWS アカウント がない場合は、以下のステップを実行して作成します。
AWS アカウントにサインアップするには
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。
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 ユーザーガイド」の「デフォルト IAM アイデンティティセンターディレクトリを使用したユーザーアクセスの設定」を参照してください。
管理アクセス権を持つユーザーとしてサインインする
-
IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドのAWS アクセスポータルにサインインするを参照してください。
コンソールで Lambda の関数の作成
この例の関数は、"length"
および "width"
のラベルが付けられた 2 つの整数値を含む JSON オブジェクトを取り込みます。関数はこれらの値を乗算して面積を計算し、これを JSON 文字列として返します。
またこの関数は、計算された面積に加え CloudWatch ロググループの名前の表示も行います。チュートリアルの後半では、関数の呼び出しの記録を表示するための、CloudWatch Logs の使用方法を学習します。
自分の関数を作成するには、まずコンソールを使用して基本の Hello world 関数を作成します。その後のステップで、独自の関数コードを追加します。
コンソールでLambda 関数 Hello world を作成するには
Lambda コンソールの [関数ページ]
を開きます。 -
[Create function (関数の作成)] を選択します。
-
[ゼロから作る] を選択します。
-
[基本情報] ペインで、[関数名] に「
」を入力します。myLambdaFunction
-
[ランタイム] では、[Node.js 20.x] または [Python 3.12] のいずれかを選択します。
-
[アーキテクチャ] の設定は [86_64] のままにし、[関数を作成] を選択します。
Lambda はメッセージ Hello from Lambda!
を返す関数を作成します。また Lambda は、ユーザーの関数のための実行ロールも作成します。実行ロールとは、AWS のサービス およびリソースに対するアクセス許可を Lambda 関数に付与する AWS Identity and Access Management (IAM) のロールです。Lambda が作成するこのロールは、CloudWatch Logs に書き込むための基本的なアクセス許可を、ユーザーの関数に付与します。
これで、コンソールの組み込みコードエディターを使用して、Lambda が作成した Hello world コードを独自の関数コードに置き換えることができるようになります。
コンソールを使用して Lambda 関数を呼び出す
Lambda コンソールを使用して自分の関数を呼び出すには、まずテストイベントを作成して、それを関数に送信します。このイベントは、キー "length"
および "width"
を使用するキーと値のペア 2 つを含む、JSON 形式のドキュメントです。
テストイベントを作成するには
-
プライマリサイドバーで、[TEST EVENTS] セクションを展開し、[テストイベントを作成] を選択します。
-
[新しいテストイベントの作成] タブで、イベント名 に
myTestEvent
を入力します。 -
[イベント JSON] パネルに、以下を貼り付けてデフォルト値を置き換えます。
{ "length": 6, "width": 7 }
-
[Save] を選択します。
これで、関数をテストし、Lambda コンソールと CloudWatch Logs を使用して関数呼び出しのレコードを表示できるようになります。
関数をテストして呼び出しのレコードをコンソールに表示するには
-
プライマリサイドバーの [TEST EVENTS] セクションで、テストイベントの横にある実行アイコンを選択します。関数の実行が終了すると、[実行結果] タブに応答と関数ログが表示されます。次のような結果が表示されます。
この例では、コードの呼び出しにコンソールのテスト機能を使用しました。つまり、関数の実行結果は、コンソールに直接表示できます。関数呼び出しがコンソールの外部で行われる場合は、CloudWatch Logs を使用する必要があります。
CloudWatch Logs で関数の呼び出しレコードを表示するには
-
Amazon CloudWatch コンソールの [[Log groups (ロググループ)] ページ
] を開きます。 -
関数のロググループの名前を選択します (
/aws/lambda/myLambdaFunction
) 。これは関数がコンソールに出力したロググループ名です。 -
[ログストリーム] タブで、関数呼び出しに対応するログストリームを選択します。
次のような出力が表示されます:
クリーンアップ
作業が完了したサンプル関数は削除しておきます。また、関数のログを保存するロググループと、コンソールが作成した実行ロールも削除できます。
Lambda 関数を削除するには
Lambda コンソールの [関数ページ]
を開きます。 -
関数を選択します。
-
[Actions] (アクション)、[Delete] (削除) の順に選択します。
-
[Delete function] (関数の削除) ダイアログボックスに「削除」と入力してから、[Delete] (削除) を選択します。
ロググループを削除するには
-
Amazon CloudWatch コンソールの [Log groups (ロググループ)] ページ
を開きます。 -
関数のロググループ (
/aws/lambda/my-function
) を選択します。 -
[アクション]、[ロググループの削除] の順にクリックします。
-
ロググループの削除ダイアログボックスで、[削除] をクリックします。
実行ロールを削除するには
-
AWS Identity and Access Management (IAM) コンソールの [Roles (ロール)] ページ
を開きます。 -
関数の実行ロールを選択します (
myLambdaFunction-role-
など)。31exxmpl
-
[削除] を選択します。
-
[Delete role] (ロールの削除) ダイアログボックスにロール名を入力し、[Delete] (削除) を選択します。
AWS CloudFormation と AWS Command Line Interface (AWS CLI) を使用して、関数、ロググループ、ロールの作成とクリーンアップを自動化できます。
その他のリソースと次のステップ
ここまでで、コンソールを使用し簡単な Lambda 関数を作成してテストを行ったので、次の各ステップを実行します。
-
自分のコードに依存関係を追加し、.zip デプロイパッケージを使用してデプロイする方法を学習します。以下のリンクから、関心のある言語を選択してください。
-
別の AWS のサービス から Lambda 関数を呼び出すための設定方法を学習するには、「チュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出す」を実行します。
-
これより複雑な、他の AWS のサービス で Lambda を使用する例については、次のチュートリアルのいずれかを選択してください。
-
Amazon 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 バケットにアップロードされるたびにサムネイルを作成します。
-