Changing nestedStackCount in serverless-plugin-split-stacks

94 views Asked by At

Since CloudFormation has a limit of 500 resources, we are splitting our stack with the serverless-plugin-split-stacks plugin. Recently, we have run out of the resources this way as well. The documentation specifies that

Once set, the nestedStackCount configuration should never be changed because the only reliable method of changing it later on is to recreate the deployment from scratch.

My configuration is the following currently:

splitStacks:
  nestedStackCount: 20
  perFunction: false
  perType: false
  perGroupFunction: true

What's a safe way to change my configuration and increase the nestedStackCount without breaking anything? My current deployment has the following steps:

- npm install -g serverless
- sls prune -n 10
- sls deploy

The error I'm receiving is the following:

$ sls deploy
Running "serverless" from node_modules
Compiling with Typescript...
Using local tsconfig.json - tsconfig.json
Typescript compiled.
[serverless-plugin-split-stacks]: Summary: 248 resources migrated into 20 nested stacks
[serverless-plugin-split-stacks]: ├─ (root): 515
[serverless-plugin-split-stacks]: │  ├─ Outputs: 3
[serverless-plugin-split-stacks]: │  └─ Parameters: 0 (References: 1323)
[serverless-plugin-split-stacks]: ├─ 10NestedStack: 18
[serverless-plugin-split-stacks]: │  ├─ Outputs: 5
[serverless-plugin-split-stacks]: │  └─ Parameters: 9 (References: 5)
[serverless-plugin-split-stacks]: ├─ 11NestedStack: 26
[serverless-plugin-split-stacks]: │  ├─ Outputs: 3
[serverless-plugin-split-stacks]: │  └─ Parameters: 9 (References: 22)
[serverless-plugin-split-stacks]: ├─ 12NestedStack: 15
[serverless-plugin-split-stacks]: │  ├─ Outputs: 5
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 5)
[serverless-plugin-split-stacks]: ├─ 13NestedStack: 9
[serverless-plugin-split-stacks]: │  ├─ Outputs: 3
[serverless-plugin-split-stacks]: │  └─ Parameters: 8 (References: 3)
[serverless-plugin-split-stacks]: ├─ 14NestedStack: 6
[serverless-plugin-split-stacks]: │  ├─ Outputs: 2
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 2)
[serverless-plugin-split-stacks]: ├─ 15NestedStack: 10
[serverless-plugin-split-stacks]: │  ├─ Outputs: 2
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 5)
[serverless-plugin-split-stacks]: ├─ 16NestedStack: 6
[serverless-plugin-split-stacks]: │  ├─ Outputs: 2
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 2)
[serverless-plugin-split-stacks]: ├─ 17NestedStack: 9
[serverless-plugin-split-stacks]: │  ├─ Outputs: 3
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 3)
[serverless-plugin-split-stacks]: ├─ 18NestedStack: 18
[serverless-plugin-split-stacks]: │  ├─ Outputs: 6
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 6)
[serverless-plugin-split-stacks]: ├─ 19NestedStack: 3
[serverless-plugin-split-stacks]: │  ├─ Outputs: 1
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 1)
[serverless-plugin-split-stacks]: ├─ 1NestedStack: 18
[serverless-plugin-split-stacks]: │  ├─ Outputs: 6
[serverless-plugin-split-stacks]: │  └─ Parameters: 8 (References: 6)
[serverless-plugin-split-stacks]: ├─ 20NestedStack: 12
[serverless-plugin-split-stacks]: │  ├─ Outputs: 3
[serverless-plugin-split-stacks]: │  └─ Parameters: 9 (References: 4)
[serverless-plugin-split-stacks]: ├─ 2NestedStack: 8
[serverless-plugin-split-stacks]: │  ├─ Outputs: 2
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 2)
[serverless-plugin-split-stacks]: ├─ 3NestedStack: 14
[serverless-plugin-split-stacks]: │  ├─ Outputs: 2
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 11)
[serverless-plugin-split-stacks]: ├─ 4NestedStack: 4
[serverless-plugin-split-stacks]: │  ├─ Outputs: 0
[serverless-plugin-split-stacks]: │  └─ Parameters: 6 (References: 3)
[serverless-plugin-split-stacks]: ├─ 5NestedStack: 21
[serverless-plugin-split-stacks]: │  ├─ Outputs: 7
[serverless-plugin-split-stacks]: │  └─ Parameters: 7 (References: 7)
[serverless-plugin-split-stacks]: ├─ 6NestedStack: 18
[serverless-plugin-split-stacks]: │  ├─ Outputs: 6
[serverless-plugin-split-stacks]: │  └─ Parameters: 8 (References: 6)
[serverless-plugin-split-stacks]: ├─ 7NestedStack: 15
[serverless-plugin-split-stacks]: │  ├─ Outputs: 4
[serverless-plugin-split-stacks]: │  └─ Parameters: 9 (References: 5)
[serverless-plugin-split-stacks]: ├─ 8NestedStack: 15
[serverless-plugin-split-stacks]: │  ├─ Outputs: 5
[serverless-plugin-split-stacks]: │  └─ Parameters: 8 (References: 5)
[serverless-plugin-split-stacks]: └─ 9NestedStack: 3
[serverless-plugin-split-stacks]:    ├─ Outputs: 0
[serverless-plugin-split-stacks]:    └─ Parameters: 7 (References: 1)
× Stack failed to deploy (134s)
Environment: linux, node 18.17.1, framework 3.26.0 (local) 3.36.0v (global), plugin 6.2.2, SDK 4.3.2
Credentials: Local, environment variables
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com/serverless/serverless/issues
Error:
The CloudFormation template is invalid: Template format error: Number of resources, 515, is greater than maximum allowed, 500

Would this break the deployment if I increased the nestedStackCount? What's the best way to do that without braking anything?

Thanks in advance!

0

There are 0 answers