API Gateway API 統合タイプの選択 - Amazon API Gateway

API Gateway API 統合タイプの選択

使用する統合エンドポイントのタイプと、統合エンドポイントに対するデータの受け渡し方法に応じて、API 統合タイプを選択します。Lambda 関数の場合は、Lambda プロキシ統合または Lambda カスタム統合を使用できます。HTTP エンドポイントの場合、HTTP プロキシ統合または HTTP カスタム統合を使用できます。AWS サービスアクションの場合、非プロキシタイプの AWS 統合のみを使用します。API Gateway はモック統合もサポートしています。この場合、API Gateway はメソッドリクエストに応答する統合エンドポイントとして機能します。

Lambda カスタム統合は、AWS 統合の特殊なケースであり、統合エンドポイントが Lambda サービスの function-invoking アクションに対応します。

プログラムで、type リソースの Integration プロパティを設定することで統合タイプを選択します。Lambda プロキシ統合の場合、その値は AWS_PROXY です。Lambda カスタム統合とその他すべての AWS 統合の場合、その値は AWS です。HTTP プロキシ統合と HTTP 統合の場合、その値はそれぞれ HTTP_PROXYHTTP です。モック統合の場合、type 値は MOCK です。

Lambda プロキシ統合は、1 つの Lambda 関数との合理化された統合設定をサポートしています。設定はシンプルで、既存の設定を破棄することなくバックエンドで拡張できます。このような理由から、Lambda 関数との統合を強くお勧めします。

これとは対照的に、Lambda カスタム統合では、入出力データ形式の要件が同様のさまざまな統合エンドポイントに対して、設定済みのマッピングテンプレートを再利用できます。この統合ではより詳細な設定が可能なため、より高度なアプリケーションシナリオにお勧めします。

同様に、HTTP プロキシ統合にも合理化された統合設定があり、既存の設定を破棄することなくバックエンドで拡張できます。HTTP カスタム統合では設定はより詳細になりますが、設定済みのマッピングテンプレートは他の統合エンドポイントに再利用できます。

以下のリストは、サポートされている統合タイプをまとめたものです。

  • AWS: このタイプの統合では、API は AWS のサービスアクションを公開します。AWS 統合では、統合リクエストと統合レスポンスの両方を設定し、メソッドリクエストから統合リクエストへの、また統合レスポンスからメソッドレスポンスへの、データマッピングを設定する必要があります。

  • AWS_PROXY: このタイプの統合では、さまざまな用途に柔軟に利用できる合理化された統合設定があり、API メソッドを Lambda 関数呼び出しアクションと統合できます。この統合は、クライアントと統合 Lambda 関数との間の直接的なやり取りに依存します。

    このタイプの統合は、Lambda プロキシ統合とも呼ばれ、お客様が統合リクエストまたは統合レスポンスを設定することはありません。API Gateway は、クライアントから受け取ったリクエストをバックエンドの Lambda 関数への入力として渡します。統合 Lambda 関数は、この形式の入力を受け取り、使用可能なすべてのソースからの入力 (リクエストヘッダー、URL パス変数、クエリ文字列パラメータ、該当する本文など) を解析します。その後、こちらの出力形式に従って結果を返します。

    これは、API Gateway を介した Lambda 関数呼び出しに適した統合タイプであり、関数呼び出しアクション以外の Lambda アクションなど、AWS の他のサービスアクションには適用されません。

  • HTTP: このタイプの統合は、API がバックエンドの HTTP エンドポイントを公開することを可能にします。HTTP 統合 (HTTP カスタム統合とも呼ばれます) では、統合リクエストと統合レスポンスの両方を設定する必要があります。メソッドリクエストから統合リクエストへの、また統合レスポンスからメソッドレスポンスへの、データマッピングを設定する必要があります。

  • HTTP_PROXY: HTTP プロキシ統合では、クライアントは 1 つの API メソッドで合理化された統合設定を使用して、バックエンド HTTP エンドポイントにアクセスできます。この場合、お客様が統合リクエストまたは統合レスポンスを設定することはありません。API Gateway は、クライアントから受け取ったリクエストを HTTP エンドポイントに渡し、HTTP エンドポイントから送り出されたレスポンスをクライアントに渡します。

  • MOCK: このタイプの統合では、API Gateway はリクエストをさらにバックエンドに送信することなく、レスポンスを返します。このタイプの統合は、API のテストに便利です。バックエンドの使用料金が発生することなく、統合設定のテストに使用したり、API の共同開発に使用したりできるためです。

    共同開発では、チームは MOCK 統合を使用して、他のチームが所有する API コンポーネントのシミュレーションを設定することで、自分たちの開発成果を区分することもできます。また、CORS 関連のヘッダーを返して、API メソッドが CORS へのアクセスを許可するようにもできます。実際に、API Gateway コンソールは Mock 統合で OPTIONS メソッドを統合して CORS をサポートします。ゲートウェイレスポンス は Mock 統合の他の例です。