ステージ変数難易度 標準無料
開発者は同じREST API定義を使い回し、dev・prodの各ステージで異なるLambda関数のエイリアス(devエイリアス/prodエイリアス)を呼び出したい。API定義自体を複製せずにこれを実現する方法として最も適切なものを選べ。(単一選択)
- A各ステージにステージ変数(例:
lambdaAlias)を設定し、Lambda統合のARNに${stageVariables.lambdaAlias}を埋め込んで、ステージごとに異なるエイリアスを参照させる - B
dev用とprod用でAPI定義を完全に複製し、それぞれのAPIの統合設定に固定のLambdaエイリアスARNを直接記述する - CLambda関数側で環境変数
STAGEを読み取り、実行時にステージ名に応じて呼び出す内部ロジックを分岐させる(API Gateway側の設定は変更しない) - 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が作成し、独立した検証を経た解説です(有資格者による監修は経ていません)