Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fn::Select
La fonction intrinsèque Fn::Select
renvoie un seul objet à partir d'une liste d'objets en fonction de son index.
Important
Fn::Select
ne recherche pas les valeurs null ou ne vérifie pas si l'index sort des limites du tableau. Ces deux conditions entraînent une erreur de la pile. Assurez-vous donc que l'index que vous choisissez est valide et que la liste contient des valeurs autres que null.
Déclaration
JSON
{ "Fn::Select" : [
index
,listOfObjects
] }
YAML
Syntaxe pour le nom complet de la fonction :
Fn::Select: [
index
,listOfObjects
]
Syntaxe pour la forme courte :
!Select [
index
,listOfObjects
]
Paramètres
- index
-
Index de l'objet à récupérer. Il doit s'agir d'une valeur comprise entre zéro et N-1, où N représente le nombre d'éléments du tableau.
- listOfObjects
-
Liste des objets à partir desquels effectuer la sélection. Cette liste ne doit pas être nulle et ne peut pas contenir d'entrées null.
Valeur renvoyée
Objet sélectionné.
Exemples
Exemple de base
L'exemple suivant renvoie : "grapes"
.
JSON
{ "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] }
YAML
!Select [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ]
Type de paramètre avec une liste de valeurs séparées par des virgules
Vous pouvez utiliser Fn::Select
pour sélectionner un objet à partir d'un paramètre CommaDelimitedList
. Vous pouvez utiliser un paramètre CommaDelimitedList
pour combiner les valeurs des paramètres associés, ce qui réduit le nombre total de paramètres dans le modèle. Par exemple, le paramètre suivant spécifie une liste de trois blocs séparés par des virgules : CIDR
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"
Pour spécifier l'un des trois CIDR blocs, Fn::Select
utilisez-le dans la section Ressources du même modèle, comme indiqué dans l'exemple d'extrait suivant :
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 ]
Fonctions imbriquées avec forme abrégée YAML
Les exemples suivants montrent les schémas valides pour l'utilisation des fonctions intrinsèque imbriquées avec la forme courte !Select
. Comme vous ne pouvez pas imbriquer consécutivement des fonctions de forme courte, un modèle tel que !GetAZs !Ref
n'est pas valide.
YAML
AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'
YAML
AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'
Fonctions prises en charge
Pour la valeur d'index Fn::Select
, vous pouvez utiliser les fonctions Ref
et Fn::FindInMap
.
Pour la liste d'objets Fn::Select
, vous pouvez utiliser les fonctions suivantes :
-
Fn::FindInMap
-
Fn::GetAtt
-
Fn::GetAZs
-
Fn::If
-
Fn::Split
-
Ref