メニュー
AWS Lambda
開発者ガイド

シンプルな Lambda 関数を作成する

このセクションの手順に従って、シンプルな Lambda 関数を作成します。

Lambda 関数を作成するには

  1. AWS マネジメントコンソール にサインインして、AWS Lambda コンソールを開きます。

  2. AWS Lambda には、[How it works] ラベルにシンプルな Hello World 関数が用意され、[Run] オプションも含まれているため、関数を入門例として呼び出して使用できます。このチュートリアルでは、Lambda 関数を作成、テスト、更新するための追加のオプションや、Lambda コンソールに用意されたその他の機能を紹介し、それらの各オプションや機能に関する詳細へのリンクを示しています。

    続行するには、[Get Started] セクションで [Create a function] を選択します。

    注記

    コンソールに [Get Started ] ページが表示されるのは、Lambda 関数を 1 つも作成していない場合のみです。既に関数を作成している場合は、[Lambda] > [Functions] ページが表示されます。リストのページで [Create a function] を選択すると、[Create function] ページに移動します。

  3. [Create function] ページで、以下の 3 つのオプションが表示されます。

    • 一から作成

    • 設計図

    • Serverless Application Repository

    Serverless Application Repository の使用に関する詳細は「AWS Serverless Application Repository とは? (What Is the AWS Serverless Application Repository?)」をご覧ください。

    1. 設計図を確認する場合は、[Blueprints] ボタンをクリックすると、使用可能な設計図が表示されます。[Filter] を使用して、特定の設計図を検索することもできます。以下に例を示します。

      • [Filter] に「S3」と入力して、Amazon S3 イベントの処理に使用できる設計図のリストのみを取得します。

      • [Filter] に「dynamodb」と入力して、Amazon DynamoDB イベントの処理に使用できる設計図のリストのみを取得します。

    2. この [Getting Started] の練習では、[Author from scratch] ボタンを選択します。

  4. [Author from scratch] で、以下の操作を行います。

    • [Name*] で、Lambda 関数名を指定します。

    • [Runtime*] で、デフォルトの Node.js 6.10 のままにします。

    • [Role*] では、[Create new role from templates(s)] を選択します。

    • [Role name*] に、ロールの名前を入力します。

    • [Policy templates] フィールドは空白のままにします。この概要では Lambda 関数が必要とする実行権限が許可されています。

      注記

      AWS Lambda のセキュリティポリシーに関する詳細は「AWS Lambda に対する認証とアクセスコントロール」を参照してください。

    • [Create Function] を選択します。

  5. 新しい [function-name] ページで、以下の点に注目します。

    [Add triggers] パネルでは、示されているサービスオプションのいずれかを選択して、Lambda 関数を自動的にトリガーするサービスを選択することもできます。

    1. 選択したサービスによっては、そのサービスのための関連情報を提供するように求められます。たとえば、DynamoDB を選択した場合、以下を指定する必要があります。

      • DynamoDB テーブルの名前

      • バッチサイズ

      • 開始位置

    2. この例では、トリガーを設定しないでください。

    • [Function code] で、Node.js で作成されたコードが表示されています。このコードは、シンプルな "Hello from Lambda" というあいさつを返します。

    • [Handler] には、lambda_function.lambda_handler value 値が表示されます。それは filename.handler-function という形式です。コンソールでは、lambda_function.py ファイルにサンプルコードが保存されます。そのコードでは、lambda_handler が Lambda 関数が呼び出されたときにパラメーターとしてイベントを受け取る関数の名前です。詳細については、「Lambda 関数ハンドラー (Python)」を参照してください。

    • 組み込み IDE (統合開発環境) に注目します。詳細については、「AWS Lambda コンソールエディタを使用した関数の作成」を参照してください。

  6. このページには、そのほかに以下の設定オプションがあります。

    • Environment variables – Lambda 関数の環境変数により、コードへの変更を行なわないで関数コードとライブラリに設定を動的に引き渡すことができます。詳細については、「Environment Variables」を参照してください。

    • Tags – AWS リソースにアタッチするキーと値のペアであり、リソースをうまく整理できます。詳細については、「Lambda 関数へのタグ付け」を参照してください。

    • Execution role – 定義済みのロールとポリシーを使用するか、新しいものを作成して、関数のセキュリティを管理できます。詳細については、「AWS Lambda に対する認証とアクセスコントロール」を参照してください。

    • Basic settings – Lambda 関数のメモリ割り当ておよびタイムアウト制限を指示できます。詳細については、「AWS Lambda の制限」を参照してください。

    • Network – 関数がアクセスする VPC を選択できます。詳細については、「Amazon VPC 内のリソースにアクセスできるように Lambda 関数を構成する」を参照してください。

    • Debugging and error handlingデッドレターキュー リソースを選択して、失敗した関数呼び出しの再試行を分析できます。また、アクティブな追跡を有効にできます。詳細については、「AWS X-Ray を使用する」を参照してください。

    • Concurrency - この関数に特定の同時実行数の制限を割り当てることができます。詳細については、「関数レベルの同時実行数の制限」を参照してください。

    • Auditing and compliance - 運用監査、リスク監査、ガバナンス、コンプライアンスに関する関数の呼び出しをログに記録します。詳細については、「AWS CloudTrail で AWS Lambda を使用する」を参照してください。

Lambda 関数を手動で呼び出し、結果、ログ、メトリクスを確認する

ここで示す手順に従って、コンソールに用意されているサンプルイベントデータを使用して Lambda 関数を呼び出します。

  1. [yourfunction] ページで、[Test] を選択します。

  2. [Configure test event] ページで [Create new test event] を選択し、[Event template] でデフォルトの [Hello World] オプションのままにします。[Event name] に入力し、以下のサンプルイベントテンプレートに注目します。

    { "key3": "value3", "key2": "value2", "key1": "value1" }

    サンプル JSON のキーと値は変更できますが、イベント構造は変更しないでください。キーと値を変更した場合は、それに応じてサンプルコードを更新する必要があります。[Save and test] を選択します。

  3. AWS Lambda はユーザーに代わって関数を実行します。Lambda 関数の handler がサンプルイベントを受け取り、処理します。

  4. 正常に実行されると、コンソールに結果が表示されます。

    次の点に注意してください。

    • [Execution result] セクションに、実行状態として [succeeded] が表示され、また、return ステートメントで返された関数の実行結果も表示されます。

      注記

      Lambda 関数を呼び出して AWS Lambda がすぐに応答を返すようにするとき、コンソールでは常に RequestResponse 呼び出しタイプ (同期呼び出し) が使用されます。詳細については、「呼び出しタイプ」を参照してください。

    • [Summary] セクションには、[Log output] セクション (実行ログの REPORT 行) にレポートされた重要な情報が表示されます。

    • [Log output] セクションには、AWS Lambda で各実行に対して生成されるログが表示されます。これらは、Lambda 関数によって CloudWatch に書き込まれたログです。AWS Lambda コンソールには、ユーザーに便利なようにこれらのログが表示されます。

    [Click here] リンクでは、CloudWatch コンソールのログが表示されることに注意してください。次に、この関数は、Amazon CloudWatch の、Lambda 関数に対応するロググループにログを追加します。

  5. 次の手順で表示できるいくつかのメトリクスを収集するために、Lambda 関数を数回実行します。

  6. [Monitoring] タブを選択して、Lambda 関数の CloudWatch メトリクスを表示します。このページには、CloudWatch メトリクスが表示されます。

    次の点に注意してください。

    • X 軸は、現在の時刻から過去 24 時間を示します。

    • 呼び出し回数は、この間隔での呼び出しの数を示します。

    • 呼び出し時間は、Lambda 関数の実行にかかった時間を示します。実行にかかった最短時間、最長時間、平均時間が示されます。

    • 呼び出しエラーは、Lambda 関数が失敗した回数を示します。関数が実行された回数と失敗した回数 (もしあれば) を比較できます。

    • 調整された呼び出しメトリクスは、AWS Lambda が Lambda 関数呼び出しを調整したかどうかを示します。詳細については、「AWS Lambda の制限」を参照してください。

    • 同時実行メトリクスは、Lambda 関数の同時呼び出しの数を示します。詳細については、「同時実行数の管理」を参照してください。

    • AWS Lambda コンソールには、ユーザーに便利なように、これらの CloudWatch メトリクスが表示されます。それらのメトリクスのいずれかをクリックすることで、Amazon CloudWatch コンソールに表示できます。

    これらのメトリクスとその意味の詳細については、「AWS Lambda CloudWatch のメトリクス」を参照してください。

このページの内容: