

Questa è la nuova *Guida di riferimento ai modelli CloudFormation *. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la [Guida AWS CloudFormation per l'utente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

La funzione `Fn::Select` intrinseca restituisce un singolo oggetto da un elenco di oggetti in base al relativo indice.

**Importante**  
`Fn::Select` non verifica la presenza di valori Null o se l'indice è fuori dai limiti della matrice. Entrambe le condizioni comporteranno un errore dello stack, per cui devi assicurarti che l'indice che scegli sia valido e che l'elenco non contenga valori Null.

## Dichiarazione
<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>

Sintassi per il nome completo della funzione:

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

Sintassi per la forma breve:

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

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

indice  
Indice dell'oggetto da recuperare. Deve essere un valore compreso tra zero e N-1, dove N rappresenta il numero di elementi nella matrice.

listOfObjects  
L'elenco di oggetti tra cui è possibile scegliere. L'elenco non deve essere Null, né includere voci Null.

## Valore restituito
<a name="w2aac24c58c11"></a>

L'oggetto selezionato.

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

### Esempio di base
<a name="w2aac24c58c13b3"></a>

Il seguente esempio restituisce: `"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 di parametro CommaDelimitedList
<a name="w2aac24c58c13b5"></a>

Puoi utilizzare `Fn::Select` per selezionare un oggetto da un parametro `CommaDelimitedList`. Potresti utilizzare un parametro `CommaDelimitedList` per combinare i valori dei parametri correlati, il che riduce il numero totale di parametri nel modello. Ad esempio, il parametro seguente specifica un elenco di tre blocchi CIDR delimitati dalla virgola:

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

Per specificare uno dei tre blocchi CIDR, utilizza `Fn::Select` nella sezione Resources (Risorse) dello stesso modello, come mostrato nel seguente frammento di esempio:

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

 

### Funzioni nidificate con YAML in formato breve
<a name="w2aac24c58c13b7"></a>

I seguenti esempi mostrano i modelli validi per l'utilizzo di funzioni intrinseche nidificate con il formato breve `!Select`. Non è possibile nidificare funzioni in formato breve in modo consecutivo. Pertanto, un modello simile a `!GetAZs !Ref` non è valido.

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

## Funzioni supportate
<a name="w2aac24c58c15"></a>

Per il valore `Fn::Select` dell'indice, puoi utilizzare le funzioni `Ref` e `Fn::FindInMap`.

Per l'elenco di oggetti `Fn::Select`, puoi utilizzare le seguenti funzioni:
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Split`
+ `Ref`