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

Amazon API Gateway での AWS Lambda の使用 (オンデマンド HTTPS 経由)

AWS Lambda 関数を HTTPS 経由で呼び出すことができます。これを行うには、Amazon API Gateway を使用してカスタム REST API とエンドポイントを定義し、個々のメソッド (GETPUT など) を特定の Lambda 関数にマッピングします。また、ANY という特殊なメソッドを追加して、サポートされているすべてのメソッド (GETPOSTPATCHDELETE) を Lambda 関数にマッピングすることもできます。API エンドポイントに HTTPS リクエストを送信するときに、Amazon API Gateway サービスが、対応する Lambda 関数を呼び出します。ANY メソッドの詳細については、「ステップ 3: Lambda と API ゲートウェイ を使用してシンプルなマイクロサービスを作成する」を参照してください。

Amazon API Gateway では、アプリケーションユーザーとアプリケーションロジックの間に、以下を可能にするレイヤーが追加されます。

  • 個々のユーザーやリクエストを絞り込む。

  • 分散型サービス妨害攻撃から保護する。

  • Lambda 関数からの応答をキャッシュするキャッシュレイヤーを提供する。

Amazon API Gateway と AWS Lambda の連携動作については、以下の点に注意してください。

  • プッシュイベントモデル – これは Amazon API Gateway が Lambda 関数にパラメーターとしてリクエスト本文のデータを渡して Lambda 関数を起動するモデルです (「イベントソースマッピング」を参照)。

  • 同期呼び出し – Amazon API Gateway は、呼び出しタイプとして RequestResponse を指定することにより、Lambda 関数を呼び出してリアルタイムでレスポンスを取得できます。呼び出しタイプについては、「呼び出しタイプ」を参照してください。

  • イベント構造 – Lambda 関数が受け取るイベントは、Amazon API Gateway が受信した HTTPS リクエストの本文であり、Lambda 関数は特定のイベントタイプを処理するために記述されたカスタムコードです。

エンドツーエンドのエクスペリエンスを設定するときは、以下の 2 タイプのアクセス権限ポリシーを使用します。

  • Lambda 関数のアクセス権限 - Lambda 関数の呼び出し元にかかわらず、AWS Lambda は、Lambda 関数の作成時に指定された IAM ロール (実行ロール) を引き受けることで、その関数を実行します。このロールに関連付けられたアクセス権限ポリシーを使用して、Lambda 関数に必要なアクセス権限を付与します。たとえば、Lambda 関数にオブジェクトの読み取りが必要である場合は、アクセス権限ポリシーで、関連する Amazon S3 アクションのためのアクセス権限を付与します。詳細については、「アクセス権限の管理: IAM ロール (実行ロール) を使用する」を参照してください。

  • Amazon API Gateway が Lambda 関数を呼び出すためのアクセス権限 – アクセス権限が付与されていない場合、Amazon API Gateway は Lambda関数を呼び出すことはできません。Lambda 関数に関連付けられるアクセス権限ポリシーによって、このアクセス権限を付与します。

セットアップの例を説明しているチュートリアルについては、「Amazon API Gateway での AWS Lambda の使用 (オンデマンド HTTPS 経由)」を参照してください。