title: AWS Lambda メモ lang: ja —
例: openaiライブラリなら
python/openai
python/openai-1.5.0.dist-info
というフォルダ構成で、zip化して、lambdaサービスにレイヤを作成するときにアップロードする.
そのレイヤを個々のlambda関数に適用する.
openaiを使用する場合、もちろんその他のライブラリも必要のため、ローカルで作成した仮想環境の.venv/lib/python3.8/site-packagesの下をpythonフォルダの中に入れてzip化する.
site-packageの下の__pycache__は含めない
pydantic-coreというライブラリが含まれておらず、lambda側で実行できなかった。追加するにはローカルのpythonバージョンがあっていないので、pipでコンパイルしながらダウンロードした。pip install \
--platform manylinux2014_x86_64 \
--target=python \
--implementation cp \
--python-version 3.12 \
--only-binary=:all: --upgrade \
pydantic-core
--targetは保存ディレクトリを指定できる.
def lambda_handler(event, context):
body = json.loads(event.get('body'))
order_text = body.get('orderText')
で、bodyをjson化してから中身のjsonを取る
content-typeが必要。