ビデオリサーチのニシです。
本日は AWS Lambda(以下、Lambda)のデプロイパッケージのクォータ制限についてお話します。
Lambdaのデプロイパッケージのクォータ制限と聞くと、多くの方が「250MB!」と思い浮かべるのではないでしょうか。私もその一人です。
ある日、いつも通りにServerless Frameworkを使ってLambdaをデプロイしようとしたところ、次のエラーメッセージに遭遇しました。
Function code combined with layers exceeds the maximum allowed size of 262144000 bytes. The actual size is 263660487 bytes.
パッと見て、「あー、Lambdaのデプロイパッケージサイズが超えてしまった」と思いました。
そこで、serverless packageコマンドでLambdaのコードをローカルでパッケージングしてみました。(Serverless Frameworkは便利ですね!)
ローカルでライブラリを含めてパッケージングされたファイルのサイズを見ても、数百MBもなく、「あれ?おかしいな?」と思いました。
困りながらもう一度エラーメッセージを見てみると、
Function code combined with layers exceeds the maximum allowed size of 262144000 bytes. The actual size is 263660487 bytes.
文章の頭を見逃していました…
モニタリングのためにDatadogのLambda Layers(以下、Layer)を追加しようとしていたのですが、そのLayerも含めたデプロイパッケージのサイズが250MBを超えてはならない、ということをここで初めて知りました。
AWSのLambda quotes ドキュメントにも書かれていました。
今回はライブラリを見直し、不要なライブラリを削除することで、何とかLayerを含めた状態でLambdaをデプロイできました。
本日はここまでです。
この記事が誰かの役に立てば嬉しいです。