

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

A função intrínseca `Fn::Select` retorna um único objeto a partir de uma lista de objetos por índice.

**Importante**  
`Fn::Select`O não verifica valores nulos ou se o índice está fora dos limites da série. Ambas as condições resultarão em um erro de pilha, portanto, você deverá ter certeza de que o índice escolhido é válida e se a lista contém valores não nulos.

## Declaração
<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>

Sintaxe para o nome da função completo:

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

Sintaxe para a forma resumida:

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

## Parâmetros
<a name="w2aac24c58b9"></a>

índice  
O índice do objeto para recuperar. Isto deve ser um valor de zero a N-1, onde N representa o número de elementos na série.

listOfObjects  
A lista de objetos para selecionar. Essa lista não deve ser nula nem pode ter entradas nulas.

## Valor de retorno
<a name="w2aac24c58c11"></a>

O objeto selecionado.

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

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

O seguinte exemplo retorna: `"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 da lista delimitada por vírgula
<a name="w2aac24c58c13b5"></a>

Você pode usar `Fn::Select` para selecionar um objeto a partir de um parâmetro `CommaDelimitedList`. Você pode usar um parâmetro `CommaDelimitedList` para combinar os valores dos parâmetros relacionados, que reduz o número total de parâmetros no seu modelo. Por exemplo, o parâmetro a seguir especifica uma lista delimitada por vírgulas de três blocos 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 um dos três blocos de CIDR, use `Fn::Select` na seção Recursos do mesmo modelo, conforme mostrado no snippet de amostra a seguir:

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

 

### Funções aninhadas com YAML em forma abreviada
<a name="w2aac24c58c13b7"></a>

Os exemplos a seguir mostram os padrões válidos para usar as funções intrínsecas aninhadas com a forma abreviada `!Select`. Você não pode aninhar funções em forma abreviada consecutivamente, portanto, um padrão como `!GetAZs !Ref` é invá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'
```

## Funções compatíveis
<a name="w2aac24c58c15"></a>

Para obter o valor de índice de `Fn::Select`, você pode usar as funções `Ref` e `Fn::FindInMap`.

Para obter a lista de objetos `Fn::Select`, use as funções a seguir:
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Split`
+ `Ref`