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à.
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