CLOUD/AWS

[AWS] Cloudformation Conditions, AllowedPattern으로 파라미터 값 검사하기

지수쓰 2022. 2. 15. 20:35
반응형

Cloudformation

AllowedPattern으로 특정 패턴이 아니면 설정하지 않는 법

1. Default값을 설정하고, 특정 정규식과 Default값만 가능하게 AllowedPattern을 지정한다.

  InboundIp:
    Type: String
    Default: unused
    AllowedPattern: "^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[/][0-9]{1,2}$|^unused$"

2. Conditions 지정

Conditions:
  IsUnused: !Equals [!Ref InboundIp, "unused"]

Conditions는 Parameter, Metadata와 같은 줄에 생성해야 한다.
해당 String이 unused인지 아닌지를 확인하는 조건식이다

3. 리소스 생성

Security Group을 예로 들면

// SecurityGroupInbounds리스트부분에 
        - !If
          - IsUnused # 해당 값이 true인지 false인지 Condition 확인 
          - !Ref AWS::NoValue # True이면 NoValue -> Security Group 설정하지 않겠다는 의미
          - IpProtocol: all # False이면 Security Group 생성 
            FromPort: -1
            ToPort: -1
            CidrIp: !Ref InboundIp
            Description: !Ref EKSSecurityRule1IpName

List형식으로 되면 If문을 어떻게 걸어줘야 하나 했는데 다음과 같이 하면 된다.