Serverless Framework で Lambda をデプロイする際に、デフォルトでは前回のバージョンが永遠に残り続け、そのまま放置すると要領不足でデプロイが出来なく危険性があります。本記事では、Serverless Framework の Lambda のバージョンコントロール用のプラグインを使用した、効率的に Lambda バージョン管理方法を紹介します。
AWS Lambda は、デプロイを繰り返すたびに新しいバージョンが発行され、削除しない限りは蓄積され続けます。
バージョンには、以下の情報が含まれています。
つまり、古いソースコードをまるごと保持し続けるので、長期的に AWS の容量エラー ( 最大で75GB ) でデプロイができなくなります。
serverless-prune-plugin プラグインを導入することで、Lambdaのバージョン管理を容易にしてくれます。
$ yarn add serverless-prune-plugin -D
インストールしたら Serverless Framework へ以下のように設定しましょう。
# serverless.yml
plugins:
- serverless-prune-plugin
custom:
prune:
automatic: true
number: 3
上記の automatic
を true
にすることで、自動的に古くなったバージョンを、number
に設定した個数まで削除してくれます。上記の設定では、直近の3つのバージョン以外をデプロイ時に自動的に削除してくれます。
面倒ですが、まずは出来る限り手動で削除しましょう。削除しない限り、デプロイが実行できない=プラグインを実行できない、ということになります。一度デプロイが成功すれば、その後は指定のバージョン数だけが残る為、心配は無用です。もしくは、公式サイトで提供されているCLIを使用する方法もあります。
本記事で紹介した serverless-prune-plugin プラグインは、Serverless Framework 開発の初期設定で必ず設定しておきたいプラグインです。導入すれば大規模なプロジェクトになった後も、安心してデプロイできます。
サーバーレスの開発はお気軽にお問い合わせください。