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 アカウント のメールアドレスを入力して、アカウント所有者として AWS Management Console
にサインインします。次のページでパスワードを入力します。 ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「ルートユーザーとしてサインインする」を参照してください。
-
ルートユーザーの多要素認証 (MFA) を有効にします。
手順については、IAM ユーザーガイドの「AWS アカウント のルートユーザーの仮想 MFA デバイスを有効にする (コンソール)」を参照してください。
管理ユーザーを作成する
-
日常的な管理タスクのためには、AWS IAM Identity Center の管理ユーザーに管理アクセスを割り当てます。
手順については、AWS IAM Identity Center ユーザーガイドの「開始方法」を参照してください。
管理ユーザーとしてサインインする
-
IAM Identity Center ユーザーとしてサインインするには、IAM Identity Center ユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「AWS アクセスポータルにサインインする」を参照してください。
コンソールで Lambda の関数の作成
この例の関数は、"length"
および "width"
のラベルが付けられた 2 つの整数値を含む JSON オブジェクトを取り込みます。関数はこれらの値を乗算して面積を計算し、これを JSON 文字列として返します。
またこの関数は、計算された面積に加え CloudWatch ロググループの名前の表示も行います。チュートリアルの後半では、関数の呼び出しの記録を表示するための、CloudWatch Logs の使用方法を学習します。
自分の関数を作成するには、まずコンソールを使用して基本の Hello world 関数を作成します。その後のステップで、独自の関数コードを追加します。
コンソールでLambda 関数 Hello world を作成するには
Lambda コンソールの関数ページ
を開きます。 -
[機能の作成]を選択します。
-
[ゼロから作る] を選択します。
-
[基本情報] ペインで、[関数名] に「
」を入力します。myLambdaFunction
-
[ランタイム] では、[Node.js 18.x] または [Python 3.11] のいずれかを選択します。
-
[アーキテクチャ] の設定は [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 形式のドキュメントです。
テストイベントを作成するには
-
[コードソース] ペインで、[テスト] を選択します。
-
[新しいイベントを作成] を選択します。
-
[イベント名] に、「
myTestEvent
」を入力します。 -
[イベント JSON] パネルに、以下を貼り付けてデフォルト値を置き換えます。
{ "length": 6, "width": 7 }
-
[Save (保存)] を選択します。
これで、関数をテストし、Lambda コンソールと CloudWatch Logs を使用して関数呼び出しのレコードを表示できるようになります。
関数をテストして呼び出しのレコードをコンソールに表示するには
-
[コードソース] ペインで、[テスト] を選択します。関数の実行が終了すると、[実行結果] タブに応答と関数ログが表示されます。次のような結果が表示されます。
この例では、コードの呼び出しにコンソールのテスト機能を使用しました。つまり、関数の実行結果は、コンソールに直接表示できます。関数呼び出しがコンソールの外部で行われる場合は、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] (削除) をクリックします。
-
[Delete role] (ロールの削除) ダイアログボックスにロール名を入力し、[Delete] (削除) を選択します。
AWS CloudFormation と AWS Command Line Interface (AWS CLI) を使用して、関数、ロググループ、ロールの作成とクリーンアップを自動化できます。
その他のリソースと次のステップ
ここまでで、コンソールを使用し簡単な Lambda 関数を作成してテストを行ったので、次の各ステップを実行します。
-
自分のコードに依存関係を追加し、.zip デプロイパッケージを使用してデプロイする方法を学習します。以下のリンクから、関心のある言語を選択してください。
-
別の AWS のサービス から Lambda 関数を呼び出すための設定方法を学習するには、「チュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出す」を実行します。
-
これより複雑な、他の AWS のサービス で Lambda を使用する例については、次のチュートリアルのいずれかを選択してください。
-
Amazon API Gateway で AWS Lambda を使用する: Lambda 関数を呼び出す Amazon API Gateway REST API を作成します。
-
チュートリアル: Lambda 関数を使用して Amazon RDS にアクセスする: Lambda 関数を使用して RDS プロキシ経由で Amazon Relational Database Service (Amazon RDS) データベースにデータを書き込みます。
-
チュートリアル: Amazon S3 トリガーを使用してサムネイル画像を作成する: Lambda 関数を使用して、イメージファイルが Amazon S3 バケットにアップロードされるたびにサムネイルを作成します。
-