CloudFormation에서 리소스에 조건부 태그 지정

2582 단어 cloudformationaws
CloudFormation에서 리소스에 태그를 지정하는 것은 간단하지만 조건부로 리소스에 태그를 지정하는 것은 다소 명확하지 않으며 conditions 을 사용해야 합니다.

사용 사례: 릴리스 버전 태그 지정



비밀이 프로덕션에 배포될 때 릴리스 버전으로 조건부로 Secrets Manager 비밀에 태그를 지정할 수 있는 기능을 원했습니다. 낮은 환경의 경우 릴리스 버전을 지정하고 싶지 않았거나 지정하고 싶지 않았습니다.

먼저 릴리스 버전을 포함할 매개변수를 정의합니다.

Parameters:
    ReleaseVersion:
        Type: String
        Description: The release version e.g. 1.2.3
        Default: ''


다음으로 매개변수에 대해 기본값이 아닌 값이 제공되었는지 여부를 쉽게 확인하기 위한 조건을 정의합니다.

Conditions:
    HasNoReleaseVersion:
        !Equals [!Ref ReleaseVersion, '']


마지막으로 release의 평가에 따라 HasNoReleaseVersion 태그를 조건부로 설정하여 리소스에 모두 연결합니다.

Resources:
    MySecret:
        Properties:
            Tags:
                - Fn::If:
                    - HasNoReleaseVersion
                    - !Ref AWS::NoValue
                    - Key: release
                    - Value: !Ref ReleaseVersion

AWS::NoValue pseudo parameter은 릴리스 버전에 대해 기본값이 아닌 값이 제공되지 않는 한 태그가 생성되지 않도록 합니다.

좋은 웹페이지 즐겨찾기