AWS Lambdaのバージョン管理とエイリアスについて
はじめに
AWS認定デベロッパーアソシエイトの勉強で、AWS Lambdaのバージョン管理とエイリアスについて学びました。理解するのに時間がかかりましたので、備忘録のために書こうと思います。
※この記事は2021/6/27現在の情報で書いています。後述する参考文献を基に書きますが、誤認識などありましたら、ご指摘いただけますと幸いです。
Lambdaのバージョン
Lambdaのバージョンを発行すると、その時点の関数と設定をスナップショットとして保存します。最新バージョンを$LATEST
とし、バージョン番号を付与してスナップショットとして保存します。
バージョンの発行
①. バージョン発行したいLambda関数を開き、「アクション」⇒「新しいバージョンの発行」をクリックします。
②. バージョンの説明を追記して「発行」をクリックします。
③. 新しいバージョン数が連番で付与されます。以下の画像では、バージョン4まで作成されていたので、バージョン5が作成されました。後述しますが、発行されたバージョンではコードと設定の変更はできません。非修飾関数(非修飾ARN)、つまり$LATEST
の方で編集する必要があります。
バージョン発行されたLambda関数
バージョン発行されたLambda関数は、以下のような修飾ARNで管理されます。ARNの末尾にバージョンのサフィックスが付与されます。
arn:aws:lambda:aws-region:XXXXXXXXXXXX:function:function-name:VerNo
arn:aws:lambda:aws-region:XXXXXXXXXXXX:function:function-helloworld:1
発行されたバージョンのソースコードと設定の変更はできません。
最新版のLambda関数
最新版$LATEST
のLambda関数は、非修飾ARNとして紐づけられます。バージョンのサフィックスは付与されません。また、バージョン管理されていない場合のARNも、非修飾ARNとなります。
arn:aws:lambda:aws-region:XXXXXXXXXXXX:function:function-name
ソースコードを修正する場合は、$LATEST
の方を修正して、必要に応じてバージョン発行する必要があります。したがって、$LATEST
の方を本番環境として運用していると、誤った変更をした場合に大事になってしまいます。そのため、バージョン発行後に後述するエイリアスを作成し、本番環境のバージョンを紐づける必要があります。
エイリアスとは
Lambda関数の特定バージョンのポインタ、つまり別名です。
例えば、本番環境用のエイリアスを作成して、本番公開するバージョンと紐づけをします。その後は$LATEST
の方を修正し、本番公開前に新バージョンを発行して検証、新バージョンに本番環境用エイリアスを紐づけることでリリースができます。また、何か問題あれば、旧バージョンに戻すことでロールバックができます。
エイリアスの作成
①. エイリアスを作成したい関数の画面を開き、「エイリアス」⇒「エイリアスを作成」をクリックします。
②. エイリアス名と説明を入力し、エイリアスに紐づけしたいバージョンを選択して「保存」をクリックします。
③. 正常に作成されたら以下のように表示されます。
最後に
これまではLambdaの運用部分に意識することはなく、何となく触っていました。個人の環境ならばまだしも、商用システムや業務システムなどでLambdaを本格的に触る場合は、あらかじめ理解しておいた方が良いですね。もちろん、適切な開発体制と運用、安全なリリースと変更を実現するために抑えるべきはこれだけではないはず。今後はその辺を意識して、Lambdaを触ろうと思いました。
参考文献
ポケットスタディ AWS認定デベロッパーアソシエイト
Lambda開発者ガイド
Discussion