無限ノック › DVA 練習問題一覧 › 問題DVA デプロイ
Amazon API GatewayとAWS Lambdaを使用したバックエンドAPIを管理しています。開発(dev)、検証(test)、本番(prod)の3つのステージがあり、それぞれのステージからのリクエストを対応するLambda関数のエイリアスにルーティングする必要があります。APIの構成を重複させずにこの環境差分を吸収するための最適な手法はどれですか。
A API Gatewayのモック統合を利用し、クライアントのリクエストヘッダーに含まれる環境名に基づいてLambdaエイリアスへルーティングする。
モック統合はバックエンドを呼び出さずにAPI Gateway単体で静的なダミー応答を返すための機能であり、実際のLambda関数への動的ルーティングには使用できません。
B Lambda関数のコード内でリクエストコンテキストからステージ名を判定し、各環境用のバックエンド処理へ分岐させるようにロジックを変更する。
単一のLambda関数内部で全環境の処理を分岐させる設計は、本番環境と開発環境のコードや権限の分離ができなくなり、重大なセキュリティ・運用リスクを生むアンチパターンです。
C APIの各ステージにステージ変数を設定し、統合リクエストのLambda関数のARN指定部分でその変数を動的に参照させるようにする。
✓ 正解
ステージ変数を使用してLambdaのエイリアスなどを動的に指定することで、API構成の重複を避けつつ、環境ごとの適切なバックエンド関数へのルーティングを簡単に実現できます。
D 環境ごとに完全に独立したAPI GatewayのREST APIインスタンスを新規作成し、それぞれに異なるLambda関数のARNを固定で設定する。
環境ごとにAPIを個別に作成する方法は、APIの仕様変更時にすべてのインスタンスを手動で同期させる必要があり、管理オーバーヘッドと設定ミスのリスクが極めて高くなります。
解説 API Gatewayの「ステージ変数」を使用すると、デプロイされる各ステージ(dev, test, prodなど)ごとに異なるキーと値のペアを定義できます。このステージ変数を統合リクエストの設定画面でLambda関数のARN(エイリアスやバージョン指定部分)に `${stageVariables.lambdaAlias}` のように組み込むことで、単一のAPI定義を維持したまま、リクエストを受け付けたステージに応じて適切なバックエンド関数へ動的にルーティングすることが可能になります。これにより設定の二重管理を防げます。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →