[アップデート] AWS LambdaのコンソールがLambda Layersの一括更新に対応しました

マネージメントコンソールで複数のLambda関数に関連付いているLambda Layersのバージョンを一気に変更できるようになりました
2022.04.01

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

Lambda Layersを更新後にLambda関数側で新しいバージョンを指定するの面倒だな

こんにちは、のんピ(@non____97)です。

Lambda関数に関連づいているLambda Layersのバージョンを更新する作業が面倒だなと思ったことはありますか? 私はあります。

Layerを更新すると新しいバージョンが発行されます。Lambda関数で新しいバージョンのLayerを使用する際は、そのバージョンをLambda関数で指定してあげる必要があります。

Layerを使っているLambda関数が一つであれば更新の手間は大したことないですが、Lambda Layersは複数のLambda関数でライブラリを共有するための仕組みであるので、複数のLambda関数と関連づいていることがほとんどです。

マネージメントコンソールで複数のLambda関数でLayerのバージョンを指定し直すのはなかなか骨が折れます。

Layerのバージョンを変更する作業は以下のように3ステップもあります。

  1. 変更したいLambda関数をクリックする 変更したいLambda関数をクリック
  2. Layerの編集をクリックする Layerの編集をクリック
  3. Layerのバージョンを指定し、保存をクリックする。 Layerのバージョンを指定し、保存をクリック

こんなちょっと面倒な複数のLambda関数のLayerバージョン変更がアップデートで一気に行えるようになりました。

これはありがたいです。

早速この機能を使ってみたので紹介します。

Lambda Layerのバージョンを変更してみた

テスト用にpython-testpython-test2というLambda関数を2つ用意します。

テスト用Lambda関数一覧

これらのLambda関数にLayerを追加します。

テスト用のLayerであるaes-siem-configure-es-loaderを確認すると、Functions using this versionというのがあるのが分かります。

Functions using this version

Functions using this versionをクリックすると、このバージョンのLayerを使用している関数を一覧できそうな画面が表示されました。

All functions in this account that use this layer version

見たところ、どうやらLayerの設定画面からLambda関数にLayerを追加する動線はないようですね。

それでは、2つのテスト用のLambda関数にバージョン107のaes-siem-configure-es-loaderを追加します。

 Layerの追加

Layerの追加が完了した後に、バージョン107のaes-siem-configure-es-loaderFunctions using this versionタブを確認すると、先ほどLayerを追加した2つのLambda関数が表示されました。

Layer追加後のFunctions using this version

2つのLambda関数を選択しEditをクリックすると、Lambda関数に関連づいているLayerのバージョン変更画面になりました。

Lambda関数に関連づいているLayerのバージョン変更画面

Edit layer version for functions

それでは試しにLayerのバージョンを50に変更してみます。

Layer versionのプルダウンで50を指定して、Update functionsをクリックします。

Update functions

更新が完了すると、「2 functions successfully updated」と表示され、各Lambda関数のStatusもSuccessとなりました。

2 functions successfully updated

実際にLambda関数の詳細画面からLayerを確認してみると、どちらのLambda関数もLayerのバージョンが50となっていました。

Layerのバージョン変更後の設定

これは今までの作業と比較して、とんでもなく楽ですね。

ちなみにもう一度Layerのバージョン107のFunctions using this versionを確認すると、No functions are using this layer version.となっていました。

No functions are using this layer version.

一方でバージョン50のFunctions using this versionを確認すると、しっかりと2つのLambda関数が表示されていました。

aes-siem-configure-es-loader_50_レイヤー_-_Lambda

Layerのバージョン毎にどのLambda関数に追加されているのか確認する必要があるのが要注意ですね。

Lambda Layerのメンテナンス時に大活躍間違いなし

AWS LambdaのコンソールがLambda Layersの一括更新に対応したアップデートを紹介しました。

メンテナンスなどで共通部分のLayerを更新する必要があっても、この機能があれば簡単にLambda関数に反映することができます。

Lambda Layersの基本的な紹介や活用方法の詳細については以下記事をご覧ください。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!