AWS CloudFormation Parameters

Jakob Jenkov
Last update: 2022-06-22

AWS CloudFormation templates can contain parameters. Parameters can be used inside the CloudFormation template to refer to values that are provided at the time the CloudFormation template is used to create a new stack. This means that the same CloudFormation template can be used to create multiple stacks that have variations in the places where parameters are used.

Parameters Section

CloudFormation parameters are defined in their own section inside the CloudFormation template. Here is an example of a CloudFormation template outline that contains the Parameters and Resources sections:

Parameters:

Resources:

The example does not contain any actual parameter definitions. I will show such examples later in this tutorial.

Parameters Example

Here is an AWS CloudFormation parameter example:

Parameters:
  BucketNameParam:
    Description: Name of the bucket
    Type: String


Resources:
  MyS3Bucket:
    Type: "AWS::S3::Bucket"
    Properties:
      AccessControl: PublicRead
      BucketName: !Ref BucketNameParam

This CloudFormation template contains the CloudFormation parameter named BucketNameParam. The parameter is referenced down in the BucketName property of the S3 bucket resource definition in the Resources section.

Referencing a Parameter

To reference a parameter defined in the Parameters section of a CloudFormation template, you use the CloudFormation built-in keyword (function) named !Ref. So, to reference the value of a parameter named MyParameter you would write:

!Ref MyParameter

Default Parameter Values

A CloudFormation parameter can have a default value. This default value is used as parameter value in case no value is provided by the user when creating a stack using the CloudFormation template in which the parameter is defined. Or, the AWS web console will suggest the default value to the user, so it becomes easier to fill in the parameters when creating the CloudFormation stack.

Here is an example of a CloudFormation template that uses a parameter with a default value specified:

Parameters:
  BucketNameParam:
    Description: Name of the bucket
    Type: String
    Default: PrimaryUploadBucket

Resources:
  MyS3Bucket:
    Type: "AWS::S3::Bucket"
    Properties:
      AccessControl: PublicRead
      BucketName: !Ref BucketNameParam

More Parameter Features

AWS CloudFormation parameters have several more features such as MaxValue, MinValue etc. which you can read more about, here:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html

Jakob Jenkov

Featured Videos

Core Software Performance Optimization Principles

Thread Congestion in Java - Video Tutorial















Close TOC

All Trails

Trail TOC

Page TOC

Previous

Next