開発者はAmazon API Gatewayを使用してREST APIを設計しています。本番環境(prod)、テスト環境(test)、開発環境(dev)の各ステージごとに、バックエンドとして呼び出すAWS Lambda関数のバージョン(またはエイリアス)を変更したいと考えています。APIの定義やリソース構成をステージごとに個別作成することなく、最小限の設定作業で環境差分を管理・吸収するための設計戦略として正しいものはどれですか。
A
API Gatewayのモック統合を利用して、環境名に応じたLambda関数へのリダイレクト処理をレスポンスマッピングテンプレートに記述する。
API Gatewayの「ステージ変数」を使用すると、デプロイ先のステージ(prod/test/devなど)ごとに異なる環境変数値を保持できます。統合リクエストのURI設定で `arn:aws:apigateway:region:lambda:path/2015-03-31/functions/arn:aws:lambda:region:account-id:function:MyFunction:${stageVariables.lambdaAlias}/invocations` のようにステージ変数を埋め込むことで、API定義を1つに保ったまま環境ごとの呼び出し先Lambda(エイリアスやバージョン)を動的に切り替えることが可能です。