はじめに
前回、pythonでAWS Lambda を業務利用で量産するにあたって、自分があると便利だと思うクラス構成の雛形を記事で公開しました。
今回は、その続編です。
(前回はこちら)
基底クラス達を、レイヤーに登録して複数Lambda関数から使いまわすと便利なので、レイヤー機能へ登録するためのメモ書きです。
公式ドキュメント
別言語(NodeJS)でもレイヤー機能を使ってるのですが、よくドキュメント迷子になるので、重要なページをメモ書き。
上記の、「パス」の情報がレイヤー機能を利用する上では、非常に重要なので、引用しておきます。
一言メモ
AWS Lambdaを、ちょっと使った事ある人なら当然ご存知な事かもしれませんが、デプロイする時のZipに含む階層構造が重要になってきます。
python のレイヤー機能では、python のパス(ディレクトリ)を含めて、Zipを作ればという事ですね。
具体例
前回の基底クラスをレイヤーで利用する際に、どんなディレクトリ階層にして登録したら良いかを書いておきます。
(この階層用意の仕方と、Zipの作り方の紐づけが、なかなか説明されない罠どころ)
(ソース管理用のディレクトリ名:フリー命名)
L python
L abstract_base_common.py
と、このように「python」ディレクトリを1つ噛ませておくことが重要です。
cd (ソース管理用のディレクトリ名:フリー命名)
zip -r Layer01.zip ./python
Zipを作るときは、カレントディレクトリ(現在のディレクトリ)を、(ソース管理用のディレクトリ名:フリー命名)に移動して、配下の「python」ディレクトリごと圧縮することが大事です。
※ 解凍したときに、「python」が直下に展開されるようにZipを作る。
まとめ
AWS管理コンソールでの手順や権限回りは他所でもイロイロ書かれているので、レイヤー機能を使うにあたって、あまり言及されない階層構造の用意の仕方や、Zipの作り方に言及しました。
AWSの相談・お困りごとありましたら、、、
AWSの活用方法や、お困りごとの相談、随時、お仕事の受付しております。