Funzioni delle regole - AWS CloudFormation

Questa è la nuova guida AWS CloudFormation di riferimento per i modelli. Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida per l'AWS CloudFormation 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 Rules sezione di un modello. CloudFormation Queste funzioni consentono di convalidare i valori dei parametri utilizzando una logica personalizzata. Tutte le convalide vengono eseguite prima della CloudFormation creazione o dell'aggiornamento di qualsiasi risorsa.

Le regole sono utili quando i vincoli dei parametri standard sono insufficienti. Ad esempio, se SSL è abilitato, devono essere forniti sia un certificato che un nome di dominio.

Per ulteriori informazioni sull'utilizzo delle regole nel modello, consulta la Rulessintassi CloudFormation del modello nella Guida per l'AWS CloudFormation utente.

Nella condizione o nelle asserzioni di una regola, puoi utilizzare le funzioni intrinseche, ad esempio Fn::Equals, Fn::Not e Fn::RefAll. La proprietà condition determina se CloudFormation applicare le asserzioni. Se la condizione restituisce atrue, CloudFormation valuta le asserzioni per verificare se il valore di un parametro è valido quando uno stack viene creato o aggiornato. Se il valore di un parametro non è valido, CloudFormation non crea o aggiorna lo stack. Se la condizione restituisce un risultato positivofalse, CloudFormation non verifica il valore del parametro e procede con l'operazione di stack.

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 true o false.

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 è m1.large o m1.small:

"Fn::And": [ { "Fn::Equals": [ "sg-mysggroup", {"Ref": "ASecurityGroup"} ] }, { "Fn::Contains": [ [ "m1.large", "m1.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 (m1.large o m1.small):

"Fn::Contains" : [ ["m1.large", "m1.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 del strings_to_check parametro si trova nel strings_to_match parametro.

strings_to_match

Un elenco di stringhe, ad esempio "A", "B", "C". Ogni membro nel parametro strings_to_match viene confrontato con i membri del parametro strings_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 true o false.

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 true o false.

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 è m1.large o m1.small:

"Fn::Or" : [ {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]}, {"Fn::Contains" : [["m1.large", "m1.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 AWS di parametro specifico, ad esempio AWS::EC2::SecurityGroup::Id oAWS::EC2::VPC::Id. Per ulteriori informazioni, consulta Tipi di parametri AWS specifici supportati nella Guida per l'AWS CloudFormation utente.

Esempio

La seguente funzione restituisce un elenco di tutti i VPC IDs per la regione e 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 i valori degli attributi. Il parametro deve essere dichiarato nella sezione Parameters del modello.

Esempi

L'esempio seguente restituisce il valore del tag Department per il VPC specificato dal parametro ElbVpc:

"Fn::ValueOf" : ["ElbVpc", "Tags.Department"]

Se specificate più valori per un parametro, la ValueOf funzione Fn:: 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 AWS di parametro specifico, ad esempio o. AWS::EC2::SecurityGroup::Id AWS::EC2::VPC::Id Per ulteriori informazioni, consulta Parametri nella Guida per l'utente AWS CloudFormation .

Esempio

Nell'esempio seguente, la Fn::ValueOfAll funzione restituisce un elenco di valori, in cui ogni membro è il valore del Department tag VPCs associato a 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 AWS::EC2::VPC::Id parametro o VPC IDs.
  • DefaultNetworkAcl

  • DefaultSecurityGroup

  • Tags.tag_key

Il tipo di AWS::EC2::Subnet::Id parametro o la IDs sottorete,
  • AvailabilityZone

  • Tags.tag_key

  • VpcId

Il tipo di AWS::EC2::SecurityGroup::Id parametro o il gruppo IDs di sicurezza.
  • Tags.tag_key