Questa è la nuova Guida di riferimento ai modelli CloudFormation. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida AWS CloudFormation per l'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à.
Funzioni delle regole
Le funzioni delle regole sono funzioni speciali che funzionano solo nella sezione Rules di un modello CloudFormation. Queste funzioni ti consentono di convalidare i valori dei parametri utilizzando una logica personalizzata. Tutte le convalide avvengono prima che CloudFormation crei o aggiorni qualsiasi risorsa.
Le regole sono utili quando i vincoli dei parametri standard sono insufficienti. Ad esempio, quando SSL è abilitato, devono essere forniti sia un certificato che un nome di dominio. Una regola può garantire il rispetto di queste dipendenze.
Nella condizione o nelle asserzioni di una regola, puoi utilizzare le funzioni intrinseche, ad esempio Fn::Equals, Fn::Not e Fn::RefAll. La proprietà della condizione determina se CloudFormation applica le asserzioni. Se la condizione restituisce true, CloudFormation valuta le asserzioni per verificare se un valore di parametro è valido quando si crea o si aggiorna uno stack. Se un valore di parametro non è valido, CloudFormation non crea o aggiorna lo stack. Se la condizione restituisce false, CloudFormation non verifica il valore di parametro e procede con l’operazione di stack.
Se non sai come utilizzare le regole nei tuoi modelli, ti consigliamo di consultare prima l’argomento CloudFormation template Rules syntax nella Guida per l’utente di AWS CloudFormation.
Argomenti
Fn::And
Restituisce true se tutte le condizioni specificate vengono valutate true; restituisce false se una qualsiasi delle condizioni corrisponde a false. Fn::And agisce come operatore AND. Il numero minimo di condizioni che puoi includere è due, il numero massimo è dieci.
Dichiarazione
"Fn::And" : [{condition}, {...}]
Parametri
- condition
-
Una funzione intrinseca specifica delle regole che restituisce
trueofalse.
Esempio
L’esempio seguente restituisce true se il nome del gruppo di sicurezza a cui si fa riferimento è uguale a sg-mysggroup e se il valore di parametro InstanceType è t3.large o t3.small:
"Fn::And": [ { "Fn::Equals": [ "sg-mysggroup", {"Ref": "ASecurityGroup"} ] }, { "Fn::Contains": [ [ "t3.large", "t3.small" ], {"Ref": "InstanceType"} ] } ]
Fn::Contains
Restituisce true se una stringa specificata corrisponde ad almeno un valore in un elenco di stringhe.
Dichiarazione
"Fn::Contains" : [[list_of_strings], string]
Parametri
- list_of_strings
-
Un elenco di stringhe, ad esempio
"A", "B", "C". - string
-
Una stringa, ad esempio
"A", che intendi confrontare con un elenco di stringhe.
Esempio
La funzione seguente restituisce true se il valore di parametro InstanceType è incluso nell’elenco (t3.large o t3.small):
"Fn::Contains" : [ ["t3.large", "t3.small"], {"Ref" : "InstanceType"} ]
Fn::EachMemberEquals
Restituisce true se una stringa specificata corrisponde a tutti i valori in un elenco.
Dichiarazione
"Fn::EachMemberEquals" : [[list_of_strings], string]
Parametri
- list_of_strings
-
Un elenco di stringhe, ad esempio
"A", "B", "C". - string
-
Una stringa, ad esempio
"A", che intendi confrontare con un elenco di stringhe.
Esempio
La funzione seguente restituisce true se il tag Department per tutti i parametri di tipo AWS::EC2::VPC::Id hanno valore IT:
"Fn::EachMemberEquals" : [ {"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]}, "IT" ]
Fn::EachMemberIn
Restituisce true se ogni membro in un elenco di stringhe corrisponde ad almeno un valore in un secondo elenco di stringhe.
Dichiarazione
"Fn::EachMemberIn" : [[strings_to_check], [strings_to_match]]
Parametri
- strings_to_check
-
Un elenco di stringhe, ad esempio
"A", "B", "C". CloudFormation verifica se ogni membro nel parametrostrings_to_checkè nel parametrostrings_to_match. - strings_to_match
-
Un elenco di stringhe, ad esempio
"A", "B", "C". Ogni membro nel parametrostrings_to_matchviene confrontato con i membri del parametrostrings_to_check.
Esempio
La funzione seguente verifica se gli utenti specificano una sottorete in un Virtual Private Cloud (VPC) valido. Il VPC deve essere nell’account e nella Regione in cui gli utenti utilizzano lo stack. La funzione si applica a tutti i parametri di tipo AWS::EC2::Subnet::Id.
"Fn::EachMemberIn" : [ {"Fn::ValueOfAll" : ["AWS::EC2::Subnet::Id", "VpcId"]}, {"Fn::RefAll" : "AWS::EC2::VPC::Id"} ]
Fn::Equals
Confronta due valori per determinare se sono uguali. Restituisce true se i due valori sono uguali e false se non lo sono.
Dichiarazione
"Fn::Equals" : ["value_1", "value_2"]
Parametri
value-
Un valore di qualsiasi tipo che intendi confrontare con un altro valore.
Esempio
L’esempio seguente restituisce true se il valore per il parametro EnvironmentType è uguale a prod:
"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]
Fn::Not
Restituisce true per una condizione che viene valutata false e restituisce false per una condizione che viene valutata true. Fn::Not agisce come operatore NOT.
Dichiarazione
"Fn::Not" : [{condition}]
Parametri
condition-
Una funzione intrinseca specifica delle regole che restituisce
trueofalse.
Esempio
L’esempio seguente restituisce true se il valore per il parametro EnvironmentType non è uguale a prod:
"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]}]
Fn::Or
Restituisce true se una delle condizioni specificate viene valutata true; restituisce false se tutte le condizioni corrispondono a false. Fn::Or agisce come operatore OR. Il numero minimo di condizioni che puoi includere è due, il numero massimo è dieci.
Dichiarazione
"Fn::Or" : [{condition}, {...}]
Parametri
condition-
Una funzione intrinseca specifica delle regole che restituisce
trueofalse.
Esempio
L’esempio seguente restituisce true se il nome del gruppo di sicurezza a cui si fa riferimento è uguale a sg-mysggroup o se il valore di parametro InstanceType è t3.large o t3.small:
"Fn::Or" : [ {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]}, {"Fn::Contains" : [["t3.large", "t3.small"], {"Ref" : "InstanceType"}]} ]
Fn::RefAll
Restituisce tutti i valori per un tipo di parametro specificato.
Dichiarazione
"Fn::RefAll" : "parameter_type"
Parametri
- parameter_type
-
Un tipo di parametro specifico di AWS, ad esempio
AWS::EC2::SecurityGroup::IdoAWS::EC2::VPC::Id. Per ulteriori informazioni, consulta Supported AWS-specific parameter types nella Guida per l’utente di AWS CloudFormation.
Esempio
La funzione seguente restituisce un elenco di tutti gli ID di VPC per la Regione e l’Account AWS in cui lo stack viene creato o aggiornato:
"Fn::RefAll" : "AWS::EC2::VPC::Id"
Fn::ValueOf
Restituisce un valore di attributo o un elenco di valori per un parametro e un attributo specifici.
Dichiarazione
"Fn::ValueOf" : [ "parameter_logical_id", "attribute" ]
Parametri
- attributo
-
Il nome di un attributo da cui recuperare un valore. Per ulteriori informazioni sugli attributi, consulta Attributi supportati.
- parameter_logical_id
-
Il nome di un parametro da cui recuperare un valore. Il parametro deve essere dichiarato nella sezione
Parametersdel modello.
Esempi
L’esempio seguente restituisce il valore del tag Department per il VPC specificato dal parametro ElbVpc:
"Fn::ValueOf" : ["ElbVpc", "Tags.Department"]
Se specifichi più valori per un parametro, la funzione Fn::ValueOf può restituire un elenco. Ad esempio, se specifichi più sottoreti e ottieni un elenco di zone di disponibilità in cui ogni membro è la zona di disponibilità di una determinata sottorete:
"Fn::ValueOf" : ["ListOfElbSubnets", "AvailabilityZone"]
Fn::ValueOfAll
Restituisce un elenco di tutti i valori di attributo per un tipo di parametro e un attributo specifici.
Dichiarazione
"Fn::ValueOfAll" : ["parameter_type", "attribute"]
Parametri
- attributo
-
Il nome di un attributo a partire dal quale intendi recuperare un valore. Per ulteriori informazioni sugli attributi, consulta Attributi supportati.
- parameter_type
-
Un tipo di parametro specifico di AWS, ad esempio
AWS::EC2::SecurityGroup::IdoAWS::EC2::VPC::Id. Per ulteriori informazioni, consulta Supported AWS-specific parameter types nella Guida per l’utente di AWS CloudFormation.
Esempio
Nell’esempio seguente, la funzione Fn::ValueOfAll restituisce un elenco di valori, dove ogni membro è il valore di tag Department per i VPC con quel tag:
"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]
Funzioni supportate
Non puoi utilizzare un’altra funzione nelle funzioni Fn::ValueOf e Fn::ValueOfAll. Tuttavia, è consentito utilizzare le seguenti funzioni in tutte le altre funzioni intrinseche specifiche delle regole:
-
Ref -
Altre funzioni intrinseche specifiche delle regole
Attributi supportati
Il seguente elenco descrive i valori di attributo che è possibile recuperare per determinati tipi di parametro e risorse:
- Il tipo di parametro
AWS::EC2::VPC::Ido gli ID VPC. -
-
DefaultNetworkAcl
-
DefaultSecurityGroup
-
Tag.
tag_key
-
- Il tipo di parametro
AWS::EC2::Subnet::Ido gli ID sottorete. -
-
AvailabilityZone
-
Tag.
tag_key -
VpcId
-
- Il tipo di parametro
AWS::EC2::SecurityGroup::Ido gli ID gruppo di sicurezza. -
-
Tag.
tag_key
-