새로운 AWS CloudFormation 템플릿 참조 안내서입니다. 북마크와 링크를 업데이트하세요. CloudFormation을 시작하는 데 도움이 필요한 경우 AWS CloudFormation 사용 설명서를 참조하세요.
규칙 함수
규칙 함수는 CloudFormation 템플릿의 Rules
섹션에서만 작동하는 특수 함수입니다. 이러한 함수는 사용자 지정 로직을 사용하여 파라미터 값을 검증하는 데 도움이 됩니다. 모든 검증은 CloudFormation에서 리소스를 생성하거나 업데이트하기 전에 수행됩니다.
규칙은 표준 파라미터 제약 조건이 충분하지 않은 경우에 유용합니다. 예를 들어 SSL이 활성화된 경우 인증서와 도메인 이름을 모두 제공해야 합니다. 규칙을 통해 이러한 종속성이 충족되도록 보장할 수 있습니다.
규칙의 조건 또는 어설션에서 Fn::Equals
, Fn::Not
및 Fn::RefAll
등의 내장 함수를 사용할 수 있습니다. 이 조건 속성은 CloudFormation이 어설션을 적용할지 여부를 결정합니다. 조건이 true
로 평가되면 CloudFormation은 스택이 생성되거나 업데이트될 때 파라미터 값의 유효성을 확인하기 위해 어설션을 평가합니다. 파라미터 값이 유효하지 않으면 CloudFormation은 스택을 생성하거나 업데이트하지 않습니다. 조건이 false
로 평가되면 CloudFormation은 파라미터 값을 확인하지 않고 스택 작업을 진행합니다.
템플릿에서 규칙을 처음 사용하는 경우 먼저 AWS CloudFormation 사용자 가이드의 CloudFormation 템플릿 Rules 구문 주제를 검토하는 것이 좋습니다.
주제
Fn::And
모든 지정된 조건이 true
로 평가되면 true
를 반환하고, 조건 중 하나라도 false
로 평가되면 false
를 반환합니다. Fn::And
는 AND 연산자 역할을 합니다. 포함할 수 있는 최소 조건 수는 2이고 최대값은 10입니다.
선언
"Fn::And" : [{condition
}, {...
}]
파라미터
- condition
-
true
또는false
로 평가되는 규칙 관련 내장 함수입니다.
예시
다음 예제가 true
로 평가되려면 참조된 보안 그룹 이름이 sg-mysggroup
과 같고 InstanceType
파라미터 값이 t3.large
또는 t3.small
이어야 합니다.
"Fn::And": [ { "Fn::Equals": [ "sg-mysggroup", {"Ref": "ASecurityGroup"} ] }, { "Fn::Contains": [ [ "t3.large", "t3.small" ], {"Ref": "InstanceType"} ] } ]
Fn::Contains
지정된 문자열이 문자열 목록의 값과 하나 이상 일치하면 true
를 반환합니다.
선언
"Fn::Contains" : [[list_of_strings
], string
]
파라미터
- list_of_strings
-
문자열 목록입니다(예
"A", "B", "C"
). - 문자열
-
문자열 목록과 비교하려는 문자열입니다(예:
"A"
).
예시
다음 함수가 true
로 평가되려면 InstanceType
파라미터 값이 목록(t3.large
또는 t3.small
)에 포함되어야 합니다.
"Fn::Contains" : [ ["t3.large", "t3.small"], {"Ref" : "InstanceType"} ]
Fn::EachMemberEquals
지정된 문자열이 목록의 모든 값과 일치하면 true
를 반환합니다.
선언
"Fn::EachMemberEquals" : [[list_of_strings
], string
]
파라미터
- list_of_strings
-
문자열 목록입니다(예
"A", "B", "C"
). - 문자열
-
문자열 목록과 비교하려는 문자열입니다(예:
"A"
).
예시
AWS::EC2::VPC::Id
유형의 모든 파라미터의 Department
태그가 IT
값을 가지고 있으면 다음 함수는 true
를 반환합니다.
"Fn::EachMemberEquals" : [ {"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]}, "IT" ]
Fn::EachMemberIn
문자열 목록의 각 멤버가 두 번째 문자열 목록의 값과 하나 이상 일치하면 true
를 반환합니다.
선언
"Fn::EachMemberIn" : [[strings_to_check
], [strings_to_match
]]
파라미터
- strings_to_check
-
문자열 목록입니다(예
"A", "B", "C"
). CloudFormation은strings_to_check
파라미터의 각 멤버가strings_to_match
파라미터에 있는지 여부를 확인합니다. - strings_to_match
-
문자열 목록입니다(예
"A", "B", "C"
).strings_to_match
파라미터의 각 멤버를strings_to_check
파라미터의 멤버와 비교합니다.
예시
다음 함수는 사용자가 유효한 Virtual Private Cloud(VPC)에 있는 서브넷을 지정하는지 여부를 확인합니다. VPC는 사용자가 스택을 작업하는 계정과 리전에 있어야 합니다. 이 함수는 AWS::EC2::Subnet::Id
유형의 모든 파라미터에 적용됩니다.
"Fn::EachMemberIn" : [ {"Fn::ValueOfAll" : ["AWS::EC2::Subnet::Id", "VpcId"]}, {"Fn::RefAll" : "AWS::EC2::VPC::Id"} ]
Fn::Equals
두 값을 비교하여 동일한지 여부를 확인합니다. 두 값이 같으면 true
를 반환하고 다르면 false
를 반환합니다.
선언
"Fn::Equals" : ["value_1
", "value_2
"]
파라미터
value
-
다른 값과 비교하려는 유형의 값입니다.
예시
다음 예제가 true
로 평가되려면 EnvironmentType
파라미터의 값이 prod
와 같아야 합니다.
"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]
Fn::Not
false
로 평가되는 조건에 대해 true
를 반환하고 true
로 평가되는 조건에 대해 false
를 반환합니다. Fn::Not
는 NOT 연산자 역할을 합니다.
선언
"Fn::Not" : [{condition
}]
파라미터
condition
-
true
또는false
로 평가되는 규칙 관련 내장 함수입니다.
예시
다음 예제가 true
로 평가되려면 EnvironmentType
파라미터의 값이 prod
와 같지 않아야 합니다.
"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]}]
Fn::Or
지정된 조건 중 하나라도 true
로 평가되면 true
를 반환하고, 모든 조건이 false
로 평가되면 false
를 반환합니다. Fn::Or
는 OR 연산자 역할을 합니다. 포함할 수 있는 최소 조건 수는 2이고 최대값은 10입니다.
선언
"Fn::Or" : [{condition
}, {...
}]
파라미터
condition
-
true
또는false
로 평가되는 규칙 관련 내장 함수입니다.
예시
다음 예제가 true
로 평가되려면 참조된 보안 그룹 이름이 sg-mysggroup
과 같거나 InstanceType
파라미터 값이 t3.large
또는 t3.small
이어야 합니다.
"Fn::Or" : [ {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]}, {"Fn::Contains" : [["t3.large", "t3.small"], {"Ref" : "InstanceType"}]} ]
Fn::RefAll
지정된 파라미터 유형에 대해 모든 값을 반환합니다.
선언
"Fn::RefAll" : "parameter_type
"
파라미터
- parameter_type
-
AWS 특정 파라미터 유형입니다(예:
AWS::EC2::SecurityGroup::Id
또는AWS::EC2::VPC::Id
). 자세한 내용은 AWS CloudFormation 사용 설명서의 지원되는 AWS 특정 파라미터 유형을 참조하세요.
예시
다음 함수는 스택이 생성되거나 업데이트되는 리전 및 AWS 계정의 모든 VPC ID 목록을 반환합니다.
"Fn::RefAll" : "AWS::EC2::VPC::Id"
Fn::ValueOf
특정 파라미터 및 속성의 속성 값 또는 값 목록을 반환합니다.
선언
"Fn::ValueOf" : [ "parameter_logical_id
", "attribute
" ]
파라미터
- 속성
-
값을 가져올 속성의 이름입니다. 속성에 대한 자세한 내용은 지원되는 속성을 참조하십시오.
- parameter_logical_id
-
속성 값을 가져올 파라미터의 이름입니다. 이 파라미터는 템플릿의
Parameters
섹션에서 선언해야 합니다.
예시
다음 예제는 ElbVpc
파라미터에서 지정한 VPC의 Department
태그 값을 반환합니다.
"Fn::ValueOf" : ["ElbVpc", "Tags.Department"]
파라미터 하나에 값을 여러 개 지정하면 Fn::ValueOf 함수가 목록을 반환할 수 있습니다. 예를 들어 서브넷을 여러 개 지정하고 각 멤버가 특정 서브넷의 가용 영역인 가용 영역 목록을 가져올 수 있습니다.
"Fn::ValueOf" : ["ListOfElbSubnets", "AvailabilityZone"]
Fn::ValueOfAll
지정된 파라미터 유형 및 속성의 모든 속성 값 목록을 반환합니다.
선언
"Fn::ValueOfAll" : ["parameter_type
", "attribute
"]
파라미터
- 속성
-
값을 가져올 속성의 이름입니다. 속성에 대한 자세한 내용은 지원되는 속성을 참조하십시오.
- parameter_type
-
AWS 특정 파라미터 유형입니다(예:
AWS::EC2::SecurityGroup::Id
또는AWS::EC2::VPC::Id
). 자세한 내용은 AWS CloudFormation 사용 설명서의 지원되는 AWS 특정 파라미터 유형을 참조하세요.
예시
다음 예제에서 Fn::ValueOfAll
함수는 값 목록을 반환합니다. 여기에서 각 멤버는 Department
태그가 있는 VPC의 해당 태그 값입니다.
"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]
지원되는 함수
Fn::ValueOf
및 Fn::ValueOfAll
함수 내에서는 다른 함수를 사용할 수 없습니다. 그러나 기타 모든 규칙 관련 내장 함수 내에서 다음 함수를 사용할 수 있습니다.
-
Ref
-
다른 규칙 관련 내장 함수
지원되는 속성
다음 목록은 특정 리소스 및 파라미터 유형에 대해 가져올 수 있는 속성 값을 설명합니다.
AWS::EC2::VPC::Id
파라미터 유형 또는 VPC ID-
-
DefaultNetworkAcl
-
DefaultSecurityGroup
-
태그.
tag_key
-
AWS::EC2::Subnet::Id
파라미터 유형 또는 서브넷 ID-
-
AvailabilityZone
-
태그.
tag_key
-
VpcId
-
AWS::EC2::SecurityGroup::Id
파라미터 유형 또는 보안 그룹 ID-
-
태그.
tag_key
-