1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Lambda関数のレイヤー作成と利用【Lambda】

Last updated at Posted at 2024-01-14

はじめに

AWS Lambda Layers(レイヤー)を使用すると複数のLambda関数で共通のコードやライブラリを共有できます。これによりコードの再利用性を向上させ、Lambda関数間で共通の機能やライブラリを簡単に管理できます。
今回の記事ではこのAWSLambdaLayerの作成、設定方法、レイヤーを使うメリットについて記載しています。

レイヤーの作成/設定手順(ローカル環境で作成する場合)

1. Lambda Layer用のプログラムの作成:

①Pythonコードの作成

・ここでは文字列を返すだけのコードを実装しています
2_Code作成.PNG

②依存関係を取得:

・コードが依存している外部パッケージがあれば、これらを取得します。通常、pipを使用して仮想環境で必要なパッケージをインストールします。
・pythonがWindows環境にインストールされていてパスが通っていれば以下のコマンドをコンソール画面で入力すればインストールが可能です

pip install -r requirements.txt -t [インストール先パス]

(実行例)
pip install -r requirements.txt -t ./layerCode

③Pythonコードのzip化

・Windows環境であれば右クリックからの圧縮を選択してZip化が可能です。

★注意★
Zip化後のファイル名の指定は任意ですが、解凍(展開)後のファイルは「python」になるようにフォルダ名を変更してください。pythonではない場合Lambda関数からレイヤーの処理の呼び出しに失敗してしまいます。
Zip化するフォルダ名.PNG
(フォルダ名が異なるため処理失敗したときの画面キャプチャ)
フォルダ名誤り時のエラー.PNG

2. AWSコンソールからレイヤーの作成(アップロード):

①Lambdaコンソール画面から「レイヤーの追加」を選択

6_レイヤー作成1.PNG

②レイヤーの各種情報の入力

・アップロード方法はZipファイルの直接アップロードとAmazonS3にファイルをアップロードした後でそのURLを指定する方法があります
※10MB以上のファイルの場合はS3からファイルをアップロードする選択肢になります
・ランタイムはレイヤーを読み込むLambda関数と互換性のあるランタイムを選択してください
7_レイヤー作成2.PNG

3. Lambda関数へのレイヤーの読み込み

①Lambda関数の設定画面からレイヤーの追加を選択

8_レイヤー設定.PNG

②2の手順で追加したレイヤー(カスタムレイヤー)を選択して追加します

9_レイヤー設定.PNG

4. Lambda関数のコードでレイヤーに含まれる処理の呼び出し

・importでレイヤーを指定します

★注意★
このimportでは「1の手順で作成したpythonファイルの名前」を指定して下さい。レイヤーの名前ではありません

・コード中の必要な場所でレイヤー中の処理を呼び出してください

10_レイヤーから処理呼び出し.PNG

5. 結果確認

・レイヤーのプログラムで実装した文字出力がされていることを確認しました
10_結果確認.PNG

Lambdaレイヤーを使うメリット

1.コードの再利用性

レイヤーを使用することで、関数間でコードを共有しやすくなります。特に複数のLambda関数で同じライブラリや共通の機能を使用する場合、それらのコードをレイヤーにまとめておくことで、冗長性を減少させ、コードの再利用性を向上させることができます。

2.依存関係の管理

レイヤーは、Lambda関数が依存する外部ライブラリやモジュールを管理するための便利な方法です。関数ごとに同じ依存関係を手動で管理する必要がなくなり、レイヤーを更新するだけで関連するすべての関数が更新されます。

3.デプロイの簡素化

レイヤーを使用することで、Lambda関数のデプロイプロセスが簡素化されます。関数自体のコードが独立しているため、変更があった場合でも、関数ごとに再デプロイする必要がなく、レイヤーだけを更新することが可能です。

4.サイズの削減

・Lambda関数のパッケージングサイズを減らすことができます。共通のコードやライブラリがレイヤーに含まれているため、個々の関数のパッケージングサイズは小さくなり、デプロイや起動の速度が向上します。

5.セキュリティと一貫性

・レイヤーを使用することで、セキュリティの向上とコードの一貫性を確保できます。共通のセキュリティ対策や認証メカニズムをレイヤーに統合することで、関数ごとに同じセキュリティポリシーを確実に適用できます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?