PythonとAWS Lambdaを用いて自作モジュールを作成し、それを共通ライブラリとして複数のLambdaで使用する方法について説明します。
Lambda Layersとは
Lambda Layersは、追加のコードやデータを含めることができる.zipファイルアーカイブです。レイヤーには、ライブラリ、カスタムランタイム、データ、または設定ファイルを含めることができます。レイヤーを使用すると、コードの共有と責任の分離を促進し、ビジネスロジックの記述をより迅速に繰り返すことができます。
自作モジュールの作成
Lambda Layersにアップロードされたモジュールは、/optの領域に展開されます。そのため、指定されたディレクトリにPythonモジュールを格納してアップロードすることでLambdaを実行した際にモジュールとして自動的に読み込むことができます。
以下に、Pythonで自作モジュールを作成する一例を示します。
# python_layer.py
from datetime import datetime, timedelta
import boto3
# Method
def today():
dateJST = datetime.today() + timedelta(hours=9)
return dateJST.strftime("%F")
def days_after(days_after_number):
dateJST = datetime.today() + timedelta(hours=9)
days_after_JST = dateJST + timedelta(days=days_after_number)
return days_after_JST.strftime("%F")
# Table
dynamodb = boto3.resource('dynamodb')
dynamodb_table = dynamodb.Table("users")
# Constant
TYPE = 'all'
このモジュールは、現在の日付と指定した日数後の日付を取得する関数を提供します。
Lambda Layerへのアップロード
作成したPythonモジュールをLambda Layerにアップロードするには、まずモジュールを含むディレクトリを作成し、そのディレクトリを.zip形式で圧縮します。その後、AWS Lambdaコンソールから新しいレイヤーを作成し、作成した.zipファイルをアップロードします。
以上が、PythonとLambda Layersを用いて自作モジュールを作成し、それを共通ライブラリとして複数のLambdaで使用する基本的な手順です。これにより、Lambdaのソースコードの量を減らすことができ、各Lambdaごとにモジュールをアップする手間がなくなります。.