AWS Cloudformation conditions

0

I would like to have an IF-ELSE statement to assign subnets.

If 1 AZ is being used, assign privatesubnet1 to subnets

If 2 AZ is being used, assign privatesubnet1 and privatesubnet2 to subnets

If 3 AZ is being used, assign privatesubnet1, privatesubnet2 and privatesubnet3 to subnets

The IF function handles 1 and 2 AZ well, but I don’t know how to handle 3 AZ

Suggestions are welcome.

Conditions:
  SingleZone:
    !Equals [!Ref NumberOfZones, 1]
  TwoZones:
    !Equals [!Ref NumberOfZones, 2]
  ThreeZones:
    !Equals [!Ref NumberOfZones, 3]
Resources:
  Properties:
    Subnets:
      - !If [TwoZones, !Join [',', [!Ref PrivateSubnet1, !Ref PrivateSubnet2]], !Ref PrivateSubnet1]
      #How to handle ThreeZones
asked a year ago198 views
1 Answer
0

Hi, Look at https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-conditions.html#intrinsic-function-reference-conditions-if

"Fn::If": [condition_name, value_if_true, value_if_false]

You have to create second If in the value_if_false of your current if.

profile pictureAWS
EXPERT
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions