The following CloudFormation snippet shows how to use conditional properties in an CloudFormation template. The example configures one or two subnets in the VPCOptions section of an Elasticsearch domain, depending on whether a parameter called ZoneAwareness is set to true or not.
Parameters:
ZoneAwareness:
Type: String
AllowedValues: [true, false]
Default: true
Conditions:
ZoneAwarenessTrue: !Equals [!Ref ZoneAwareness, true]
ElasticsearchDomain:
Type: AWS::Elasticsearch::Domain
Properties:
...
VPCOptions:
SubnetIds:
- !Ref SubnetA
- Fn::If:
- ZoneAwarenessTrue
- !Ref SubnetB
- !Ref "AWS::NoValue"
SecurityGroupIds:
- !Ref SecurityGroup
Read more Pseudo Parameters Reference