0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon API GatewayのLambda プロキシ統合

Posted at

Amazon API Gateway の Lambda プロキシ統合 は、API Gateway から AWS Lambda 関数へリクエストをそのまま渡し、Lambda のレスポンスをそのままクライアントへ返す シンプルかつ柔軟な統合方式 です。


✅ 概要:Lambda プロキシ統合とは

  • API Gateway から Lambda に HTTP リクエスト情報(メソッド、パス、ヘッダー、クエリなど)を JSON 形式で一括転送
  • Lambda はその JSON をパースし、適切な処理をして 構造化された JSON レスポンスを返す
  • API Gateway 側のマッピングテンプレート設定などは 不要

🔁 リクエストとレスポンスの流れ

🔹 API Gateway → Lambda(入力イベント)

Lambda 関数には、以下のようなイベント JSON が渡されます:

{
  "resource": "/example",
  "path": "/example",
  "httpMethod": "GET",
  "headers": { "Host": "...", "User-Agent": "..." },
  "queryStringParameters": { "key": "value" },
  "pathParameters": null,
  "body": null,
  "isBase64Encoded": false
}

🔹 Lambda → API Gateway(出力)

Lambda 関数の返却は、以下の形式で返す必要があります:

{
  "statusCode": 200,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{\"message\": \"Hello from Lambda!\"}",
  "isBase64Encoded": false
}

🛠 メリット

特徴 説明
シンプル API Gateway 側でマッピングテンプレートの設定不要
拡張性 Lambda でリクエストを完全に制御できる(自由なパース、認証など)
統一フォーマット 単一形式のイベントで全ての情報を取得できる
モダンな構成に最適 REST API や HTTP API 両方で利用可能

⚠️ 注意点

注意点 説明
Lambda 側の実装責任が大きい リクエストパースやエラーハンドリングなどを Lambda 内で全て行う必要がある
レスポンス形式は固定 特定の JSON 形式でないと API Gateway で正常に処理されない

💡 利用例(Node.js)

exports.handler = async (event) => {
    console.log("Event:", event);

    const response = {
        statusCode: 200,
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ message: "Hello from Lambda!" }),
    };

    return response;
};

🧩 Lambda プロキシ統合 vs 非プロキシ統合

項目 Lambda プロキシ統合 非プロキシ統合
リクエスト形式 自動で構造化 JSON イベント マッピングテンプレートで定義必要
レスポンス形式 固定の JSON 構造が必要 フレキシブル(テンプレートで変換)
管理場所 Lambda 中心 API Gateway 中心

🚀 よく使われるユースケース

  • シンプルな API(GET/POST)を Lambda 関数で完結させたいとき
  • Lambda@Edge や API Gateway + Lambda のサーバーレス構成
  • 認証情報やパス、クエリ文字列をまとめて受け取りたいとき

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?