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:
Looking for a new challenge?
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
.