Fn::FindInMap enhancements - AWS CloudFormation

Fn::FindInMap enhancements

AWS::LanguageExtensions 변환은 CloudFormation 템플릿의 Fn::FindInMap 내장 함수 기능을 향상시킵니다.

Fn::FindInMap 함수는 CloudFormation 템플릿의 Mappings 섹션에 정의된 매핑에서 값을 검색하는 데 사용됩니다. 그러나 표준 Fn::FindInMap 함수에는 누락된 매핑을 처리할 수 없거나 일부 내장 함수가 포함된 Fn::FindInMap 함수를 사용할 수 없는 등의 한계가 있습니다.

AWS::LanguageExtensions 변환은 다음과 같은 개선 사항을 도입하여 이러한 한계를 해결합니다.

  • 기본값 지원 - 매핑을 찾을 수 없는 경우 반환될 기본값을 지정할 수 있습니다.

  • 내장 함수 지원 - 표준 Fn::FindInMap 함수보다 더 다양한 내장 함수를 사용하여 Fn::FindInMap의 필드를 정의할 수도 있습니다.

선언

JSON

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey", {"DefaultValue": "DefaultValue"} ] }

YAML

전체 함수 이름의 구문:

Fn::FindInMap: - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

짧은 형식의 구문:

!FindInMap - MapName - TopLevelKey - SecondLevelKey - DefaultValue: DefaultValue

파라미터

DefaultValue

TopLevelKey 및/또는 SecondLevelKeyMapName 맵에서 찾을 수 없는 경우 Fn::FindInMap이 확인할 값입니다. 이 필드는 선택 사항입니다.

모든 파라미터 MapName, TopLevelKey, SecondLevelKeyDefaultValue는 변환 중 유효한 값으로 확인할 수 있는 한 내장 함수일 수 있습니다.

다음 예제는 AWS::LanguageExtensions 변환을 추가할 때 Fn::FindInMap의 필드를 정의하는 방법을 보여줍니다.

기본값 사용

다음은 Fn::FindInMap 함수에서 기본값을 사용하는 예제입니다.

JSON

{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "RegionMap", { "Ref": "AWS::Region" }, "InstanceType", { "DefaultValue": "t3.micro" } ] //... }

YAML

Transform: 'AWS::LanguageExtensions' #... !FindInMap - 'RegionMap' - !Ref 'AWS::Region' - 'InstanceType' - DefaultValue: t3.micro #...

내장 함수를 사용하여 최상위 키 정의

다음은 Fn::SelectFn::Split 내장 함수가 포함된 Fn::FindInMap 함수를 사용하여 최상위 키를 정의하는 예제입니다.

JSON
{ //... "Transform": "AWS::LanguageExtensions", //... "Fn::FindInMap": [ "MyMap", { "Fn::Select": [ 0, { "Fn::Split": [ "|", { "Ref": "InputKeys" } ] } ] }, "SecondKey" ] //... }
YAML
Transform: 'AWS::LanguageExtensions' #... !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey] #...

지원되는 함수

Fn::FindInMap: 향상 기능의 파라미터에 다음 함수를 사용할 수 있습니다.

관련 리소스

Fn::FindInMap 내장 함수 사용 방법에 대한 자세한 내용과 예제는 Fn::FindInMap 단원을 참조하세요.

AWS::LanguageExtensions 변환에 대한 자세한 내용은 AWS::LanguageExtensions 변환 섹션을 참조하세요.