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

Lambda 関数

カスタムコードを依存関係ごとパッケージ化し、AWS Lambda にアップロードすると、Lambda 関数を作成したことになります。

AWS Lambda を初めて使う場合、次のようなことを知りたいと思うかもしれません。Lambda 関数として実行できるコードのタイプは?AWS Lambda がどのように自分のコードを実行するのか?自分の Lambda コードを実行するために必要なメモリと CPU の要件を、AWS Lambda はどのように判断しているのか?以下のセクションでは、Lambda 関数の動作の概要を説明します。

シナリオによって、アプリケーションコードのすべてまたは一部を実行する AWS Lambda サービスを使用するアプリケーションを構築できます。詳細については、「Lambda 関数のビルド」を参照してください。「仕組み」に、特定のシナリオに向けた Lambda 関数の作成方法の例を示しています。

個のトピックのセクションでは、Lambda 関数に関する以下の入門情報を提供します。

コンピューティング要件 – Lambda 関数の設定

Lambda 関数は、コードと関連する依存関係で構成されます。さらに、Lambda 関数に関連付けられた設定情報があります。Lambda 関数を作成する際は、まず、設定情報を指定します。Lambda では、設定データの一部を更新するための API が用意されています。Lambda 関数の設定情報には、次のようなキー要素が含まれています。

  • 必要なコンピューティングリソース – Lambda 関数に割り当てるメモリ容量のみを指定します。AWS Lambda は M3 タイプなど、汎用 Amazon EC2 インスタンスタイプと同じ割合を使用して、メモリに比例した CPU 能力を割り当てます。たとえば、256 MB メモリを Lambda 関数に割り当てる場合、128 MB のみを割り当てた場合よりも 2 倍の CPU 共有が割り当てられます。

    設定を更新して、128 MB から 1536 MB まで 64 MB 単位の増設メモリをリクエストできます。関連する制限の詳細については、「AWS Lambda の制限」を参照してください。

    Lambda 関数に必要なメモリ容量を変更するには、以下を実行します。

    1. AWS マネジメントコンソールにサインインし、AWS Lambda コンソールに移動します。

    2. メモリサイズを変更する関数を選択します。

    3. [Configuration] タブをクリックして [Advanced settings] を展開します。

    4. [Memory (MB)] リストで、必要な容量を選択します。

     

    オプションで、次の AWS CLI コマンドを使用して関数のメモリ容量を更新できます (有効な 64 MB の倍数を使用)。

    Copy
    $ aws lambda update-function-configuration \ --function-name your function name \ --region region where your function resides \ --memory-size memory amount \ --profile adminuser

    AWS CLI のセットアップと使用の詳細については、「ステップ 1: AWS アカウントと AWS CLI を設定する」を参照してください。

     

  • 最大実行時間 (タイムアウト) – 料金は Lambda 関数の実行に使用された AWS リソースに対して課金されます。Lambda 関数が無制限に実行されないように、タイムアウトを設定します。指定されたタイムアウトに達すると、AWS Lambda は Lambda 関数を終了します。

     

  • IAM ロール (実行ロール) – これは、AWS Lambda ユーザーに代わってが Lambda 関数を実行する際に引き受けるロールです。

     

  • ハンドラー名 – ハンドラーとは AWS Lambda が実行を開始するコード内のメソッドのことです。AWS Lambda は呼び出しをトリガーするイベント情報をパラメーターとしてハンドラーメソッドに渡します。

呼び出しタイプ

AWS Lambda では Lambda 関数の同期呼び出しおよび非同期呼び出しがサポートされています。呼び出しタイプを制御できるのは、自分で Lambda 関数を呼び出すときのみです (オンデマンド呼び出しといいます)。以下はオンデマンド呼び出しの例です。

  • カスタムアプリケーションが Lambda 関数を呼び出します。

     

  • テストの目的で、手動で Lambda 関数を呼び出します (たとえば、AWS CLI を使用して)。

いずれの場合も、「Invoke」オペレーションを使用して Lambda 関数を呼び出します。呼び出しタイプは同期または非同期を指定できます。

ただし、イベントソースとして AWS サービスを使用する場合、呼び出しタイプはこれらのサービスごとに事前に定義されています。これらのイベントタイプが Lambda 関数を呼び出すときに、使用する呼び出しタイプを制御することはできません。たとえば、Amazon S3 は常に非同期で Lambda 関数を呼び出し、Amazon Cognito は常に同期で Lambda 関数を呼び出します。ストリームベース AWS サービス (Amazon Kinesis Streams や Amazon DynamoDB Streams) の場合は、AWS Lambda がストリームをポーリングし、Lambda 関数を同期的に呼び出します。