IT

【AWS Lambda】Pythonカスタムレイヤーのよくあるミス

はじめに

AWS Lambdaのカスタムレイヤーは、複数の関数間でコードやライブラリを共有するための強力な機能です。

しかし、Pythonを使用する場合、よくある落とし穴があります。

問題:カスタムレイヤーが機能しない

原因

多くの場合、問題はディレクトリ構造にあります。AWSは、各ランタイム用に使用するディレクトリ名を指定しています。

私はここでコケて時間使っちゃいました。

Pythonの場合、そのディレクトリ名は python でなければなりません。

ドキュメントのPackaging your layer contentにその旨記述がありました。

RuntimePath
Pythonpython
公式ドキュメントから抜粋

解決策

以下の手順で、利用できるPythonのカスタムレイヤー用ファイルが作成できます。

  1. 適切な名前のディレクトリを作成する:

mkdir python

2.必要なパッケージをインストールする:

pip install requests -t python/

-tはtargetの意味でここだとpythonというディレクトリにインストールしなさい。の意味です。

3.レイヤーをZIPファイルにパッケージング:

zip -r requests-layer.zip python

zipのファイル名自体はなんでもOKです。

4.作成済みのカスタムレイヤーに新しいバージョンを作成

上記Zipをアップロードして、Lambda関数でこのバージョンを参照させてEND。

まとめ

カスタムレイヤーを作成する際は、ランタイム環境に合わせたディレクトリ構造が重要です。

Pythonの場合、必ず python というディレクトリ名を使用してください。

以上、初めてカスタムレイヤーを使用する場合や、トラブルシューティングの際に、この記事が参考になれば幸いです。

  • この記事を書いた人

緑川縁

ニートからシステムエンジニアになった人
クラウド案件をメインにやっています。
保持資格:CCNA,AWS SAA&SAP,秘書検定2級
趣味でボカロ曲作り始めました。

-IT
-, ,