LoginSignup
1
0

More than 3 years have passed since last update.

Lambda layer作成のコツ

Last updated at Posted at 2020-04-07

コツ

コツ

コンパイル情報?を必要とするものと必要としないものがあるので注意。

必要としないもの→local PCでもOK.

必要とするもの→amazon linux (nomal)にて作成しなければならない

★展開して250MBこえるとアウト
★layerは5つまでしかできないので固めるのが吉


コンパイル情報を必要としないもの(localPC実施)

  • 基本的にbinは消していい
  • dist-infoも消していい
  • キャッシュも消していい
  • ドラックアンドドロップしてたらDSStore入っているので消す(ゴミなので)
find . -name "__pycache__" | xargs rm -rf
find . -name "*dist-info" | xargs rm -r
find . -name "*.so" | xargs rm
rm -r bin
find . -name ".DS_Store" | xargs rm

必ず親をpythonという名前のディレクトリにしてそれごと固めること!

ls
 python ←ディレクトリ

zip -r hoge.zip *

コンパイル情報を必要とするもの(Amazon linux実施)

  • binや.cは残す
  • dist-infoは消していい
  • キャッシュも消していい
  • python3環境をつくってそれでやるのがベスト
amazonlinuxを作る
1.作る
2.python3.6を入れる
 参照:https://qiita.com/hitobb/items/62bcd1c4995d996d4652
3.pip3 install virtualenv
4.virtualenv -p python3 hoge仮想環境名
5.source hoge/bin/activate
6.sudo yum groupinstall "Development Tools"
 参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/compile-software.html
7.mkdir huga/python
8.pip -V
 python -V
 仮想環境が、python3, pip3になっていることを確認
9.pip install piyo -t ./huga/python

軽量化

find . -name "__pycache__" | xargs rm -rf
find . -name "*dist-info" | xargs rm -r

必ず親をpythonという名前のディレクトリにしてそれごと固めること!

ls
 python ←ディレクトリ

zip -r hoge.zip *

pandas

★依存関係(pip入れると入ってくるもの)
・dateutil
・pandas
・numpy:別のlayerで入るのであればこれ削除して軽くすることも可能 70MB
・pytz
・six.py

pandas: 113MB

pandas-neednumpy: 37.3MB

numpyだけ削除したもの。このlayer単体では動かないので注意。

opencv

★依存関係(pip入れると入ってくるもの)
・cv2
・numpy:別のlayerで入るのであればこれ削除して軽くすることも可能 70MB

ポイント
pandasとopencvを共存させるのであれば、
pandas-neednumpy としてpandasからnumpyを消したlayer①と、numpyが入ったopencv layer②を入れれば良い

opencv: 154.6MB

PIL

Pillowは特殊。
amazonlinux(python3.6なら普通のノーマルlinux)でインストールしたものをzipしないといけないっぽい。
Cのバイナリデータを含む?

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0