

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::Select`
<a name="intrinsic-function-reference-select"></a>

La fonction intrinsèque `Fn::Select` renvoie un seul objet à partir d'une liste d'objets en fonction de son index.

**Important**  
`Fn::Select` ne recherche pas les valeurs null ou ne vérifie pas si l'index sort des limites du tableau. Ces deux conditions entraînent une erreur de la pile. Assurez-vous donc que l’index que vous choisissez est valide et que la liste contient des valeurs autres que null.

## Déclaration
<a name="w2aac24c58b7"></a>

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

```
{ "Fn::Select" : [ index, listOfObjects ] }
```

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

Syntaxe pour le nom complet de la fonction :

```
Fn::Select: [ index, listOfObjects ] 
```

Syntaxe pour la forme courte :

```
!Select [ index, listOfObjects ]
```

## Parameters
<a name="w2aac24c58b9"></a>

index  
Index de l'objet à récupérer. Il doit s'agir d'une valeur comprise entre zéro et N-1, où N représente le nombre d'éléments du tableau.

listOfObjects  
Liste des objets à partir desquels effectuer la sélection. Cette liste ne doit pas être nulle et ne peut pas contenir d'entrées null.

## Valeur renvoyée
<a name="w2aac24c58c11"></a>

Objet sélectionné.

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

### Exemple de base
<a name="w2aac24c58c13b3"></a>

L'exemple suivant renvoie : `"grapes"`.

#### JSON
<a name="intrinsic-function-reference-select-example0.json"></a>

```
{ "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] }
```

#### YAML
<a name="intrinsic-function-reference-select-example0.yaml"></a>

```
!Select [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ]
```

 

### Type de paramètre avec une liste de valeurs séparées par des virgules
<a name="w2aac24c58c13b5"></a>

Vous pouvez utiliser `Fn::Select` pour sélectionner un objet à partir d'un paramètre `CommaDelimitedList`. Vous pouvez utiliser un paramètre `CommaDelimitedList` pour combiner les valeurs des paramètres associés, ce qui réduit le nombre total de paramètres dans le modèle. Par exemple, le paramètre suivant spécifie une liste CSV de trois blocs d'adresses CIDR :

#### JSON
<a name="intrinsic-function-reference-select-example1.json"></a>

```
"Parameters" : {
  "DbSubnetIpBlocks": {
    "Description": "Comma-delimited list of three CIDR blocks",
    "Type": "CommaDelimitedList",
      "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"
  }
}
```

#### YAML
<a name="intrinsic-function-reference-select-example1.yaml"></a>

```
Parameters: 
  DbSubnetIpBlocks: 
    Description: "Comma-delimited list of three CIDR blocks"
    Type: CommaDelimitedList
    Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"
```

Pour spécifier l'un des trois blocs CIDR, utilisez `Fn::Select` dans la section Resources du même modèle, comme illustré dans l'exemple d'extrait suivant :

#### JSON
<a name="intrinsic-function-reference-select-example2.json"></a>

```
"Subnet0": {
  "Type": "AWS::EC2::Subnet",
    "Properties": {
      "VpcId": { "Ref": "VPC" },
      "CidrBlock": { "Fn::Select" : [ "0", {"Ref": "DbSubnetIpBlocks"} ] }
    }
}
```

#### YAML
<a name="intrinsic-function-reference-select-example2.yaml"></a>

```
Subnet0: 
  Type: AWS::EC2::Subnet
  Properties: 
    VpcId: !Ref VPC
    CidrBlock: !Select [ 0, !Ref DbSubnetIpBlocks ]
```

 

### Fonctions imbriquées avec forme courte YAML
<a name="w2aac24c58c13b7"></a>

Les exemples suivants montrent les schémas valides pour l'utilisation des fonctions intrinsèque imbriquées avec la forme courte `!Select`. Comme vous ne pouvez pas imbriquer consécutivement des fonctions de forme courte, un modèle tel que `!GetAZs !Ref` n'est pas valide.

#### YAML
<a name="intrinsic-function-reference-select-example3.yaml"></a>

```
AvailabilityZone: !Select 
  - 0
  - !GetAZs 
    Ref: 'AWS::Region'
```

#### YAML
<a name="intrinsic-function-reference-select-example4.yaml"></a>

```
AvailabilityZone: !Select 
  - 0
  - Fn::GetAZs: !Ref 'AWS::Region'
```

## Fonctions prises en charge
<a name="w2aac24c58c15"></a>

Pour la valeur d'index `Fn::Select`, vous pouvez utiliser les fonctions `Ref` et `Fn::FindInMap`.

Pour la liste d'objets `Fn::Select`, vous pouvez utiliser les fonctions suivantes :
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Split`
+ `Ref`