Parametri - AWS CloudFormation

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 e Outputs 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 o CommaDelimitedList. Se applicato su un parametro di tipo String, lo schema deve corrispondere all'intero valore del parametro fornito. Quando viene applicato a un parametro di tipo CommaDelimitedList, 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 tipo CommaDelimitedList, ogni valore nell'elenco deve essere uno dei valori consentiti.

Required: No

Nota

Se utilizzi YAML e desideri utilizzare le stringhe Yes e No per AllowedValues, 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'NoEchoattributo 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 nella Metadata 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" e Ref 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" e Ref 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'UsePreviousValueattributo for update-stackindicano 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 o ssm-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>> o AWS::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 è 1150e 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 è 1e 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