はじめに
Lambdaのバージョン管理とエイリアスについてハンズオンを交えて構築をしたいと思います
用語理解
Lambdaのバージョン
バージョンを使用することで、Lambda関数のデプロイを管理することが出来ます。
Lambda関数をデプロイするたびに、新しいバージョンの関数を作成することにより、実稼働中に新しいバージョンの関数を公開することも出来るようになります。
参考URL:AWSドキュメント Lambda 関数のバージョン
Lambdaのエイリアス
エイリアスは、特定のLambda関数のバージョンに対しての別名(AWSではポインタと説明)です。
ユーザーは、エイリアスを使用することでLambda関数のバージョンにアクセスすることが出来ます。
※下記の図ではv2(バージョン)
にprpd(エイリアス)
が紐づいています。
参考URL:AWSドキュメント Lambda 関数のエイリアス
ハンズオン
Lambdaのバージョン発行
Lambdaの構築
Lambdaを構築してデフォルトのコードをVersion 1!
と修正してデプロイする
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Version 1!')
}
新しいバージョンを発行
タブ『バージョン』を選択して、『新しいバージョンを発行』を押下する
『v1』のバージョンを発行する
バージョン:1の画面に遷移する
黒塗り部分にバージョン発行された関数のARN
を確認する
末尾にバージョンのサフィックスが付与されてることがわかる(修飾ARNという)
arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:tetutetu-lamabda:1
確認後赤枠部分のパンクズリストから、最新のLambdaの画面へ戻る
最新のLambdaの画面へ戻って確認
最新の関数のARNには、末尾にバージョンのサフィックスが付与されていないことがわかる(非修飾ARNという)
arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:tetutetu-lamabda
再度同様手順でVersion 2!
をデプロイして、v2を作成する
Lambdaのエイリアスの作成
タブより『エイリアス』を選択し『エイリアスを作成』を押下
エイリアス設定
ここで名前(=エイリアス)
とバージョン
を紐づける
加重エイリアスについて
加重エイリアスは今回利用していませんが、設定する場合は下記のようにエイリアス
に対して、バージョン
を何割割り当てるかを設定します。
参考URL:AWSドキュメント:エイリアスのルーティング設定
エイリアス:prodの画面に遷移する
赤枠の修飾ARNも下記のような名前となっている
arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:tetutetu-lamabda:prod
最新のLambdaの画面へ戻って確認
エイリアスを選択してprod
が作成されていることを確認する
さいごに
こちらのLambdaのエイリアス・バージョンを設定することで、別ブログのAPIGatewayのステージごとにエイリアスで指定したLambdaを紐づけハンズオンにも応用が出来ます。
現段階(2022年7月)では、API Gateway経由でのLambdaをバージョン管理する上で利用せざるを得ないですが。。。
もっと幅広く技術に携わっていきたいと思います。