はじめに
本記事では AWS CloudShell だけを使って、
- Python 3.14
- x86_64
- psycopg2 Lambda Layer
を初期化 → 作成 → zip → ローカルへダウンロードするまでを、手順で解説します。
前提条件
- AWS マネジメントコンソールにログインできる
- CloudShell が利用可能
- Lambda ランタイム:Python 3.14
- アーキテクチャ:x86_64
ゴール
-
psycopg2_py314_layer.zipを作成 - 自分の PC にダウンロード
- Lambda Layer としてそのまま利用可能
Step 1:作業用ディレクトリ作成
mkdir -p ~/psycopg2-layer/python
cd ~/psycopg2-layer
ポイント
-
python/ディレクトリ名は Lambda Layer で必須 - zip 化した際、この直下が
/opt/pythonとして扱われます
Step 2:psycopg2をLambda実行環境向けにインストール
psycopg2はC拡張を含むライブラリのため、Lambda実行環境と同じOSでビルドしないと動きません。
そこで**Lambda公式Dockerイメージ(Python 3.14)**を使います。
docker run --rm \
--entrypoint bash \
-v "$PWD":/var/task \
public.ecr.aws/lambda/python:3.14 \
-lc "pip install -t /var/task/python psycopg2-binary"
補足
-
--entrypoint bashを指定しないと
entrypoint requires the handler name to be the first argument
というエラーになります -
psycopg2-binaryを使うことでビルド不要にしています
Step 3:インストール結果を確認
ls python
以下のように表示されていれば成功です。
psycopg2
psycopg2_binary-2.9.11.dist-info
psycopg2_binary.libs
補足
-
psycopg2_binary-*.dist-infoは pip が生成するメタ情報です - Lambda Layer に含まれていても問題ありません
Step 4:Layer 用 zip を作成
zip -r psycopg2_py314_layer.zip python
確認:
ls
psycopg2_py314_layer.zip
Step 5:CloudShell からローカル PC にダウンロード
- CloudShell 右上の アクション▼ をクリック
- ファイルのダウンロード を選択
- 以下のパスを入力
/home/cloudshell-user/psycopg2-layer/psycopg2_py314_layer.zip
Enter を押すと、ローカルのフォルダにzipファイルがダウンロードされます。
Step 6:Lambda での確認
- Lambda → Layers → Create layer
- 作成した zip をアップロード
- 互換性のあるアーキテクチャ:x86_64
- Runtime:Python 3.14
- Lambda 関数に Layer を追加
動作確認コード
import psycopg2
def lambda_handler(event, context):
return psycopg2.__version__
まとめ
Python レイヤーの環境
- Python 3.14
- x86_64
- psycopg2 Lambda Layer
Python 3.14 環境で psycopg2 Layer を作る際の参考になれば幸いです。