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