API Gateway + Lambda でAPIの関数をステージごとに切り替える
API Gateway を利用して API を実装するなかで、呼び出すLambda関数をステージごとに切り替える必要が出てきました。 /example というリソースに対して、本番環境とステージング環境で別の関数を呼び出せるようにします。
関数の作成
本番環境用と、ステージング環境用でLambda関数を作成します。
環境 | 関数名 |
---|---|
本番環境 | prd-example-function |
ステージング環境 | stg-example-function |
環境ごとにLambda関数を分けることで、開発中のものをリリースしたり、環境に合わせた環境変数を設定することが可能になります。
ステージの設定
ステージは、本番環境用に production と、ステージ環境用に staging を作ります。 ステージごとに変数を定義して、呼び出すLambda関数を切り替えられるようにします。 "ステージ変数"タブから、"ステージ変数の追加"を選び、以下の変数を作成します。
環境 | 名前 | 値 |
---|---|---|
本番環境 | FunctionPrefix | prd- |
ステージング環境 | FunctionPrefix | stg- |
こうすることで、リソースから"FunctionPrefix"という名前で値を参照することができるようになります。
リソースの設定
作成したリソースの"統合リクエスト"を選び、"Lambda 関数"を以下のように定義します。
${stageVariables.FunctionPrefix}ExampleFunction
"${stageVariables.FunctionPrefix}"という箇所にステージで定義した変数が入ります。 本番環境の場合、"prd-example-function"が呼び出されるようになります。