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à.
Parametri
Utilizza la sezione Parameters
opzionale per personalizzare i modelli. I parametri consentono di immettere valori personalizzati nel modello ogni volta che crei o aggiorni uno stack.
Definizione di un parametro in un modello
L'esempio seguente dichiara un parametro denominato InstanceTypeParameter
. Questo parametro consente di specificare il tipo di istanza Amazon EC2 per lo stack da utilizzare quando crei o aggiorni lo stack.
Osserva che il valore di default di InstanceTypeParameter
è t2.micro
. Questo è il valore AWS CloudFormation utilizzato per effettuare il provisioning dello stack a meno che non venga fornito un altro valore.
JSON
"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }
YAML
Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.
Riferimento a un parametro all'interno di un modello
Si utilizza la funzione Ref
intrinseca per fare riferimento a un parametro e si AWS CloudFormation utilizza il valore del parametro per eseguire il provisioning dello stack. Puoi fare riferimento ai parametri dalle sezioni Resources
e Outputs
dello stesso modello.
In questo esempio, la proprietà InstanceType
della risorsa dell'istanza EC2 fa riferimento al valore del parametro InstanceTypeParameter
:
JSON
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867
Requisiti generali per i parametri
Per l'utilizzo dei parametri sono validi i seguenti requisiti:
-
È possibile avere un massimo di 200 parametri in un modello. AWS CloudFormation
-
A ogni parametro deve essere assegnato un nome logico (definito anche ID logico), che deve essere alfanumerico e univoco rispetto a tutti i nomi logici all'interno del modello.
-
A ogni parametro deve essere assegnato un tipo di parametro supportato da AWS CloudFormation. Per ulteriori informazioni, consulta la sezione Type.
-
A ogni parametro deve essere assegnato un valore in fase di esecuzione per AWS CloudFormation effettuare correttamente il provisioning dello stack. Facoltativamente, è possibile specificare un valore predefinito AWS CloudFormation da utilizzare a meno che non venga fornito un altro valore.
-
I parametri e i relativi riferimenti a essi devono essere dichiarati dall'interno dello stesso modello. Puoi fare riferimento ai parametri dalle sezioni
Resources
eOutputs
del modello.
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Type" : "DataType
", "ParameterProperty
" : "value
" } }
YAML
Parameters:
ParameterLogicalID
: Type:DataType
ParameterProperty
:value
Proprietà
AllowedPattern
-
Una espressione regolare che rappresenta i modelli da consentire per i tipi
String
oCommaDelimitedList
. Se applicato su un parametro di tipoString
, lo schema deve corrispondere all'intero valore del parametro fornito. Quando viene applicato a un parametro di tipoCommaDelimitedList
, il modello deve corrispondere a ciascun valore nell'elenco.Required: No
AllowedValues
-
Matrice contenente l'elenco dei valori consentiti per il parametro. Quando viene applicato a un parametro di tipo
String
, il valore del parametro deve essere uno dei valori consentiti. Quando viene applicato a un parametro di tipoCommaDelimitedList
, ogni valore nell'elenco deve essere uno dei valori consentiti.Required: No
Nota
Se utilizzi YAML e desideri utilizzare le stringhe
Yes
eNo
perAllowedValues
, utilizza le virgolette singole per evitare che il parser YAML consideri questi valori booleani. ConstraintDescription
-
Stringa che illustra un vincolo in caso di violazione del vincolo. Ad esempio, senza una descrizione del vincolo, un parametro associato al modello consentito
[A-Za-z0-9]+
restituisce il seguente messaggio di errore quando l'utente specifica un valore non valido:Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
Se aggiungi una descrizione del vincolo, ad esempio must only contain letters (uppercase and lowercase) and number (solo lettere (maiuscole e minuscole) e numeri), puoi visualizzare il seguente messaggio di errore personalizzato:
Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers
Required: No
Default
-
Valore del tipo appropriato per il modello da utilizzare se non viene specificato alcun valore al momento della creazione di uno stack. Se per il parametro definisci vincoli, devi specificare un valore conforme a tali vincoli.
Required: No
Description
-
Stringa contenente un massimo di 4.000 caratteri che descrive il parametro.
Required: No
MaxLength
-
Valore intero che determina il numero massimo di caratteri consentiti per i tipi
String
.Required: No
MaxValue
-
Valore numerico che determina il valore numerico massimo consentito per i tipi
Number
.Required: No
MinLength
-
Valore intero che determina il numero minimo di caratteri consentiti per i tipi
String
.Required: No
MinValue
-
Valore numerico che determina il valore numerico minimo consentito per i tipi
Number
.Required: No
NoEcho
-
Indica se mascherare il valore del parametro per impedirne la visualizzazione nella console, negli strumenti a riga di comando o nell'API. Se si imposta l'
NoEcho
attributo sutrue
, CloudFormation restituisce il valore del parametro mascherato da asterischi (*****) per tutte le chiamate che descrivono lo stack o gli eventi dello stack, ad eccezione delle informazioni memorizzate nelle posizioni specificate di seguito.Required: No
Importante
L'utilizzo dell'attributo
NoEcho
non maschera le informazioni memorizzate nei seguenti elementi:-
La sezione dei modelli.
Metadata
CloudFormation non trasforma, modifica o oscura le informazioni incluse nellaMetadata
sezione. Per ulteriori informazioni, consulta Metadati. -
Sezione dei modelli
Outputs
. Per ulteriori informazioni, consulta Output. -
Attributo
Metadata
di una definizione di risorsa. Per ulteriori informazioni, consulta Attributo Metadata.
Si consiglia vivamente di non utilizzare questi meccanismi per includere informazioni sensibili, come password o segreti.
Importante
Anziché incorporare informazioni riservate direttamente nei CloudFormation modelli, consigliamo di utilizzare parametri dinamici nel modello di pila per fare riferimento a informazioni sensibili archiviate e gestite all'esterno CloudFormation, ad esempio nel AWS Systems Manager Parameter Store o. AWS Secrets Manager
Per ulteriori informazioni, consulta la procedura Non incorporare le credenziali nei modelli consigliata.
Importante
Consigliamo vivamente di non includere parametri
NoEcho
o dati sensibili, nelle proprietà delle risorse che fanno parte dell'identificatore principale di una risorsa.Quando un
NoEcho
parametro è incluso in una proprietà che costituisce un identificatore di risorsa principale, è CloudFormation possibile utilizzare il valore effettivo in chiaro nell'identificatore della risorsa principale. Questo ID risorsa può apparire in qualsiasi output o destinazione derivata.Per determinare quali proprietà delle risorse comprendono l'identificatore principale di un tipo di risorsa, fai riferimento alla documentazione di riferimento delle risorse per la risorsa in questione. Nella sezione Return values (Valori restituiti), il valore restituito della funzione
Ref
rappresenta le proprietà delle risorse che comprendono l'identificatore principale del tipo di risorsa. -
Type
-
Tipo di dati per il parametro (
DataType
).Campo obbligatorio: sì
AWS CloudFormation supporta i seguenti tipi di parametri:
String
-
Stringa letterale.
Ad esempio, gli utenti possono specificare
"MyUserName"
. Number
-
Un numero intero o float. AWS CloudFormation convalida il valore del parametro come numero; tuttavia, quando si utilizza il parametro altrove nel modello (ad esempio, utilizzando la funzione
Ref
intrinseca), il valore del parametro diventa una stringa.Ad esempio, gli utenti possono specificare
"8888"
. List<Number>
-
Una matrice di numeri interi o float separati da virgole. AWS CloudFormation convalida il valore del parametro come numeri; tuttavia, quando si utilizza il parametro altrove nel modello (ad esempio, utilizzando la funzione
Ref
intrinseca), il valore del parametro diventa un elenco di stringhe.Ad esempio, gli utenti possono specificare
"80,20"
eRef
restituisce["80","20"]
. CommaDelimitedList
-
Matrice di stringhe letterali separate da virgole. Il numero totale di stringhe deve corrispondere al numero totale di virgole più uno. Ogni stringa membro non deve includere spazi.
Ad esempio, gli utenti possono specificare
"test,dev,prod"
eRef
restituisce["test","dev","prod"]
. - Tipi di parametri specifici per AWS
-
AWS valori come i nomi delle coppie di chiavi Amazon EC2 e gli ID VPC. Per ulteriori informazioni, consulta Tipi di parametri specifici per AWS.
- Tipi di parametro
SSM
-
Parametri che corrispondono ai parametri esistenti in Archivio parametri Systems Manager. Si specifica una chiave del parametro Systems Manager come valore del
SSM
parametro e si AWS CloudFormation recupera il valore più recente da Parameter Store da utilizzare per lo stack. Per ulteriori informazioni, consulta Tipi di parametro SSM.
Tipi di parametri specifici per AWS
I tipi di parametro specifici di AWS sono utili nell'individuazione dei valori non validi nelle fasi iniziali del processo di creazione o aggiornamento di uno stack. Per specificare parametri con tipi AWS specifici, un utente del modello deve inserire AWS i valori esistenti presenti nel proprio account. AWS AWS CloudFormation convalida questi valori di input rispetto ai valori esistenti nell'account. Ad esempio, con il tipo di parametro AWS::EC2::VPC::Id
, un utente deve immettere un ID VPC esistente presente nell'account e nella Regione in cui sta creando lo stack.
Se desideri consentire agli utenti del modello di inserire valori di input da AWS account diversi, non definire parametri con tipi AWS specifici; definisci invece parametri di tipo String
o. CommaDelimitedList
Tipi di AWS parametri specifici supportati
AWS CloudFormation supporta i seguenti tipi AWS specifici:
AWS::EC2::AvailabilityZone::Name
-
Zona di disponibilità, ad esempio
us-west-2a
. AWS::EC2::Image::Id
-
ID dell'immagine Amazon EC2, ad esempio
ami-0ff8a91507f77f867
. Si noti che la console AWS CloudFormation non mostra un elenco a discesa dei valori per questo tipo di parametro. AWS::EC2::Instance::Id
-
ID dell'istanza Amazon EC2, ad esempio
i-1e731a32
. AWS::EC2::KeyPair::KeyName
-
Nome della coppia di chiavi Amazon EC2.
AWS::EC2::SecurityGroup::GroupName
-
Nome del gruppo di sicurezza EC2-Classic o nome del gruppo di sicurezza VPC di default, ad esempio
my-sg-abc
. AWS::EC2::SecurityGroup::Id
-
ID del gruppo di sicurezza, ad esempio
sg-a123fd85
. AWS::EC2::Subnet::Id
-
ID della sottorete, ad esempio
subnet-123a351e
. AWS::EC2::Volume::Id
-
ID del volume Amazon EBS, ad esempio
vol-3cdd3f56
. AWS::EC2::VPC::Id
-
ID VPC, ad esempio
vpc-a123baa3
. AWS::Route53::HostedZone::Id
-
ID della zona ospitata Amazon Route 53, ad esempio
Z23YXV4OVPL04A
. List<AWS::EC2::AvailabilityZone::Name>
-
Matrice di zone di disponibilità per una Regione, ad esempio
us-west-2a, us-west-2b
. List<AWS::EC2::Image::Id>
-
Matrice di ID delle immagini Amazon EC2, ad esempio
ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c
. Tieni presente che la AWS CloudFormation console non mostra un elenco a discesa di valori per questo tipo di parametro. List<AWS::EC2::Instance::Id>
-
Matrice di ID delle istanze Amazon EC2, ad esempio
i-1e731a32, i-1e731a34
. List<AWS::EC2::SecurityGroup::GroupName>
-
Matrice dei nomi dei gruppi di sicurezza EC2-Classic o dei nomi dei gruppi di sicurezza VPC di default, ad esempio
my-sg-abc, my-sg-def
. List<AWS::EC2::SecurityGroup::Id>
-
Matrice di ID dei gruppi di sicurezza, ad esempio
sg-a123fd85, sg-b456fd85
. List<AWS::EC2::Subnet::Id>
-
Matrice di ID delle sottoreti, ad esempio
subnet-123a351e, subnet-456b351e
. List<AWS::EC2::Volume::Id>
-
Matrice di ID dei volumi Amazon EBS, ad esempio
vol-3cdd3f56, vol-4cdd3f56
. List<AWS::EC2::VPC::Id>
-
Matrice di ID VPC, ad esempio
vpc-a123baa3, vpc-b456baa3
. List<AWS::Route53::HostedZone::Id>
-
Matrice di ID delle zone ospitate Amazon Route 53, ad esempio
Z23YXV4OVPL04A, Z23YXV4OVPL04B
.
Tipi di parametro SSM
I tipi di parametri SSM corrispondono ai parametri esistenti in Systems Manager Parameter Store. Si specifica una chiave del parametro Systems Manager come valore del SSM
parametro e si AWS CloudFormation recupera il valore più recente da Parameter Store da utilizzare per lo stack. Per i parametri SSM memorizzati nello stesso Account AWS, immettete il nome del parametro. Per i parametri SSM condivisi da un altro Account AWS utente, inserisci il parametro ARN completo. Per ulteriori informazioni sui parametri di Systems Manager, vedere Systems Manager Parameter Store e Working with shared parameters nella Guida per l'AWS Systems Manager utente.
Puoi inoltre utilizzare lo schema di parametri dinamici ssm
o ssm-secure
per specificare valori dei parametri nel modello. Per ulteriori informazioni, consulta Utilizzo di riferimenti dinamici per specificare valori di modello.
Quando si creano o si aggiornano pile e si creano set di modifiche, AWS CloudFormation vengono utilizzati i valori presenti in Parameter Store al momento dell'esecuzione dell'operazione. Se un parametro specificato non esiste in Parameter Store nell' AWS account del chiamante, AWS CloudFormation restituisce un errore di convalida.
Quando si esegue un set di modifiche, AWS CloudFormation utilizza i valori specificati nel set di modifiche. Esamina questi valori prima di eseguire il set di modifiche perché potrebbero variare in Archivio parametri tra il momento in cui crei il set di modifiche e l'esecuzione dello stesso.
Suggerimento
Puoi visualizzare i valori risolti per i parametri SSM
nella scheda Parameters (Parametri) dello stack nella console oppure eseguendo describe-stacks
o describe-change-set
. Questi sono i valori attualmente utilizzati nella definizione dello stack per le corrispondenti chiavi di parametro Systems Manager. Si noti che questi valori vengono impostati quando lo stack viene creato o aggiornato. Pertanto potrebbero essere diversi dai valori più recenti presenti in Archivio parametri.
Se specificate Secure Strings come valori dei parametri utilizzando il ssm-secure
pattern, AWS CloudFormation non memorizza il valore di Secure String né lo visualizza nella console o nei risultati delle chiamate API.
Poiché il valore di un parametro SSM
è una chiave di parametro Systems Manager, è importante considerare il comportamento seguente:
-
Per gli aggiornamenti dello stack, l'opzione Usa il valore esistente nella console e l'
UsePreviousValue
attributo forupdate-stack
indicano di AWS CloudFormation utilizzare la chiave del parametro Systems Manager esistente, non il suo valore. AWS CloudFormation recupera sempre i valori più recenti da Parameter Store quando aggiorna gli stack.Tuttavia, se utilizzi lo schema di parametri dinamici
ssm
ossm-secure
per specificare valori dei parametri, devi specificare una versione del parametro Systems Manager che AWS CloudFormation deve utilizzare. -
AWS CloudFormation può eseguire la convalida sulle chiavi dei parametri di Systems Manager, ma non sui valori corrispondenti. Per la convalida, devi considerare le chiavi di parametro come stringhe. Devi eseguire qualsiasi procedura di convalida per i valori dei parametri Systems Manager in Archivio parametri.
Consulta la sezione relativa ai tipi di parametro SSM per alcuni esempi che utilizzano i tipi di parametro SSM
.
Tipi di parametro SSM supportati
AWS CloudFormation supporta i seguenti tipi di SSM
parametri:
AWS::SSM::Parameter::Name
-
Nome di una chiave di parametro Systems Manager.
Utilizza questo parametro quando vuoi passare la chiave di parametro. Ad esempio, puoi usare questo tipo per convalidare l'esistenza del parametro.
AWS::SSM::Parameter::Value<String>
-
Parametro Systems Manager il cui valore è una stringa. Corrisponde al tipo di parametro
String
in Archivio parametri. AWS::SSM::Parameter::Value<List<String>>
oAWS::SSM::Parameter::Value<CommaDelimitedList>
-
Parametro Systems Manager il cui valore è un elenco di stringhe. Corrisponde al tipo di parametro
StringList
in Archivio parametri. AWS::SSM::Parameter::Value<
AWS-specific parameter type
>-
Parametro Systems Manager il cui valore è un tipo di parametro specifico per AWS. L'esempio seguente specifica il tipo
AWS::EC2::KeyPair::KeyName
:AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>
AWS::SSM::Parameter::Value<List<
AWS-specific parameter type
>>-
Parametro Systems Manager il cui valore è un elenco di tipi di parametro specifici per AWS. L'esempio seguente specifica un elenco di tipi
AWS::EC2::KeyPair::KeyName
:AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>
Tipi di parametro SSM non supportati
AWS CloudFormation non supporta il seguente tipo di SSM
parametro:
-
Elenchi dei tipi di parametro
SSM
, ad esempio:List<AWS::SSM::Parameter::Value<String>>
Inoltre, non AWS CloudFormation supporta la definizione dei parametri del modello come tipi di parametri SecureString
Systems Manager. Tuttavia, puoi specificare stringhe sicure come valori dei parametri per alcune risorse utilizzando schemi di parametri dinamici. Per ulteriori informazioni, consulta Utilizzo di riferimenti dinamici per specificare valori di modello.
Raggruppamento e ordinamento di parametri nella console AWS CloudFormation
Quando si utilizza la AWS CloudFormation console per creare o aggiornare uno stack, la console elenca alfabeticamente i parametri di input in base al relativo ID logico. Per ignorare l'ordinamento di default, puoi usare la chiave di metadati AWS::CloudFormation::Interface
. Il raggruppamento e l'ordinamento dei parametri ti permettono di semplificare l'immissione dei valori dei parametri da parte degli utenti. Ad esempio, puoi raggruppare tutti i parametri relativi a VPC in modo che non sono distribuiti all'interno di elenco in ordine alfabetico.
Nel chiave di metadati puoi specificare i gruppi da creare, i parametri da includere in ciascun gruppo e l'ordine in base al quale la console mostra ciascun parametro all'interno del relativo gruppo. Puoi anche definire nomi di parametro descrittivi in modo che la console mostri nomi descrittivi invece degli ID logici. Tutti i parametri a cui fai riferimento nella chiave di metadati devono essere dichiarati nella sezione Parameters
del modello.
Per ulteriori informazioni e un esempio della chiave di metadati AWS::CloudFormation::Interface
, consulta AWS::CloudFormation::Interface.
Esempi
Parametri di input di base
Nella seguente sezione Parameters
dii esempio vengono dichiarati due parametri. Il parametro DBPort
è di tipo Number
con un valore di default pari a 3306
. Il valore minimo che può essere specificato è 1150
e il valore massimo che può essere specificato è 65535
. Il parametro DBPwd
è di tipo String
senza alcun valore di default. La NoEcho
proprietà è impostata true
per impedire che le chiamate di descrizione dello stack, ad esempio il aws cloudformation describe-stacks
AWS CLI comando, restituiscano il valore del parametro. La lunghezza minima che può essere specificata è 1
e la lunghezza massima che può essere specificata è 41
. Il modello consente l'uso di caratteri alfabetici in maiuscolo e minuscolo e di numeri.
JSON
"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }
YAML
Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$
Tipi di parametri specifici per AWS
Quando si utilizzano tipi di parametri AWS specifici, un utente che utilizza il modello per creare o aggiornare uno stack deve specificare AWS i valori esistenti presenti nell'account dell'utente e nella regione dello stack corrente. AWS i tipi di parametri -specific aiutano a garantire che i valori di input per questi tipi esistano e siano corretti prima di AWS CloudFormation creare o aggiornare qualsiasi risorsa. Ad esempio, se utilizzi il tipo di parametro AWS::EC2::KeyPair::KeyName
, AWS CloudFormation
convalida il valore di input in base ai nomi delle coppie di chiave esistenti degli utenti prima di creare qualsiasi risorsa, ad esempio istanze Amazon EC2.
Se un utente utilizza AWS Management Console, AWS CloudFormation precompila i tipi di parametri AWS specifici con valori validi. In questo modo l'utente non dovrà ricordare alcuna informazione e immetterà correttamente un nome o un ID specifico. Si dovrebbe solo selezionare uno o più valori da un elenco a discesa. Inoltre, a seconda del tipo di parametro, gli utenti possono cercare i valori per ID, nome o valore del tag Name. Per ulteriori informazioni, consulta Specificazione del nome e dei parametri di uno stack.
L'esempio seguente dichiara due parametri con i tipi AWS::EC2::KeyPair::KeyName
e AWS::EC2::Subnet::Id
. Questi tipi limitano i valori validi a nomi di coppie di chiavi o a ID sottorete esistenti. Poiché il parametro mySubnetIDs
è specificato come un elenco, un utente può specificare uno o più ID sottorete.
JSON
"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }
YAML
Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"
AWS CLI e supporto per le API
Attualmente, gli utenti non possono utilizzare l' AWS CloudFormation API AWS CLI or per visualizzare un elenco di valori validi per parametri AWS specifici. Tuttavia, possono visualizzare informazioni su ciascun parametro, ad esempio il tipo di parametro, utilizzando il comando aws cloudformation get-template-summary
o l'API GetTemplateSummary
.
Tipo di parametro CommaDelimitedList
Puoi usare il tipo di parametro CommaDelimitedList
per specificare più valori di stringa in un unico parametro. In questo modo, puoi utilizzare un unico parametro anziché diversi parametri per specificare più valori. Ad esempio, se creai tre sottoreti differenti con i propri blocchi CIDR, puoi utilizzare tre diversi parametri per specificare tre blocchi CIDR differenti. Tuttavia, risulta più semplice utilizzare un unico parametro che supporta un elenco di tre blocchi CIDR, come mostrato nel segmento di codice seguente:
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"
Restituzione un valore da un parametro CommaDelimitedList
Per fare riferimento a un valore specifico in un elenco, utilizza la funzione intrinseca Fn::Select
nella sezione Resources
del modello. Puoi passare il valore di indice dell'oggetto desiderato e un elenco di oggetti, come mostrato nel segmento di codice seguente:
JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [0, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [0, !Ref DbSubnetIpBlocks] DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [1, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [1, !Ref DbSubnetIpBlocks] DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [2, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [2, !Ref DbSubnetIpBlocks]
Tipi di parametro SSM
Tipo AWS::SSM::Parameter::Value
<String>
Il modello seguente dichiara un tipo di parametro AWS::SSM::Parameter::Value<String>
.
JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType
Il comando seguente crea uno stack in base al modello di esempio. Fornisce la chiave di parametro Systems Manager (myInstanceType
) come valore per il parametro di modello InstanceType
. L'esempio presuppone l'esistenza del parametro myInstanceType
in Archivio parametri nell'account AWS
del chiamante.
aws cloudformation create-stack --stack-name S1 --template-body
example template
--parameters ParameterKey=InstanceType,ParameterValue=myInstanceType
Tipo AWS::SSM::Parameter::Value
<AWS::EC2::Image::Id
>
Il modello seguente dichiara un tipo di parametro AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>
.
JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId
Il comando seguente crea uno stack in base al modello di esempio. Fornisce la chiave di parametro Systems Manager (myLatestAMI
) come valore per il parametro di modello ImageId
. Ciò presuppone che il myLatestAMI
parametro esista in Parameter Store sotto l'account del chiamante. AWS
aws cloudformation create-stack --stack-name S2 --template-body
example template
--parameters ParameterKey=ImageId,ParameterValue=myLatestAMI