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

ステップ 2.1: Hello World Lambda 関数を作成する

このセクションの手順に従って、Hello World Lambda 関数を作成します。このステップでは以下の作業を行います。

  • 設計図を選択する – この演習では、[hello-world-python] 設計図を使用しています。その設計図には、Python で作成するサンプルコードが用意されています。Lambda 関数に使用する言語は、この演習には重要ではありません。後で、サポートされているいずれかの言語で独自の Lambda 関数を作成できます。

    設計図には、何らかの最小限の処理を行うためのサンプルコードが用意されています。ほとんどの設計図では、特定のイベントソース (Amazon S3、DynamoDB、カスタムアプリケーションなど) のイベントを処理します。たとえば、[s3-get-object] 設計図を選択した場合、Amazon S3 によって発行されて Lambda がパラメータとして受け取る、オブジェクト作成イベントを処理するサンプルコードが用意されています。

  • 関数を設定する – この演習では設計図を選択するため、コンソールでは設定情報の一部が事前に入力されます。たとえば、事前に Python 3.6 または Python 2.7 がランタイムとして設定され、サンプルコードが提供され、そのコードのハンドラーとその他の設定情報 (メモリやタイムアウトなど) が指定されます。関数の設定の詳細については、「Lambda 関数」を参照してください。関数の設定パラメータの詳細については、「CreateFunction」を参照してください。

    また、Lambda 関数の呼び出しをユーザーに代わって行うために AWS Lambda が引き受けることのできる、必要なアクセス権限を関連付けた IAM ロール (実行ロール) を作成することもできます。

Hello World Lambda 関数を作成するには

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

  2. Get Started Now を選択します。

    注記

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

  3. [Select blueprint] ページで、まず、使用可能な設計図を探します。その後、この「開始方法」の実習用に特定の設計図を選択します。

    1. 設計を確認します。[Filter] を使用して、特定の設計図を検索することもできます。(例:

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

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

    2. この「開始方法」の実習では、[] に「Filter」と入力し、[hello-world-pythonhello-world-python] 設計図を選択します。

  4. [Configure triggers] ページで、Lambda 関数を自動的にトリガーするサービスをオプションで選択できます。省略記号 (...) がついたグレーのボックスを選択すると、使用できるサービスのリストが表示されます。

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

      • DynamoDB テーブルの名前

      • バッチサイズ

      • 開始位置

    2. この「開始方法」の実習では、トリガーを設定せずに [Next] を選択します。

  5. [Configure function] ページで以下の操作を実行します。

    1. Lambda 関数に事前に設定された情報を確認します。

      • Runtime は Python 2.7 です。

      • Python で作成されたコードが提供されます。そのコードは、受信イベントデータを読み取り、CloudWatch のログに情報の一部を記録します。

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

    2. 関数名として、[] に「hello-world-pythonName」と入力します。

    3. [Lambda Function Code] セクションで、次の操作を行います。

      1. サンプルコードを確認します。以下の点に注意してください。

        • コンソールでは、このコードは lambda_handler.py として保存されます。続いて、そのファイルは zip 形式で圧縮され、AWS Lambda にアップロードされて、Lambda 関数が作成されます。

        • サンプルコードは以下の形式の受信イベントを処理します。

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

          Lambda 関数を作成したら、次のセクションで、この形式のサンプルイベントを使用して、その関数を呼び出します。

    4. [Lambda function handler and role] セクションで、次の操作を行います。

      1. [Handler*] の値を書き留めます。それは python-file-name.handler-function という形式です。

      2. [Role*] で、[Create new role from template(s)] を選択します。

      3. [Role name] に、ロールの一意の名前を入力します。

      4. [Role templates] に、オプションのテンプレートのリストが表示されます。選択すると、そのポリシーに添付される必要な権限をもつロールが自動的に作成されます。[Policy templates] のリストについては、「ポリシーテンプレート」を参照してください。このチュートリアルでは、Lambda 関数には必要な基本的な実行権限がすでにあるため、このフィールドは空白のままでかまいません。

      注記

      基本的な実行権限以上の特定のアクセス権限を持つロールを作成してある場合は、オプションで [Choose an existing role ] を選択できます。また、[Create a custom role] を選択できます。このオプションを選択すると、アクセス権限ポリシーをインラインで編集できるウィンドウが表示されます。

    5. [Advanced settings] セクションで、Lambda 関数の設定値をデフォルトのままにしておきます。

      メモリとタイムアウトの値は、作成している Lambda 関数に対して十分です。これらの設定はコードのパフォーマンスに影響を与えます。詳細については、「Lambda 関数」を参照してください。

    6. Next を選択します。

    7. [Create Function] を選択して Lambda 関数を作成します。

      コンソールは、ファイルにコードを保存してから、デプロイパッケージであるファイルを圧縮します。次に、コンソールは、AWS Lambda にデプロイパッケージをアップロードして Lambda 関数を作成します。コンソールに hello-world-python Lambda 関数が表示され、関数のテストなどさまざまなアクションを実行できるようになりました。

      コンソールには以下のタブがあります。

      • [Code] - Lambda 関数コードが表示されます。

      • [Configuration] - 現在の関数設定が表示され、必要に応じてその設定を変更できます。いずれかの設定を変更したら、[Save] を選択して、更新された設定を保存します。

      • Triggers – この関数用に構成したトリガーを示します (この「開始方法」の実習には適用されません)。

      • [Monitoring] - Lambda 関数のさまざまな CloudWatch メトリクスが用意されています。次のセクションでは、[hello-world-python] Lambda 関数を呼び出し、これらのメトリクスを確認します。

次のステップ

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