AI作成・独立検証済(有資格者監修なし)DVA-C02 対応
ステージ変数難易度 標準無料

開発者は同じREST API定義を使い回し、devprodの各ステージで異なるLambda関数のエイリアス(devエイリアス/prodエイリアス)を呼び出したい。API定義自体を複製せずにこれを実現する方法として最も適切なものを選べ。(単一選択)

  1. A各ステージにステージ変数(例:lambdaAlias)を設定し、Lambda統合のARNに${stageVariables.lambdaAlias}を埋め込んで、ステージごとに異なるエイリアスを参照させる
  2. Bdev用とprod用でAPI定義を完全に複製し、それぞれのAPIの統合設定に固定のLambdaエイリアスARNを直接記述する
  3. CLambda関数側で環境変数STAGEを読み取り、実行時にステージ名に応じて呼び出す内部ロジックを分岐させる(API Gateway側の設定は変更しない)
  4. Dカスタムドメイン名のベースパスマッピングでステージごとに異なるLambda関数ARNを直接指定する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

ステージ変数(stage variables)は、API Gatewayのステージごとに設定できるキー・バリューのペアで、 統合のARNやHTTPエンドポイントなど、ステージによって変えたい値をテンプレート化できる。

  • Lambda統合のARNに ${stageVariables.lambdaAlias} のようにステージ変数を埋め込むことで、 同じAPI定義のまま、ステージごとに異なるLambdaエイリアス(例:devステージはdevエイリアス、prodステージはprodエイリアス)を呼び分けられる。
  • ステージ変数はマッピングテンプレート内や、一部のログ設定・VPCリンク先の指定でも参照できる。
  • これによりAPI定義そのものを複製せず、ステージのデプロイ設定だけを切り替えることで環境差分を吸収できる。
各誤答が違う理由
  • B動作はするがAPI定義の二重管理になり、仕様変更のたびに両方を修正する必要が生じ運用負荷が高い。ステージ変数を使えば1つの定義で済む。
  • C要件は「異なるLambdaエイリアスを呼び出す」ことであり、単一のLambda関数内で分岐させる方式では別々にデプロイされたエイリアス(バージョン)を使い分ける要件を満たさない。
  • DベースパスマッピングはカスタムドメインのパスとAPI/ステージを紐付ける機能であり、Lambda ARNを直接指定する機能ではない。
ひっかけ: 「環境ごとにAPI定義を丸ごと複製する」という発想(B)は動くには動くが、API定義の二重管理という運用負荷を生む。 ステージ変数はまさにこの「同じAPI定義でステージごとに変数だけ変える」ためのAPI Gatewayの機能であることを押さえる。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
API Gateway を含む問題を分野別に演習できます。
演習する →