EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

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"が呼び出されるようになります。