どーも。shihopowerデス。今日はLambdaプロキシ統合について記事を書きます。AWS SAA試験対策をしていると、「APIGatewayのLambdaプロキシ統合ではマッピングの設定が不要」という情報がありました。これだけ見ても何を言っているのかわからず、丸覚えしてもどうせすぐ忘れると思ったので、なぜ不要なのか、その仕組みを調べてみました。「APIGatewayのLambdaプロキシ統合でマッピングの設定が不要なのはどうして?」と聞かれたときにぱっと答えられなかった方はぜひ記事を読んで参考にしていただけると幸いです。
【目次】
1.Lambdaプロキシ統合の定義を説明する
2.Lambdaプロキシ統合の必要性を説明する
3.Lambdaプロキシ統合でマッピングが不要である理由を説明する
4.Lambda非プロキシ統合をLambdaプロキシ統合と対比して説明する
1.Lambdaプロキシ統合の定義を説明する
Lambdaプロキシ統合とは、APIGatewayがクライアントからのリクエスト全体をバックエンドのLambda関数に自動的にマッピングし、APIGatewayとLambda関数を統合する仕組みです。
これだけだと、何を言っているのかわからないと思うので、ひとつひとつ説明していきます。
「リクエスト・・・をバックエンドのLambda関数に・・・マッピングする」とは、クライアントから送られてきたHTTPリクエストのデータ(ヘッダー、クエリパラメータ、ペイロードなど)を、バックエンドであるLambda関数などの実行形式や入力形式に対応付けることを指します。
「Lambda関数に自動的にマッピングし」という部分は、クライアントがAPIリクエストを送信すると、APIGatewayは情報を加工せず、未加工(raw)のリクエストとしてそのまま統合されたLambda関数に渡すということです。
「リクエスト全体を」という部分なんですけれども、クライアントからのリクエストデータには、いろいろな種類があって、例を挙げると、リクエストヘッダー、クエリ文字列パラメータ、URLパス変数、ペイロード(本文)、およびAPI設定データ(ステージ名やユーザーIDなど)などがあります。
2.Lambdaプロキシ統合の必要性を説明する
ではそもそもどうしてAPIGatewayにLambdaプロキシ統合なんてものが必要なのかといいますと、APIGatewayとLambda関数をシンプルかつ柔軟に統合するためです。Lambdaプロキシ統合では、APIGatewayがリクエストデータを自動的にマッピングしてくれるため、ユーザーがマッピングに関する詳細な設定をする必要がありません。これにより、ユーザーはAPIGateway側での複雑なデータ変換設定を省略し、Lambda関数内のコードで直接リクエスト内容を処理することが可能になります。
3.Lambdaプロキシ統合でマッピングの設定が不要である理由を説明する
では、Lambdaプロキシ統合でユーザーによるマッピングの設定が不要である理由は何でしょうか。今まで説明してきた定義と必要性を理解していれば答えられるはずです。
不要である理由は、APIGatewayがクライアントからのリクエスト全体を自動的にバックエンドのLambda関数にマッピングし、未加工(raw)のリクエストとしてそのまま渡す仕組みになっているからです。
4.Lambda非プロキシ統合をLambdaプロキシ統合と対比して説明する
Lambdaプロキシ統合というのは、APIGatewayとLambda関数の統合方式の1つなんけれども、よく似た名前の統合方式としてLambda非プロキシ統合(カスタム統合)というのがあります。
Lambda非プロキシ統合では、受信したリクエストデータをどのように統合リクエストにマッピングするか、またレスポンスをどのようにメソッドレスポンスにマッピングするかをユーザーが詳細に指定する必要があります。
Lambdaプロキシ統合とLambda非プロキシ統合の差分を一言で説明すると、Lambdaプロキシ統合はマッピングの設定が不要で、Lambda非プロキシ統合はマッピングの設定が必要というふうに表せます。
ここでやっと、冒頭で私が何のことかわからないといっていた「Lambdaプロキシ統合はマッピングの設定が不要」という表現に返ってきて、今だったらその意気が分かったと思います。
いかがでしたでしょうか。本記事がどなたかの参考になれば幸いです。
【参考文献】
柴田真吾, 『これだけでOK!AWS認定ソリューションアーキテクトーアソシエイト試験突破口座』(2026/03/11最終閲覧)