NOTICE: AWS CloudFormation Template Builder is now deprecated.
You should use rain instead. rain build
is equivalent to cfn-skeleton
.
See the rain build documentation for details.
This repository contains cfn-skeleton
, a command line tool and Go library that consumes the published CloudFormation specification and generates skeleton CloudFormation templates with mandatory and optional parameters of chosen resource types pre-filled with placeholder values.
This project is licensed under the Apache 2.0 License.
You can install cfn-skeleton
in one of the following three ways:
-
Use the snap package
-
Download the latest release for your operating system.
-
If you have go installed, run the following:
GO111MODULE=on go get github.com/awslabs/aws-cloudformation-template-builder/cmd/cfn-skeleton
cfn-skeleton [OPTIONS] [RESOURCE TYPES...]
cfn-skeleton is a tool that generates skeleton CloudFormation templates
containing definitions for the resource types that you specify.
You can use a short name for a resource type so long as it is unambiguous.
For example 'Bucket', 'S3::Bucket', and 'AWS::S3::Bucket' refer to the same type.
But 'Instance' would need disambiguation.
Options:
-b, --bare Produce a minimal template, omitting all optional resource properties.
-j, --json Output the template in JSON format (default: YAML).
--help Show this message and exit.
Resource names must be delimited by spaces. If you specify more than one of the same resource type, you will get multiple resources in the output template; cfn-skeleton
will ensure that the names are unique by adding numbers.
cfn-skeleton -b Bucket EC2::Instance
Output:
# Template generated by cfn-skeleton
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyBucket:
Type: AWS::S3::Bucket
Properties:
{}
MyInstance:
Type: AWS::EC2::Instance
Properties:
{}
To output JSON, use the -j
or --json
flag.
Note that JSON output will include comments that help you identify optional properties of CloudFormation resources; however, comments are not supported in the JSON specification and will be rejected by AWS CloudFormation. Once you have finished editing your template, ensure that you remove all comments.
cfn-skeleton -b -j Bucket
Output
{ // Template generated by cfn-skeleton
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"MyBucket": {
"Type": "AWS::S3::Bucket",
"Properties": {}
}
}
}