Lambdaでcryptographyを使う(Python3.8 + cryptography)


はじめに

Lambdaでcryptographyを使う際に、モジュールをレイヤーで追加しました。
その手順の記録です。

手順

クラウドシェルでPythonS3のライブラリをZip圧縮して、cryptographyのレイヤーを作成します。
一時的に保存するS3は事前に準備しておきます。

①cryptographyのファイルを取得する

クラウドシェルを起動

Pythonを3.8にする

バージョンを確認

python3 -V

3.8でなければ、3.8にする。3.7.9だった。

# Pythonを3.8にする
sudo amazon-linux-extras install python3.8 -y
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

「python3 -V」で確認して、3.8.ならOK。3.8.5になった。

pipをインストール

# pipインストール
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

cryptographyを取得&Zip化

pip install cryptography -t python
zip -r cryptography.zip python

S3に保存

aws s3 cp cryptography.zip s3://<my-bucket>/

※<>のところは、自身の設定

②Lambdaレイヤーの作成

LambdaのWebコンソールから、レイヤーを作成します。

  • 先ほどS3に保存したファイルを選択します。
  • ランタイムはPython3.8にします。

③Lambda関数に、Lambdaレイヤーの追加

LambdaのWebコンソールから、関数を作成します。
関数のコードの下の方に、レイヤーを設定する場所があります。

  • Lambda関数のランタイムはPython3.8とします。
  • 先ほど追加したレイヤーを追加します。

おわりに

Lambda便利です!