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:
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
.
- Serving content only to logged-in users with CloudFront Signed Cookies
- Multi-Region AWS Architectures
- Fargate is ready for prime time, and we share our CloudFormation templates
- Builder’s Diary Vol. 2: Serverless ETL with Airflow and Athena
- AWS Advent has started: Deploy your AWS Infrastructure Continuously