

Esta es la nueva *Guía de referencia de plantillas de CloudFormation*. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la [Guía del usuario de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `Fn::Select`
<a name="intrinsic-function-reference-select"></a>

La función intrínseca `Fn::Select` devuelve un único objeto de una lista de objetos por índice.

**importante**  
`Fn::Select` no comprueba si hay valores nulos o si el índice queda fuera de los límites de la matriz. Ambas condiciones llevarán a un error de pila, por lo que tiene que estar seguro de que el índice que elige sea válido y que la lista contiene valores no nulos.

## Declaración
<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>

Sintaxis del nombre de función completo:

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

Sintaxis de la forma abreviada:

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

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

índice  
El índice del objeto para recuperar. Tiene que ser un valor de cero a N-1, donde N representa el número de elementos en la matriz.

listOfObjects  
La lista de objetos para seleccionar. Esta lista no debe ser nula, ni puede tener entradas nulas.

## Valor devuelto
<a name="w2aac24c58c11"></a>

El objeto seleccionado.

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

### Ejemplo básico
<a name="w2aac24c58c13b3"></a>

El ejemplo siguiente devuelve: `"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" ] ]
```

 

### Tipo de parámetros de lista delimitados por comas
<a name="w2aac24c58c13b5"></a>

Puede utilizar `Fn::Select` para seleccionar un objeto de un parámetro `CommaDelimitedList`. Puede utilizar un parámetro `CommaDelimitedList` para combinar los valores de los parámetros relacionados, lo que reduce el número total de parámetros en la plantilla. Por ejemplo, el siguiente parámetro especifica una lista delimitada por comas de tres bloques de 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"
```

Para especificar uno de los tres bloques de CIDR, utilice `Fn::Select` en la sección Resources de la misma plantilla, tal y como se muestra en el siguiente fragmento de código de ejemplo:

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

 

### Funciones anidadas con la forma abreviada YAML
<a name="w2aac24c58c13b7"></a>

Los siguientes ejemplos muestran patrones válidas para el uso de funciones intrínsecas anidadas con la forma abreviada `!Select`. No puede anidar funciones de forma corta consecutivamente, por lo que un patrón como `!GetAZs !Ref` no es válido.

#### 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'
```

## Funciones compatibles
<a name="w2aac24c58c15"></a>

Para el valor índice `Fn::Select`, puede utilizar las funciones `Ref` y `Fn::FindInMap`.

Para la lista de objetos `Fn::Select`, puede usar las siguientes funciones:
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Split`
+ `Ref`