AWS Layerは、AWS Lambda関数で共有できるリソースのコレクションです。これには、コード、ライブラリ、構成ファイルなど、さまざまなものが含まれます。Layerを使用すると、Lambda関数を再デプロイせずに、関数を共有できるリソースを簡単に追加および更新できます。
Layerは、AWSコンソール、AWS CLI、またはAWS SDKを使用して作成できます。Layerを作成したら、Lambda関数に関連付けることができます。関数に関連付けられたLayerは、関数を呼び出すたびに自動的にダウンロードされます。
Layerを使用すると、Lambda関数のコードを再デプロイせずに、関数を共有できるリソースを追加および更新できます。これは、開発とデプロイの効率を向上させるのに役立ちます。
レイヤー化したいモジュールファイル群の作成
python
という名前のフォルダを任意の場所に作成。
ターミナルで、作成したpython
フォルダに移動
下記コマンドでモジュールをインストールする。****はモジュール名。
pip install **** -t .
python
フォルダをZip圧縮
デプロイ
AWS Lambdaの画面に移動。
左メニューのレイヤーから レイヤーの作成
をクリック
名前:適当な名前
説明:任意
互換性のあるアーキテクチャ:x86_64
互換性のあるランタイム:python3.8 / python3.9
アップロードから作成したZipファイルをアップロード
その後、作成
ボタンを押下
AWS LambdaにLayerを反映
関数の画面下部にある、レイヤーの追加
を押下
レイヤーソース:カスタムレイヤー
カスタムレイヤー:自身で作ったレイヤーを選択
バージョン:使用したいレイヤーのバージョンを選択
で、`追加` ボタンをクリック
ローカルでVS Codeで実行(デバッグ)する際の設定
AWSの
Lambda > レイヤー
のバージョンの箇所に追加したLayerがあるので、そこのバージョンARNをコピープロジェクト直下にある、template.yamlを編集。
先程コピーした、バージョンARNを使って、Layers: の箇所を追加する。
Resources:
function_name:
Properties:
Layers:
- arn:aws:lambda:ap-northeast-1:123456789012:layer:layer_name:1
これで、実行時にLayerがダウンローされる。