はじめに
LambdaでPandasとMatplotlib(外部ライブラリ)を使おうとしたときにハマったので、備忘録として残しています。
Lambdaの『250MB制限』の壁
デプロイパッケージ (.zip ファイルアーカイブ) のサイズ
50 MB (zip 圧縮済み、直接アップロード)
250 MB (解凍後)
このクォータは、レイヤーやカスタムランタイムなど、アップロードするすべてのファイルに適用されます。
外部ライブラリは『Layer』を用意する
Pandas
- AWSレイヤー(AWS が提供するレイヤー)
- ARN指定(arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-p39-pandas:22)
Matplotlib
- ARN指定(arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-p39-matplotlib:1)
AWSレイヤーでPandasを利用すると、Matplotlibのレイヤーが追加できない(250MB制限があるため)
ARN指定でPandasとMatplotlibを利用すれば、250MBに収まるらしい
参考