

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le Guide de [AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

La `AWS::LanguageExtensions` transformation améliore la fonctionnalité de la fonction `Fn::FindInMap` intrinsèque dans les CloudFormation modèles.

La `Fn::FindInMap` fonction standard prend en charge uniquement `Fn::FindInMap` et en `Ref` tant que fonctions intrinsèques imbriquées. La `AWS::LanguageExtensions` transformation supprime cette limitation, vous permettant d'utiliser un plus large éventail de fonctions intrinsèques pour définir les paramètres de`Fn::FindInMap`.

**Note**  
Le `DefaultValue` paramètre for `Fn::FindInMap` ne nécessite plus la `AWS::LanguageExtensions` transformation. Vous pouvez l'utiliser `DefaultValue` dans n'importe quel CloudFormation modèle. Pour de plus amples informations, veuillez consulter [`Ventilateur : FindInMap`](intrinsic-function-reference-findinmap.md).

## Déclaration
<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}}"] }
```

Si vous souhaitez spécifier une valeur de remplacement lorsqu'une clé n'est pas trouvée dans le mappage, incluez `DefaultValue` :

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

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

Syntaxe pour le nom complet de la fonction :

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

Syntaxe pour la forme courte :

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

Si vous souhaitez spécifier une valeur de remplacement lorsqu'une clé n'est pas trouvée dans le mappage, incluez `DefaultValue` :

Syntaxe pour le nom complet de la fonction :

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

Syntaxe pour la forme courte :

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

## Parameters
<a name="intrinsic-function-reference-findinmap-enhancements-parameters"></a>

Avec la `AWS::LanguageExtensions` transformation, les paramètres`MapName`, `TopLevelKey``SecondLevelKey`, et `DefaultValue` peuvent chacun être une fonction intrinsèque, à condition qu'ils soient résolus à une valeur valide pendant la transformation.

## Exemples
<a name="w2aac28c16c20c13"></a>

Les exemples suivants montrent comment utiliser des fonctions intrinsèques dans les paramètres de `Fn::FindInMap` l'ajout de la `AWS::LanguageExtensions` transformation.

### Utilisation de fonctions intrinsèques pour définir la clé de premier niveau
<a name="intrinsic-function-reference-findinmap-enhancements-example"></a>

L’exemple suivant illustre l’utilisation d’une fonction `Fn::FindInMap` avec les fonctions intrinsèques `Fn::Select` et `Fn::Split` vectorisées, afin de définir la clé de premier niveau.

#### 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]
#...
```

## Fonctions prises en charge
<a name="intrinsic-function-reference-findinmap-enhancements-supported-functions"></a>

Vous pouvez utiliser les fonctions suivantes dans les paramètres `Fn::FindInMap` de la `AWS::LanguageExtensions` transformation :
+ ``Ventilateur : FindInMap``
+ ``Fn::Join``
+ ``Fn::And``
+ ``Fn::If``
+ ``Fn : :Select``
+ ``Fn::Length``
+ ``Fn::ToJsonString``
+ ``Fn::Split``— À moins qu'il ne soit utilisé pour la valeur par défaut, `Fn::Split` il doit être utilisé conjointement avec des fonctions intrinsèques qui produisent une chaîne, telle que ``Fn::Join`` ou``Fn : :Select``.
+ ``Ref``

## Ressources connexes
<a name="w2aac28c16c20c17"></a>

Pour plus d'informations et des exemples illustrant comment utiliser la fonction `Fn::FindInMap` intrinsèque, y compris le `DefaultValue` paramètre, consultez[`Ventilateur : FindInMap`](intrinsic-function-reference-findinmap.md).

Pour plus d'informations sur la transformation `AWS::LanguageExtensions`, consultez [Transformation `AWS::LanguageExtensions`](transform-aws-languageextensions.md).