serverless frameworkでのLambdaファンクション縮小/デプロイ速度向上

serverless framework (v1.4)使用。

include/exclude

普通にデプロイすると、node_modules以下が全てパッケージングされ、各Functionのサイズが大きくなってしまったり、デプロイに時間がかかったりする。
結論としては、パッケージングの設定をきちんとすること。
 
公式ドキュメント参照のこと。
 
この設定はもちろん各Functionごとに独立させることもできるみたい。
 
開発時にwebpackを使っている方なら、(作り方にもよるが)そもそも初めから各エンドポイントに必要なものだけrequireしてbundleする構成にはなってるかと思うので、
一括でnode_modules以下をexcludeしても構わないかもしれない。

serverless.yml

service: hogehoge

package:
  exclude:
    - node_modules/**

...

serverless-webpack排除

2016年末段階ではserverless-webpackプラグインを常用していたが、

serverless deploy function -f <functionName>

に対応していない?ため、全functionの一括デプロイしか手段がなかった。
普通に自前のwebpackでjsを吐いた方が個別にアップロードできるため何かと融通がきくかもしれない。

このプラグインは、

serverless webpack serve

でローカルのテストが簡単にできる利点があったが、serverless-offlineに移行すること。

Read More

serverless framework のデプロイは遅くないんだよ

これまで

serverless deploy

を叩き続けてました。
叩いては遅いなー、こんなんじゃ開発にならないでしょとか思ってました。
毎回cloudformation動くから遅いんじゃないのとか、分かった風な口叩いてました。
apexの方がデプロイ速いから、apex使ってました。
でも勘違いでした。

serverless deploy function -f YOUR_FUNCTION

で、指定したfunctionだけを爆速でデプロイできました。
調子こいてました。
わかってませんでした。
ごめんなさい。
serverless framework良いっすね。
ありがたく使わせていただきます。

Read More