Questa è la nuova guida CloudFormation di riferimento per i modelli. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida per l'AWS CloudFormation utente.
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
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
JSON
{ "Fn::Select" : [index,listOfObjects] }
YAML
Sintassi per il nome completo della funzione:
Fn::Select: [index,listOfObjects]
Sintassi per la forma breve:
!Select [index,listOfObjects]
Parametri
- index
-
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
L'oggetto selezionato.
Esempi
Esempio di base
Il seguente esempio restituisce: "grapes".
JSON
{ "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] }
YAML
!Select [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ]
Tipo di parametro CommaDelimitedList
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
"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
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
"Subnet0": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select" : [ "0", {"Ref": "DbSubnetIpBlocks"} ] } } }
YAML
Subnet0: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: !Select [ 0, !Ref DbSubnetIpBlocks ]
Funzioni nidificate con YAML in formato breve
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
AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'
YAML
AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'
Funzioni supportate
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