Lambdaでレイヤーを追加する方法


Lambdaって便利ですよね…AWSを利用していて何か便利にしたい!と思ったときに必ずと言っていいほどに活躍してくれています。そんなLambda関数をもっと便利に使うために、「レイヤー」と呼ばれる機能があります。


1.レイヤーとは

公式ドキュメントでは、こんなことが書かれています。


Lambdaレイヤーは、追加のコードまたはデータを含むことができる .zip ファイルアーカイブです。レイヤーには、ライブラリ、 カスタムランタイム 、データ、または設定ファイルを含めることができます。レイヤーを使用すると、コードの共有と責任の分離を促進し、ビジネスロジックの記述をより迅速に繰り返すことができます。
レイヤーは、 .zip ファイルアーカイブとしてデプロイされた Lambda関数でのみ使用できます。コンテナイメージとして定義された関数では、コンテナイメージの作成時に、優先ランタイムとすべてのコード依存関係をパッケージ化します。詳細については、AWS コンピューティングブログの「コンテナイメージの Lambda レイヤーと拡張機能の使用

」を参照してください。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html

ざっくりとまとめると、pipなどのライブラリをLambda関数間で共有できたりします。
レイヤーを使う前は、個々の関数で必要なライブラリをpipして、それをひとまとめにしてzipでアップロードしていました。
ですが、このレイヤーを利用することで、あの関数で使ったライブラリが便利だからこっちでも使いたい!となっても、その関数にレイヤーを追加するだけで利用できるようになります。


2.レイヤー追加

1.左横のメニューから「レイヤー」を選択

2.右上の「レイヤーの追加」を選択

3.名前と説明を記入してzipファイルをアップロード、ランタイムを選択し右下の「作成」をクリック

この時に気を付けたいのが、「ファイル名」です。pipしたライブラリ群をzipします。そしてそのファイル名は、「python.zip」としてください。そうしないとレイヤーを追加できても関数で、うまく動作しません。

4.完成!


3.最後に

これで、一つの関数でしか使えなかったpipも、他の関数でも利用できるようになりました。

最後にもう一度だけ、「アップロードするzipファイルの名前は、python.zipにしましょう」

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です