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:
Level up, strengthen your AWS skills.
Our book Amazon Web Services in Action is a comprehensive introduction to computing, storing, and networking in the AWS cloud. You'll find clear, relevant coverage of all the essential AWS services, emphasizing best practices for security, high availability, and scalability. Get the first chapter for free!
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
Now you can leave the
KeyName parameter blank to not add a EC2 KeyPair to the