Lambdaのバージョン管理とエイリアスについてのハンズオン


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

はじめに

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』のバージョンを発行する

『v1』としてバージョン1を作成する

バージョン: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

バージョン1が作成されていることを確認する

再度同様手順で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をバージョン管理する上で利用せざるを得ないですが。。。
もっと幅広く技術に携わっていきたいと思います。

お問い合わせ

協栄情報はソフトウェア開発で培った技術力を活かした、クラウドソリューションによる問題可決や多くの分野におけるソフトウェア開発を中心に、お客様のビジネスを最大限に効率化する仕組みを提供いたします。

お問合せは下記URLから、お気軽に連絡ください。
https://www.cp-info.co.jp/contact/

Last modified: 2022-07-12

Author