Lambda 呼び出しモード - AWS Lambda のセキュリティの概要

Lambda 呼び出しモード

Invoke API は event モードと request-response モードの 2 つのモードで呼び出すことができます。

  • event モードでは、ペイロードが非同期呼び出しのキューに入れられます。

  • request-response モードでは、指定されたペイロードで関数が同期的に呼び出され、ただちに応答が返されます。

どちらの場合も、関数の実行は常に Lambda 実行環境で行われますが、ペイロードは異なるパスを通ります。詳細については、このドキュメントの「Lambda 実行環境」を参照してください。

また、ユーザーに代わって呼び出しを実行する AWS の他のサービスを使用することもできます。どの呼び出しモードが使用されるかは、利用する AWS のサービスと設定方法により異なります。その他の AWS のサービスと Lambda の統合方法の詳細については、「AWS Lambda を他のサービスで使用する」を参照してください。

Lambda がリクエスト/レスポンスの呼び出しを受け取ると、この呼出は直接呼び出しサービスに渡されます。呼び出しサービスが利用できない場合、呼び出し元はクライアント側でペイロードを一時的にキューに入れて、設定された回数だけ呼び出しを再試行できます。呼び出しサービスがペイロードを受け取ると、リクエストに対して使用可能な実行環境を特定し、ペイロードをその実行環境に渡して呼び出しを完了します。既存の実行環境または適切な実行環境が存在しない場合は、リクエストに応じて動的に作成されます。転送中、呼び出しサービスに送信される呼び出しペイロードは TLS 1.2 以上を使用して保護されます。Lambda サービス内のトラフィック (ロードバランサーから下) は、リクエストが送信された AWS リージョン内の Lambda サービスが所有する隔離された内部 Virtual Private Cloud (VPC) を通過します。

AWS Lambda のリクエスト/レスポンスの呼び出しモデルを説明する図表。

図表 2 – AWS Lambdaのリクエスト/レスポンスの呼び出しモデル

event 呼び出しモードのペイロードは、呼び出し前に常にキューに入れられて処理されます。すべてのペイロードは Amazon Simple Queue Service (Amazon SQS) キューに入れられて処理されます。キューに入れられたイベントは、転送中は常に TLS 1.2 以上で保護されます。ただし現在、保存時には暗号化されません。Lambda によって使用される Amazon SQS キューは Lambda サービスで管理され、ユーザーには表示されません。キューに入れられたイベントは共有キューに保存できますが、ユーザーが直接制御できないさまざまな要因 (呼び出し速度、イベントのサイズなど) によっては、移行または専用キューに割り当てられる場合があります。

キューに入れられたイベントは、Lambda のポーラーフリートにより、バッチで取得されます。ポーラーフリートは、まだ処理されていないキューに入れられたイベント呼び出しを処理することを目的とした EC2 インスタンスのグループです。ポーラーフリートは、処理する必要がある、キューに入れられたイベントを取得すると、リクエスト/レスポンスモードの呼び出しと同様に、そのイベントを呼び出しサービスに渡します。

呼び出しを実行できない場合、実行を正常に完了できるか、実行の再試行回数を超えるまで、ポーラーフリートはホストのメモリ内にイベントを一時的に保存します。ポーラーフリート自体では、ペイロードデータがディスクに書き込まれることは決してありません。ポーラーフリートは AWS のユーザー間でタスクを実行できるため、呼び出し時間が最短になります。どのサービスがイベント呼び出しモードを取る可能性があるかの詳細については、「他のサービスで AWS Lambda を使用する」を参照してください。