Lambda の開始方法
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 (successor to AWS Single Sign-On) の管理ユーザーに管理アクセスを割り当てます。
手順については、AWS IAM Identity Center (successor to AWS Single Sign-On) ユーザーガイドの「開始方法」を参照してください。
管理ユーザーとしてサインインする
-
IAM Identity Center ユーザーとしてサインインするには、IAM Identity Center ユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドの「AWS アクセスポータルにサインインする」を参照してください。
コンソールで Lambda の関数の作成
この開始方法演習では、ブループリントを使用して Lambda 関数を作成します。ブループリントは、最小限の処理を行うためのサンプルコードを提供します。ほとんどのブループリントは、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、またはカスタムアプリケーションなどの特定のイベントソースからのイベントを処理します。
コンソールで Lambda 関数を作成するには
Lambda コンソールの [Functions]
(関数) ページを開きます。 -
[Create function] (関数の作成) を選択します。
-
[Use a blueprint] (設計図の使用) を選択します。
-
[ブループリントを選択] ドロップダウンリストを開き、[Hello world 関数] を検索します。ブループリントの
nodejs14.x
バージョンまたはpython3.7
バージョンを選択します。 -
[Function name] (関数名) を入力します。
-
[Execution role] (実行ロール) で [Create a new role with basic Lambda permissions] (基本的な Lambda アクセス権限で新しいロールを作成) を選択します。Lambda が、Amazon CloudWatch にログをアップロードする関数許可を付与する実行ロールを作成します。この Lambda 関数は、ユーザーの関数が呼び出される際に実行ロールを引き受け、そのロールを使用して AWS SDK のための認証情報を作成し、イベントソースからデータを読み取ります。
関数を呼び出す
コンソールから関数を呼び出すには、テストイベントを作成します。
-
[Test] (テスト) タブを選択します。
-
[Test event action] (イベントアクションをテスト) で、[Create new event] (新しいイベントを作成) を選択します。
-
[Event name] (イベント名) には、テストイベントの名前を入力します。
-
[Event sharing settings] (イベント共有の設定) で、[Private] (プライベート) を選択します。
-
[Template] (テンプレート) では、デフォルトの [hello-world] オプションを維持します。
-
[Event JSON] (イベント JSON) で、
value1
をhello, world!
に置き換えます。key1
やイベント構造は変更しないでください。例:{ "key1": "
hello, world!
", "key2": "value2", "key3": "value3" } -
[Save] (保存) を選択してから、[Test] (テスト) を選択します。Lambda がユーザーに代わって関数を呼び出します。関数ハンドラーがサンプルイベントを受け取って、処理します。
-
[Execution result] (実行結果) を確認します。[Details] (詳細) に、手順 6 で入力した値 (
"hello, world!"
) が表示されます。実行結果には、以下の情報も含まれています。-
[Summary] (概要) セクションには、呼び出しログの
REPORT
行からの主な情報が表示されます。 -
[Log output] (ログ出力) セクションには、完全な呼び出しログが表示されます。Lambda は、呼び出しログのすべてを Amazon CloudWatch に書き込みます。
-
-
[Test] (テスト) を選択して関数をさらに数回呼び出し、次のステップで表示できる追加のメトリクスを収集します。
-
[Monitor] (モニタリング) タブを選択します。このページには、Lambda が CloudWatch に送信するメトリクスのグラフが表示されます。
注記 関数の呼び出し後にログが表示されるまでは、5~10 分かかる場合があります。
これらのグラフの詳細Lambda コンソールでの関数のモニタリングを参照してください。
クリーンアップ
サンプル関数の使用が終了したら、削除します。コンソールが作成した実行ロールと、関数のログを保存するためのロググループも削除できます。
Lambda 関数を削除するには
Lambda コンソールの [Functions]
(関数) ページを開きます。 -
関数を選択します。
-
[Actions] (アクション)、[Delete] (削除) の順に選択します。
-
[Delete function] (関数の削除) ダイアログボックスに「削除」と入力してから、[Delete] (削除) を選択します。
ロググループを削除するには
-
Amazon CloudWatch コンソールの [Log groups (ロググループ)] ページ
を開きます。 -
関数のロググループ (
/aws/lambda/my-function
) を選択します。 -
[アクション]、[ロググループの削除] の順にクリックします。
-
ロググループの削除ダイアログボックスで、[削除] をクリックします。
実行ロールを削除するには
-
AWS Identity and Access Management (IAM) コンソールの [Roles (ロール)] ページ
を開きます。 -
関数の実行ロールを選択します (
my-function-role-
など)。31exxmpl
-
[Delete] (削除) をクリックします。
-
[Delete role] (ロールの削除) ダイアログボックスにロール名を入力し、[Delete] (削除) を選択します。
AWS CloudFormation と AWS Command Line Interface (AWS CLI) を使用して、関数、ロググループ、ロールの作成とクリーンアップを自動化できます。完全に機能するサンプルアプリケーションについては、「Lambda サンプルアプリケーション」を参照してください。
その他のリソース
最初の Lambda 関数を作成したら、以下のチュートリアルを試してください。
-
チュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出す: Lambda コンソールを使用して、Amazon S3 バケットにオブジェクトを追加するたびに関数を呼び出すトリガーを作成します。
-
チュートリアル: API Gateway で Lambda を使用する: Lambda 関数を呼び出す Amazon API Gateway REST API を作成します。
-
チュートリアル: スケジュールされたイベントでの AWS Lambda の使用: 毎分実行されるように Lambda 関数を設定します。関数がエラーを返すときに E メールで通知するように Amazon Simple Notification Service (Amazon SNS) を設定します。
Lambda を使用したサーバーレスアプリケーション開発の詳細については、以下を参照してください。
-
AWS オンラインテクニカルトーク
YouTube チャンネルには、Lambda 関連トピックに関する動画が投稿されています。サーバーレスアプリケーションと Lambda の概要については、「AWS Lambda とサーバーレスアプリケーションの概要 」ビデオを参照してください。
Lambda へのアクセス
Lambda 関数は、以下のインターフェイスのいずれかを使用して、作成、呼び出し、および管理できます。
-
AWS マネジメントコンソールは、関数にアクセスするためのウェブインターフェースを提供します。詳細については、「Lambda コンソール」を参照してください。
-
AWS Command Line Interface (AWS CLI) – Lambda を含むさまざまな AWS サービス用のコマンドを備え、Windows、macOS、Linux でサポートされています。詳細については、「AWS CLI での Lambda の使用」を参照してください。
-
AWS SDK – 言語固有の API を提供し、署名の計算、リクエストの再試行処理、エラー処理など、各種接続の詳細を管理します。詳細については、AWSSDK
をご参照ください。 -
AWS CloudFormation – Lambda アプリケーションを定義するテンプレートを作成します。詳細については、「AWS Lambda アプリケーション 」を参照してください。AWS CloudFormation は AWS Cloud Development Kit (AWS CDK)
もサポートしています。 -
AWS Serverless Application Model (AWS SAM) – AWSサーバレスアプリケーションを設定および管理するためのテンプレートと CLI を提供します。詳細については、「AWS SAM の使用開始」を参照してください。
関数の作成とデプロイ
以下の表は、Lambda がサポートする言語と、それらで使用できるツールとオプションのリストです。利用できるツールとオプションは、以下の応じて異なります。
-
Lambda 関数コードの書き込みに使用する言語。
-
コードで使用するライブラリ。Lambda ランタイムは、いくつかのライブラリを提供しています。使用するライブラリを追加する場合、それらをアップロードする必要があります。
言語 | コードを作成するためのツールとオプション |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
デプロイパッケージを使用して、関数コードを Lambda にデプロイします。Lambda では、次の 2 種類のデプロイパッケージがサポートされます。
関数コードとその依存関係を格納している ZIP ファイルアーカイブ。
Open Container Initiative (OCI)
の仕様に準拠したコンテナーイメージ。