Optional Parameter in CloudFormation
Sometimes you want a CloudFormation Parameter to be optional. Unfortunately a blank Parameter contains an empty string. If you pass this empty string to e.g. the KeyName
Property of an EC2 Instance or Launch Configuration you end up with a validation error.
Imagine the following CloudFormation template:
{ |
If you leave the KeyName
blank you will get the following error:
cloudonaut plus
Staying ahead of the game with Amazon Web Services (AWS) is a challenge. Our weekly videos and online events provide independent insights into the world of cloud. Subscribe to cloudonaut plus to get access to our exclusive videos and online events.
Subscribe now!Parameter validation failed: parameter value for parameter name KeyName
does not exist. Rollback requested by user.
The solution is the make use of CloudFormation Conditions
, the Condition Function Fn::If
and the Pseudo Parameter AWS::NoValue
.
{ |
Now you can leave the KeyName
parameter blank to not add a EC2 KeyPair to the LaunchConfiguration
.