こんにちは!
Serverless Frameworkは、サーバーレスアプリケーションを開発してデプロイするためのオープンソースのフレームワークです。serverless-plugin-split-stacksは、Serverless Frameworkを使って複数のスタックを分割してデプロイするためのプラグインです。
本記事では、serverless-plugin-split-stacksプラグインを使用したスタックの分割方法について解説します。
serverless-plugin-split-stacksを使うと、複数のスタックを分割してデプロイすることができます。
まず、serverless-plugin-split-stacksをインストールします。
npm install --save-dev serverless-plugin-split-stacks
# or
yarn add serverless-plugin-split-stacks -D
次にserverless.ymlファイルに以下のプラグインを追加し、customプロパティを追加します。
plugins:
- serverless-plugin-split-stacks
custom:
splitStacks:
perFunction: true
perType: false
perGroupFunction: false
stackConcurrency: 5 # Controls if enabled and how much stacks are deployed in parallel. Disabled if absent.
resourceConcurrency: 10 # Controls how much resources are deployed in parallel. Disabled if absent.
カスタムプロパティの詳細は以下にまとめました。
プロパティ | 説明 |
---|---|
perFunction | 関連するLambda関数専用のネストされたスタックにリソースを分割するものです。1.xではデフォルトでoffですが、2.xではデフォルトでenabledに切り替わります。 |
perType | 指定されたリソースタイプに対してリソースをネストされたスタックに移動させます。Per Lambdaが有効な場合、Per Typeよりも優先されます。 |
perGroupFunction | Lambda関数と関連するリソースのセット専用のネストされたスタックにリソースを分割するものです。Per LambdaまたはPer Typeが有効な場合、Per Lambda Groupよりも優先されます。 |
stackConcurrency | 有効な場合、どの程度のスタックを並列に配置するかを制御します。 |
resourceConcurrency | 並列に配置されるリソースの量を制御します。 |
スタック分割を、Javascriptでカスタマタイズできます。
サーバーレスフレームワークのデプロイを実行するルートディレクトリに、stacks-map.jsファイルを作成します。
module.exports = (resource, logicalId) => {
if (logicalId.startsWith("Foo")) return { destination: 'Foo' };
// Falls back to default
};
serverless-plugin-split-stacksはルートディレクトリのstacks-map.jsファイルを自動的に読み込みます。上記サンプルでは、リソースの物理IDがFooから始まるリソースを、Fooというスタックにネスト分割しています。
最後に、以下のコマンドを実行して、複数のスタックを分割してデプロイします。
serverless deploy
今回は、Serverless Frameworkのserverless-plugin-split-stacksを使って複数のスタックを分割してデプロイする方法について解説しました。Serverless Frameworkを使うと、複数のスタックを分割してデプロイすることができます。
サーバーレス開発、低コストなAWS開発内製化はお気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎