【AWS】Lambdaデプロイパッケージでライブラリ込みの関数を作成する

Lambda関数でPythonライブラリを使用する

LambdaのPython3ランタイムで実行する関数とライブラリはデプロイパッケージという仕組みで作成することができます。

関数とライブラリをzipにまとめる


ソースコード本体とプログラム実行に必要なライブラリをzipファイルにまとめたものをLambdaデプロイパッケージといい、それをLambda関数へアップロードすることで有効化できるようになります。

(注意)デプロイパッケージはAmazon Linux環境で作成する

Lambda関数が実行されるLambdaコンテナと呼ばれる環境はAmazon Linuxが稼働しているため、デプロイパッケージの作成も基本的にAmazon Linux環境で行う必要があります。

本記事の検証時はデプロイパッケージの開発環境としてAmazon Linux版のEC2インスタンスを起動し、そこにPython3のvenv環境を利用して必要なライブラリのインストールとコードをまとめています。

(参考)
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html
Pythonランタイム

ソースファイルをzipに含める

関数のソースファイルのパスへ移動

cd /home/ec2-user/app/

zipを作成する

zip -r lambda_function.zip lambda_function.py

必要なPythonライブラリをzipに追加する

インストールされているライブラリが存在するパスへ移動
(devはvenv作成用のディレクトリ)

対象のライブラリファイルも先に作成したzipファイルに含める(必要な分だけ)

zip -r /home/ec2-user/app/lambda_function.zip ライブラリファイル名

※作成するzipの中に親ディレクトリは作成せず、ソースファイルとライブラリファイルを直下に含む形にします。

デプロイパッケージを有効化する

zip形式のデプロイパッケージを作成出来たら、Lambda関数の編集画面からそのままアップロードします。

コンソールからLambda > 関数 > 対象を選択 > 「コード」タブ
右上の「アップロード元」を選択し、.zipファイルを選択。

用意しておいたデプロイパッケージをアップロードして保存すると、
ソースコードとライブラリファイルがLambda関数のプロジェクトに展開されます。
(既存のソースは上書きされます)

これでライブラリ込みの関数が実行可能となります。

Follow me!

【AWS】Lambdaデプロイパッケージでライブラリ込みの関数を作成する” に対して1件のコメントがあります。

コメントは受け付けていません。