LoginSignup
0
0

Lamdaレイヤーを作成する(python3.8)

Posted at

Lambdaにレイヤーを追加する

Lamdbaでサードパーティライブラリを使用する場合には「レイヤー」を作成して、関数に追加する必要があります。
今回はレイヤーの作成方法をメモ

Amazon Linux2環境の起動(作成)

LambdaはAmazonLinux環境なので、同一の環境で作成します

docker run -it --rm amazonlinux:2 bash

Python3.8をインストール

yum update -y
yum install -y amazon-linux-extras
amazon-linux-extras enable python3.8
yum install -y python3.8 zip

※Python3.8にしている理由はAmazonLinux2(amazon-linux-extras)でインストール可能なバージョンが3.8だからです。
これ以上のバージョンにするには別な方法でインストールする必要がありますが、今回は割愛(一番簡単な方法のため)

インストール可能なバージョンの確認

amazon-linux-extras list

必要なパッケージをインストール(今回はslack-sdkを例に説明)

mkdir -p /opt/python/lib/python3.8/site-packages
python3.8 -m pip install slack-sdk -t /opt/python/lib/python3.8/site-packages

レイヤー用のZIPファイルを作成

cd /opt
zip -r /opt/slack_sdk_layer.zip python

作成したZIPファイルの取り出し

docker cp <CONTAINER_ID>:/opt/slack_sdk_layer.zip .

Lambdaレイヤーを作成

レイヤー → レイヤーの作成 → レイヤーの設定 にて作成したzipファイルをアップロード
※アーキテクチャにはx86_64 ランタイムにはpython3.8を選択

image.png

image.png

image.png

Lambda関数を作成

Lambdaのランタイムはpython3.8を選択し、関数を作成

関数にレイヤーを追加

関数のレイヤー欄からレイヤーの追加 → カスタムレイヤー → 作成したレイヤーを選択
image.png

これで完成です。

0
0
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
0
0