\

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ごとにモジュールをアップする手間がなくなります。.

投稿者 admin

コメントを残す

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