AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

Lambdaはバージョン管理しておくことができます。

バージョン管理すると$LATESTが最新バージョンのLambdaとなり、このバージョンのみ編集可能で、過去のバージョンは編集できません。

バージョン管理したいLambdaの「アクション」から「新しいバージョンを発行」を押してバージョニングします。

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

$LATEST,1

$LATEST,2,1

$LATEST,3,2,1

みたいな感じでバージョニングされます。

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

Lambdaをバージョン管理しておくと、API Gatewayのステージごとに同じLambdaの異なるバージョンのLambdaを実行することができるので便利です。

エイリアスの作成

Lambdaをバージョン管理したら、次はエイリアスを作成します。

$LATESTのエイリアスがdev、その次のバージョンがprodにします。

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

これで、devとprodのエイリアス作成が完了しました。Lambda側での設定は以上です。

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

API Gatewayでの設定

統合リクエストでLambda関数の後ろに:${stageVariables.xxx}を付加します。xxxは任意の変数名にします。

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

ここでは、aaaという変数名にしています。Lambda関数が「bbb:${stageVariables.aaa}」となればOKです。

次に各ステージでステージ変数を指定します。ステージ変数名はaaaでそれに対する名前はLambdaで作成したエイリアスを指定します。

dev

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

prod

AWS Lambdaをバージョン管理してステージごとに実行するLambdaのバージョンを分ける方法

Invalid permissions on Lambda function

実行して「Invalid permissions on Lambda function」エラーが発生したら以下コマンドで権限を付与してあげる必要があります。

dev

aws lambda add-permission --function-name arn:aws:lambda:リージョン:xxxx:function:ラムダ名:ステージ名 --source-arn arn:aws:execute-api:リージョン:xxxx:yyyy/*/GET/ --principal apigateway.amazonaws.com --statement-id dev --action lambda:InvokeFunction

prod

aws lambda add-permission --function-name arn:aws:lambda:リージョン:xxxx:function:ラムダ名:ステージ名 --source-arn arn:aws:execute-api:リージョン:xxxx:yyyy/*/GET/ --principal apigateway.amazonaws.com --statement-id prod --action lambda:InvokeFunction

–statement-idに指定する値は任意で結構です。これで各ステージのAPI Gatewayから各Lambdaが実行されるようになります。

参考サイト

Amazon API Gateway ステージ変数の使用

Amazon API Gateway ステージ変数のリファレンス

参考サイト

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました