AWS Lambdaのバージョニング
AWS Lambda関数が時間とともに進化するにつれ、コードの異なるバージョンを管理することが重要になります。AWS Lambdaには、Lambda関数コードの異なるイテレーションを管理し追跡するためのバージョニング機能が用意されています。各バージョンは、関数コードとその設定(環境変数やリソース割り当てなど)のスナップショットです。
Lambda関数を作成する場合、またはそのコードを更新する場合は、$LATEST
バージョンで作業しています。現在の関数の状態をキャプチャするために、新しいバージョンを公開することができます。公開されたバージョンは不変であり、そのコードや設定を変更することはできません。
バージョンの作成と管理
Lambda関数の新しいバージョンを作成するには、次の手順に従ってください。
- AWS Lambdaコンソールに移動
- バージョンを作成する関数を選択
アクション
ドロップダウンから新しいバージョンを公開
を選択- オプションの説明を入力し、
公開
をクリック
これにより、Lambdaコンソールのバージョン
タブで公開された関数のバージョンを表示および管理できるようになります。
Lambda関数の新しいバージョンを公開すると、AWSは自動的に一意のバージョン番号を割り当てます。Lambda関数のバージョン履歴を表示するには、次の手順に従ってください。
- AWS Lambdaコンソールに移動
- バージョン履歴を表示したい関数を選択
バージョン
タブをクリックして、公開されたバージョンとその詳細の一覧を表示
Lambda関数の特定のバージョンを削除するには、次の手順を実行してください。
- Lambdaコンソールで、
バージョン
タブに移動 - 削除するバージョンを探す
- バージョン番号の横にあるチェックボックスを選択
アクション
ドロップダウンから削除
をクリック
$LATEST
バージョンは削除できないことを覚えておいてください。
AWS CLIを使用したバージョン管理
AWS Lambdaコンソールだけでなく、AWSコマンドラインインターフェイス(CLI)を使用してLambda関数のバージョンを管理することもできます。これにより、バージョンの作成、更新、削除をプログラムで行い、既存のワークフローに簡単に自動化および統合することができます。
AWS CLIをインストールおよび設定するには、公式のAWS CLIドキュメントの手順に従ってください。
AWS CLIを使用してLambda関数の新しいバージョンを公開するには、次のコマンドを実行してください。
$ aws lambda publish-version --function-name YourFunctionName --description "Your version description"
このコマンドは、指定したLambda関数の新しいバージョンを作成し、新しいバージョンの詳細を含むJSONオブジェクトを返します。
Lambda関数の全てのバージョンをリストするには、list-versions-by-function
コマンドを使用します。
$ aws lambda list-versions-by-function --function-name YourFunctionName
このコマンドは、指定したLambda関数に関連する全ての公開されたバージョンおよび$LATEST
バージョンの詳細を含むJSONオブジェクトを返します。
AWS CLIを使用してLambda関数の特定のバージョンを削除するには、次のコマンドを実行します。
$ aws lambda delete-function --function-name YourFunctionName:YourVersionNumber
AWS Lambdaのエイリアス
AWS Lambdaのエイリアスとは、特定の関数バージョンへのポインターです。バージョン番号ではなく、"prod"や"dev"などの人間が読み取り可能な識別子を使用して、特定のバージョンを参照できます。これにより、関数呼び出しが簡素化され、展開中にバージョン間をシームレスに切り替えることができます。
エイリアスを使用すると、エイリアスが指す関数のバージョンを更新することなく、関数を呼び出すクライアントコードを変更することなく簡単に更新できます。これは、ダウンタイムなしで新しいバージョンの関数を本番環境に展開する必要がある場合に特に役立ちます。
エイリアスの作成と管理
Lambda関数の新しいエイリアスを作成するには、次の手順に従ってください。
- AWS Lambdaコンソールに移動
- エイリアスを作成する関数を選択
アクション
ドロップダウンからエイリアスの作成
を選択- エイリアス名、説明、指すべきバージョンを入力し、
作成
をクリック
これにより、Lambdaコンソールのエイリアス
タブでエイリアスを表示および管理できるようになります。
既存のエイリアスを新しいバージョンを指すように更新するには、次の手順に従ってください。
- Lambdaコンソールで、
エイリアス
タブに移動 - 更新するエイリアスを探す
- エイリアス名をクリックしてエイリアスの構成ページを開く
エイリアス構成
セクションの下で、編集
をクリック- エイリアスが指すバージョンを更新し、
保存
をクリック
エイリアスを削除するには、次の手順に従ってください。
- Lambdaコンソールで、
エイリアス
タブに移動 - 削除するエイリアスを探す
- エイリアス名の横にあるチェックボックスを選択
アクション
ドロップダウンから削除
をクリック
AWS CLIを使用したエイリアスの管理
AWS Lambdaコンソールを使用するだけでなく、AWS CLIを使用してLambda関数のエイリアスを管理することもできます。これにより、エイリアスの作成、更新、削除をプログラムで行い、既存のワークフローに簡単に自動化および統合することができます。
AWS CLIを使用してLambda関数の新しいエイリアスを作成するには、次のコマンドを実行してください。
$ aws lambda create-alias \
--function-name YourFunctionName \
--name YourAliasName \
--function-version YourVersionNumber \
--description "Your alias description"
このコマンドは、指定したLambda関数の新しいエイリアスを作成し、新しいエイリアスの詳細を含むJSONオブジェクトを返します。
既存のエイリアスを新しいバージョンを指すように更新するには、update-alias
コマンドを使用します。
aws lambda update-alias --function-name YourFunctionName --name YourAliasName --function-version NewVersionNumber
このコマンドは、指定したエイリアスを新しいバージョンに更新します。
Lambda関数の全てのエイリアスをリストするには、list-aliases
コマンドを使用します。
$ aws lambda list-aliases --function-name YourFunctionName
このコマンドは、指定したLambda関数に関連する全てのエイリアスの詳細を含むJSONオブジェクトを返します。
AWS CLIを使用してエイリアスを削除するには、次のコマンドを実行してください。
$ aws lambda delete-alias --function-name YourFunctionName --name YourAliasName
Lambdaエイリアスのユースケース
Lambdaエイリアスは、次のような様々なシナリオで役立ちます。
-
デプロイの簡素化
Lambda関数の新しいバージョンをデプロイする際に、エイリアスを更新して、関数を呼び出すクライアントコードを更新する必要がありません。 -
環境の分離
開発、ステージング、本番など、異なる環境用に別々のエイリアスを作成できます。これにより、次の環境に昇格する前に、関数の新しいバージョンを分離された環境でテストできます。 -
A/Bテスト
エイリアスを使用することで、関数の新しいバージョンに一部のトラフィックをルーティングして、全てのユーザーに展開する前にパフォーマンスや機能性をテストできます。 -
ロールバック
新しいバージョンを展開した後に問題が発生した場合、エイリアスを以前のバージョンにすばやく戻すことができます。これにより、ダウンタイムやユーザーへの影響を最小限に抑えることができます。
参考