dougmoscrop/serverless-plugin-split-stacks

CloudFormation Output count is greater than max allowed 60

raman188 opened this issue · 3 comments

Using Serverless-split-stacks plugin, we try to split the stacks using two options:
i) perType
ii) perFunction

i) Using perType option, we receive - "The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource CheckIntegrationEventsRuleSchedule1" error.
ii) Using perFunction option, we receive - "The CloudFormation template is invalid: Template format error: Unresolved resource dependencies [IamRoleLambdaExecution] in the Resources block of the template" error.

Queries:
i) How we can validate serverless.yml on local server? Please elaborate.
ii) Is there something else we need to do on aws console to resolve cloud formation template related issues.

this seems to be related to #123

Basically this stack trace,

  1. https://github.com/dougmoscrop/serverless-plugin-split-stacks/blob/master/lib/utils.js#L84
  2. https://github.com/dougmoscrop/serverless-plugin-split-stacks/blob/master/lib/replace-outputs.js#L10
  3. https://github.com/dougmoscrop/serverless-plugin-split-stacks/blob/master/split-stacks.js#L65

replaceOutputs is ran after the migrateExistingResources and migrateNewResources above, and thus, bypasses the stack splitting logic altogether.

All these logics should have the migration logics included above,

      .then(() => this.replaceReferences())
      .then(() => this.replaceOutputs())
      .then(() => this.replaceConditions())
      .then(() => this.mergeStackResources())
      .then(() => this.sequenceStacks())

I am currently deciding if I should hard fork this, or make a huge refactor PR that is almost asking for a grinding halt.

My comment above should also applies to #91 and #123.