こんにちは!
サーバーレスアーキテクチャを活用することで、開発・運用のコストを削減しながら、高品質な機能開発を行うことができます。
本記事では、Serverless Prune Pluginを使用したAWS上に保持するLambda関数のバージョン数自動最適化の方法を紹介します。
Serverless Frameworkはデフォルトでは、Lambda関数の過去のバージョンをすべて保持してしまうため、AWSにデプロイされたバージョンの数が膨大となり、リミット制限に引っかかることがあります。
このプラグインは、AWS上に保持するLambda関数のバージョン数をデプロイ後に指定数まで自動削除します。これにより、AWS上に保持可能なLambda関数の合計サイズのリミット制限の回避が可能となります。
Serverless Prune Pluginを使用するには、まず、Serverless Frameworkをインストールします。
次に、Serverless Prune Pluginをインストールします。
npm install serverless-prune-plugin --save-dev
# or
yarn add serverless-prune-plugin -D
# or
sls plugin install -n serverless-prune-plugin
次に、プロジェクトのserverless.ymlファイルにプラグインを追加します。
plugins:
- serverless-prune-plugin最後に、デプロイ時にプラグインを実行するように、deployコマンドを実行します。
以下のコマンドにより、デプロイされた各関数の最新バージョン(n 個)を除くすべてのバージョンが削除されます。エイリアスで参照されるバージョンは自動的に保存されます。
sls prune -n <number of version to keep>
–stageと–regionを使用した絞込も可能です。
sls prune -n <number of version to keep> --stage production --region eu-central-1
デプロイ後に自動的に実行されるように設定することもできます。自動最適化の設定は、serverless.ymlのカスタムプロパティ内で行います。
custom:
prune:
automatic: true
number: 3
Lambda関数と同じようにLambda Layersを対象にすることもできます。includeLayersというプロパティで設定が可能です。
custom:
prune:
automatic: true
includeLayers: true
number: 3
sls prune -n <number of version to keep> --dryRun
本記事では、Serverless Prune Pluginを使用しデプロイ時に不要な過去のバージョンを削除し、AWS上のパッケージサイズを削減する方法を解説しました。
サーバーレス開発、低コストなAWS開発内製化はお気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎