

これは新しい 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` 変換が不要になりました。`DefaultValue` は、任意の CloudFormation テンプレートで使用できます。詳細については、「[`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)」を参照してください。