結論
awsのlambda関数(python)でpdf化を行うライブラリ「reportlab」を使うには、レイヤーの追加が必要だった。既にreportlab用にlambdaレイヤーを作成してくれているのでそちらを使う。
必要かもしれない準備
2023/5/17日現在では、このreportlab用のレイヤーはpython3.8までしか使えない(3.9もいけそう?)ので、pythonのバージョンを合わせる必要があった。
まずはバージョンを確認
$ pyenv versions
* 3.10.3 (set by /Users/user/.pyenv/version)
デフォルトバージョンが3.10なので変更が必要
以下のコマンドを順に打つ。
# python3.8をインストール(3.8代ならなんでも)
$ pyenv install 3.8.8
# デフォルトバージョンを設定
$ pyenv global 3.8.8
# 再度バージョンを確認
$ pyenv versions
最後のコマンドで
* 3.8.8 (set by /Users/user/.pyenv/version)
3.10.3
のように、指定したバージョンの横に*がついていれば大丈夫
ここで、インストールはできているのにデフォルトバージョンが上記コマンドでも変更されない場合は、環境変数でバージョンを指定している可能性がある。
# 環境変数を確認
echo $PYENV_VERSION
これで指定したいものと違えば、以下のコマンドで環境変数を削除する。
この環境変数はターミナルごとに作成されるのでまたターミナルを開き直すとリセットされる。
unset PYENV_VERSION
ちなみに以下のコマンドで再設定することも可能らしい
export PYENV_VERSION=3.10.3
手順
これの通りにレイヤーを追加する。
この記事ではpandasを例にしているが、reportlabを選べばできる。
上記の記事でも出てくるが、以下にレイヤーのARNが一覧で紹介されている