Serverless AWS Nested Stacks

Yet another AWS nested stack plugin!

View on Github


serverless npm Build Status codecov

Nested stacks for the Serverless Framework!


Run npm install in your Serverless project.

$ npm install serverless-aws-nested-stacks --save-dev


Write your nested stacks as regular cloudformation and easily integrate them with the Serverless Framework!

This plugin handles:

  • Adding the appropriate AWS::Cloudformation::Stack type resources to the generated sls cloudformation template.
  • Uploading your nested stacks to your designated S3 deployment bucket.

Configuration Reference

  - serverless-aws-nested-stacks

    location: nested-stacks                      # Where do you keep your nested stacks?
      - id: MyGroovyNestedStack                  # Logical ID (Required)
        template: nested-template.yml            # Template file name (Required)
        enabled: true                            # optional flag for enabled/disabling substack
        timeout: 60                              # Minutes before stack creation times out.
        parameters:                              # Stack parameters as key value pairs
          - InstanceType: t1.micro
          - BlahBlah: abc123
        tags:                                    # Stack tags
          - ${file(nested-stacks/core-tags.yml)} # Load tags from a file?
          - CustomTag: Yolo
        notifications:                           # Notification ARN's for SNS
          - arn:aws:sns:region:account-id:topicname

  • custom.nested-stacks.location - (Required) Organisation is important. Keep all your nested stacks in one place and use this attribute to define where that place is.
  • custom.nested-stacks.stacks - (Required) Your very own list of nested stack definitions!
  • - (Required) The logical ID of the nested stack resource.
  • custom.nested-stacks.stacks.template - (Required) The file name of the nested stack. Remember, this file must exist in the directory defined by custom.nested-stacks.location.
  • custom.nested-stacks.stacks.timeout - Time in minutes before the stack creation times out.
  • custom.nested-stacks.stacks.parameters - A list of key value pairs to be passed into the nested stack as parameters.
  • custom.nested-stacks.stacks.tags - A list of key value pairs to be passed into the nested stack as its tags.
  • custom.nested-stacks.stacks.notifications - A list of existing Amazon SNS topics where notifications about stack events are sent.
  • custom.nested-stacks.stacks.dependson - The ID of another CloudFormation resource. Specify another stack ID to order the application of nested stacks.

Want to know more?

Read the AWS Cloudformation documentation for AWS::Cloudformation::Stack resources!