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.
AWS fonctions de règles
Dans la condition ou les assertions d'une règle, vous pouvez utiliser des fonctions intrinsèques, comme Fn::Equals
, Fn::Not
et Fn::RefAll
. La propriété condition détermine si les AWS CloudFormation assertions sont appliquées. Si la condition est évaluée àtrue
, CloudFormation évalue les assertions pour vérifier si une valeur de paramètre est valide lors de la création ou de la mise à jour d'un produit approvisionné. Si la valeur d'un paramètre n'est pas valide, CloudFormation cela ne crée ni ne met à jour la pile. Si la condition est évaluée àfalse
, CloudFormation elle ne vérifie pas la valeur du paramètre et poursuit l'opération de pile.
Fonctions
Fn::And
Renvoie true
si toutes les conditions spécifiées correspondent à true
, ou false
si l'une des conditions indique false
. Fn::And
agit en tant qu'opérateur AND. Le nombre minimum de conditions que vous pouvez inclure est deux, et le maximum est dix.
Déclaration
"Fn::And" : [{condition
}, {...
}]
Paramètres
- condition
-
Fonction intrinsèque spécifique aux règles qui prend la valeur
true
oufalse
.
Exemple
L'exemple suivant a la valeur true
si le nom du groupe de sécurité référencé est égal à sg-mysggroup
et si la valeur du paramètre InstanceType
est m1.large
ou m1.small
:
"Fn::And": [ { "Fn::Equals": [ "sg-mysggroup", {"Ref": "ASecurityGroup"} ] }, { "Fn::Contains": [ [ "m1.large", "m1.small" ], {"Ref": "InstanceType"} ] } ]
Fn::Contains
Renvoie true
si une chaîne spécifiée correspond au moins à une valeur dans une liste de chaînes.
Déclaration
"Fn::Contains" : [[list_of_strings
], string
]
Paramètres
- list_of_strings
-
Liste de chaînes comme
"A", "B", "C"
. - chaîne
-
Chaîne, comme
"A"
, que vous souhaitez comparer à une liste de chaînes.
Exemple
La fonction suivante a la valeur true
si la valeur du paramètre InstanceType
est contenu dans la liste (m1.large
ou m1.small
) :
"Fn::Contains" : [ ["m1.large", "m1.small"], {"Ref" : "InstanceType"} ]
Fn::EachMemberEquals
Renvoie true
si une chaîne spécifiée correspond à toutes les valeurs d'une liste.
Déclaration
"Fn::EachMemberEquals" : [[list_of_strings
], string
]
Paramètres
- list_of_strings
-
Liste de chaînes comme
"A", "B", "C"
. - chaîne
-
Chaîne, comme
"A"
, que vous souhaitez comparer à une liste de chaînes.
Exemple
La fonction suivante renvoie true
si la balise Department
pour l'ensemble des paramètres de type AWS::EC2::VPC::Id
a la valeur IT
:
"Fn::EachMemberEquals" : [ {"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]}, "IT" ]
Fn::EachMemberIn
Renvoie true
si chaque membre d'une liste de chaînes correspond au moins à une valeur d'une deuxième liste de chaînes.
Déclaration
"Fn::EachMemberIn" : [[strings_to_check
], [strings_to_match
]]
Paramètres
- strings_to_check
-
Une liste de chaînes, telles que
"A", "B", "C"
. CloudFormation vérifie si chaque membre dustrings_to_check
paramètre figure dans lestrings_to_match
paramètre. - strings_to_match
-
Liste de chaînes comme
"A", "B", "C"
. Chaque membre du paramètrestrings_to_match
est comparé aux membres du paramètrestrings_to_check
.
Exemple
La fonction suivante vérifie si les utilisateurs spécifient un sous-réseau qui constitue un cloud privé virtuel (VPC) valide. Le VPC doit se trouver dans le compte et la région où les utilisateurs interagissent avec la pile. La fonction s'applique à tous les paramètres de type AWS::EC2::Subnet::Id
.
"Fn::EachMemberIn" : [ {"Fn::ValueOfAll" : ["AWS::EC2::Subnet::Id", "VpcId"]}, {"Fn::RefAll" : "AWS::EC2::VPC::Id"} ]
Fn::Equals
Compare deux valeurs pour déterminer si elles sont égales. Renvoie true
si les deux valeurs sont égales et false
si elles ne le sont pas.
Déclaration
"Fn::Equals" : ["value_1
", "value_2
"]
Paramètres
value
-
Valeur de tout type que vous voulez comparer à une autre valeur.
Exemple
L'exemple suivant prend la valeur true
si la valeur du paramètre EnvironmentType
est égale à prod
:
"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]
Fn::Not
Renvoie true
pour une condition qui prend la valeur false
, et false
pour une condition qui a la valeur true
. Fn::Not
agit en tant qu'opérateur NOT.
Déclaration
"Fn::Not" : [{condition
}]
Paramètres
condition
-
Fonction intrinsèque spécifique aux règles qui prend la valeur
true
oufalse
.
Exemple
L'exemple suivant prend la valeur true
si la valeur du paramètre EnvironmentType
est égale à prod
:
"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]}]
Fn::Or
Renvoie true
si l'une des conditions spécifiées a la valeur true
, ou false
si toutes les conditions ont la valeur false
. Fn::Or
agit en tant qu'opérateur OR. Le nombre minimum de conditions que vous pouvez inclure est deux, et le maximum est dix.
Déclaration
"Fn::Or" : [{condition
}, {...
}]
Paramètres
condition
-
Fonction intrinsèque spécifique aux règles qui prend la valeur
true
oufalse
.
Exemple
L'exemple suivant a la valeur true
si le nom du groupe de sécurité référencé est égal à sg-mysggroup
, ou si la valeur du paramètre InstanceType
est m1.large
ou m1.small
:
"Fn::Or" : [ {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]}, {"Fn::Contains" : [["m1.large", "m1.small"], {"Ref" : "InstanceType"}]} ]
Fn::RefAll
Renvoie toutes les valeurs pour un type de paramètre spécifié.
Déclaration
"Fn::RefAll" : "parameter_type
"
Paramètres
- parameter_type
-
Un type de paramètre AWS spécifique, tel que
AWS::EC2::SecurityGroup::Id
ouAWS::EC2::VPC::Id
. Pour plus d'informations, consultez Paramètres dans le Guide de l'utilisateur AWS CloudFormation .
Exemple
La fonction suivante renvoie une liste de tous les identifiants VPC pour la région Compte AWS dans laquelle la pile est créée ou mise à jour :
"Fn::RefAll" : "AWS::EC2::VPC::Id"
Fn::ValueOf
Renvoie une valeur d'attribut ou une liste des valeurs pour un paramètre et un attribut spécifiques.
Déclaration
"Fn::ValueOf" : [ "parameter_logical_id
", "attribute
" ]
Paramètres
- attribute
-
Nom d'un attribut à partir duquel vous souhaitez extraire une valeur. Pour plus d'informations sur les attributs, consultez Attributs pris en charge.
- parameter_logical_id
-
Nom d'un paramètre pour lequel vous souhaitez extraire des valeurs d'attribut. Le paramètre doit être déclaré dans la section
Parameters
du modèle.
Exemples
L'exemple suivant renvoie la valeur de la balise Department
pour le VPC spécifié par le paramètre ElbVpc
:
"Fn::ValueOf" : ["ElbVpc", "Tags.Department"]
Si vous spécifiez plusieurs valeurs pour un paramètre, la ValueOf fonction Fn : : peut renvoyer une liste. Par exemple, vous pouvez spécifier plusieurs sous-réseaux et obtenir une liste de zones de disponibilité où chaque membre est la zone de disponibilité d'un sous-réseau spécifique :
"Fn::ValueOf" : ["ListOfElbSubnets", "AvailabilityZone"]
Fn::ValueOfAll
Renvoie une liste de toutes les valeurs d'attribut pour un type de paramètre et d'attribut donné.
Déclaration
"Fn::ValueOfAll" : ["parameter_type
", "attribute
"]
Paramètres
- attribute
-
Nom d'un attribut à partir duquel vous souhaitez extraire une valeur. Pour plus d'informations sur les attributs, consultez Attributs pris en charge.
- parameter_type
-
Un type de paramètre AWS spécifique, tel que
AWS::EC2::SecurityGroup::Id
ouAWS::EC2::VPC::Id
. Pour plus d'informations, consultez Paramètres dans le Guide de l'utilisateur AWS CloudFormation .
Exemple
Dans l'exemple suivant, la fonction Fn::ValueOfAll
renvoie une liste de valeurs, où chaque membre est la valeur de balise Department
pour les VPC avec cette balise :
"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]
Fonctions prises en charge
Vous ne pouvez pas utiliser une autre fonction au sein des fonctions Fn::ValueOf
et Fn::ValueOfAll
. Par contre, vous pouvez utiliser les fonctions suivantes dans toutes les autres fonctions intrinsèques spécifiques aux règles :
-
Ref
-
Autres fonctions intrinsèques spécifiques aux règles
Attributs pris en charge
La liste suivante décrit les valeurs d'attribut que vous pouvez extraire pour des ressources et des types de paramètre spécifiques :
- Le type de paramètre
AWS::EC2::VPC::Id
ou ID de VPC. -
-
DefaultNetworkAcl
-
DefaultSecurityGroup
-
Balises.
tag_key
-
- Le type de paramètre
AWS::EC2::Subnet::Id
ou ID de sous-réseau, -
-
AvailabilityZone
-
Balises.
tag_key
-
VpcId
-
- Le type de paramètre
AWS::EC2::SecurityGroup::Id
ou ID de groupe de sécurité. -
-
Balises.
tag_key
-