

새로운 *CloudFormation 템플릿 참조 안내서*입니다. 북마크와 링크를 업데이트하세요. CloudFormation을 시작하는 데 도움이 필요한 경우 [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 참조하세요.

# `Fn::FindInMap enhancements`
<a name="intrinsic-function-reference-findinmap-enhancements"></a>

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

표준 `Fn::FindInMap` 함수는 `Fn::FindInMap` 및 `Ref`만 중첩 내장 함수로 지원합니다. `AWS::LanguageExtensions` 변환은 이 제한을 제거함으로써 더 광범위한 내장 함수를 사용하여 `Fn::FindInMap`의 파라미터를 정의하도록 합니다.

**참고**  
`Fn::FindInMap`의 `DefaultValue` 파라미터에는 더 이상 `AWS::LanguageExtensions` 변환이 필요하지 않습니다. 모든 CloudFormation 템플릿에서 `DefaultValue`을(를) 사용할 수 있습니다. 자세한 내용은 [`Fn::FindInMap`](intrinsic-function-reference-findinmap.md) 섹션을 참조하세요.

## 선언
<a name="intrinsic-function-reference-findinmap-enhancements-declaration"></a>

### JSON
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.json"></a>

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

매핑에서 키를 찾을 수 없을 때 폴백 값을 지정하려면 `DefaultValue`을(를) 포함합니다.

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

### YAML
<a name="intrinsic-function-reference-findinmap-enhancements-syntax.yaml"></a>

전체 함수 이름의 구문:

```
Fn::FindInMap: [ {{MapName}}, {{TopLevelKey}}, {{SecondLevelKey}} ]
```

짧은 형식의 구문:

```
!FindInMap [ {{MapName}}, {{TopLevelKey}}, {{SecondLevelKey}} ]
```

매핑에서 키를 찾을 수 없을 때 폴백 값을 지정하려면 `DefaultValue`을(를) 포함합니다.

전체 함수 이름의 구문:

```
Fn::FindInMap:
  - {{MapName}}
  - {{TopLevelKey}}
  - {{SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

짧은 형식의 구문:

```
!FindInMap
  - {{MapName}}
  - {{TopLevelKey}}
  - {{SecondLevelKey}}
  - DefaultValue: {{DefaultValue}}
```

## 파라미터
<a name="intrinsic-function-reference-findinmap-enhancements-parameters"></a>

`AWS::LanguageExtensions` 변환에서는 `MapName`, `TopLevelKey`, `SecondLevelKey`, `DefaultValue` 매개변수가 각각 내장 함수일 수 있습니다. 단, 변환 중 유효한 값으로 확인되어야 합니다.

## 예제
<a name="w2aac28c16c20c13"></a>

다음 예제에서는 `AWS::LanguageExtensions` 변환을 추가할 때 `Fn::FindInMap`의 파라미터에서 내장 함수를 사용하는 방법을 보여줍니다.

### 내장 함수를 사용하여 최상위 키 정의
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

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

#### JSON
<a name="intrinsic-function-reference-findinmap-enhancement-example.json"></a>

```
{
  //...
  "Transform": "AWS::LanguageExtensions",
  //...
      "Fn::FindInMap": [
        "MyMap",
        {
          "Fn::Select": [
            0,
            {
              "Fn::Split": [
                "|",
                { "Ref": "InputKeys" }
              ]
            }
          ]
        },
        "SecondKey"
      ]
//...
}
```

#### YAML
<a name="intrinsic-function-reference-findinmap-enhance-example.yaml"></a>

```
Transform: 'AWS::LanguageExtensions'
#...
    !FindInMap: [MyMap, !Select [0, !Split [|, !Ref InputKeys]], SecondKey]
#...
```

## 지원되는 함수
<a name="intrinsic-function-reference-findinmap-enhancements-supported-functions"></a>

`AWS::LanguageExtensions` 변환이 포함된 `Fn::FindInMap`의 파라미터에서 다음 함수를 사용할 수 있습니다.
+ ``Fn::FindInMap``
+ ``Fn::Join``
+ ``Fn::Sub``
+ ``Fn::If``
+ ``Fn::Select``
+ ``Fn::Length``
+ ``Fn::ToJsonString``
+ ``Fn::Split`` - 기본값으로 사용되지 않는 한 `Fn::Split`은(는) ``Fn::Join`` 또는 ``Fn::Select``와 같이 문자열을 생성하는 내장 함수와 함께 사용해야 합니다.
+ ``Ref``

## 관련 리소스
<a name="w2aac28c16c20c17"></a>

`DefaultValue` 매개변수를 포함하여 `Fn::FindInMap` 내장 함수 사용 방법에 대한 자세한 내용과 예제는 [`Fn::FindInMap`](intrinsic-function-reference-findinmap.md) 단원을 참조하세요.

`AWS::LanguageExtensions` 변환에 대한 자세한 내용은 [`AWS::LanguageExtensions` 변환](transform-aws-languageextensions.md) 섹션을 참조하세요.