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à.
Frammenti di modello generale
Gli esempi seguenti mostrano diverse funzionalità dei CloudFormation modelli che non sono specifiche di un AWS servizio.
Argomenti
- Base64proprietà codificata UserData
- Base64UserDataproprietà codificata con e AccessKeySecretKey
- Parameterssezione con un parametro di stringa letterale
- Parameterssezione con parametro di stringa con vincolo di espressione regolare
- Parameterssezione con parametri numerici con MinValue e MaxValue vincoli
- Parameterssezione con parametro numerico con vincolo AllowedValues
- Parameterssezione con un parametro letterale CommaDelimitedList
- Parameterssezione con valore del parametro basato su uno pseudo parametro
- Mappingsezione con tre mappature
- Descriptionbasato su una stringa letterale
- Outputssezione con una stringa letterale in uscita
- Outputssezione con un riferimento alla risorsa e un output di pseudo riferimento
- Outputssezione con un output basato su una funzione, una stringa letterale, un riferimento e uno pseudo parametro
- Versione del modello
- AWSTags property
Base64proprietà codificata UserData
Questo esempio mostra l'assemblaggio di una UserData
proprietà utilizzando le Fn::Join
funzioni Fn::Base64
and. I riferimenti MyValue
e MyName
sono parametri che devono essere definiti nella Parameters
sezione del modello. La stringa letterale Hello World
è solo un altro valore che questo esempio trasferisce come parte di UserData
.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ ",", [ { "Ref" : "MyValue" }, { "Ref" : "MyName" }, "Hello World" ] ] } }
YAML
UserData: Fn::Base64: !Sub | Ref: MyValue Ref: MyName Hello World
Base64UserDataproprietà codificata con e AccessKeySecretKey
Questo esempio mostra l'assemblaggio di una UserData
proprietà utilizzando le Fn::Join
funzioni Fn::Base64
and. Include le informazioni AccessKey
e SecretKey
. I riferimenti AccessKey
e SecretKey
sono i parametri che devono essere definiti nella sezione Parametri del modello.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "ACCESS_KEY=", { "Ref" : "AccessKey" }, "SECRET_KEY=", { "Ref" : "SecretKey" } ] ] } }
YAML
UserData: Fn::Base64: !Sub | ACCESS_KEY=${AccessKey} SECRET_KEY=${SecretKey}
Parameterssezione con un parametro di stringa letterale
Il seguente esempio illustra una dichiarazione della sezione parametri valida in cui viene dichiarato un singolo tipo di parametro String
.
JSON
"Parameters" : { "UserName" : { "Type" : "String", "Default" : "nonadmin", "Description" : "Assume a vanilla user if no command-line spec provided" } }
YAML
Parameters: UserName: Type: String Default: nonadmin Description: Assume a vanilla user if no command-line spec provided
Parameterssezione con parametro di stringa con vincolo di espressione regolare
Il seguente esempio illustra una dichiarazione della sezione parametri valida in cui viene dichiarato un singolo tipo di parametro String
. Il AdminUserAccount
parametro ha un valore predefinito di. admin
Il valore di parametro deve avere una lunghezza minima di 1 e una massima di 16 e contiene caratteri alfabetici e numeri, ma deve iniziare con un carattere alfabetico.
JSON
"Parameters" : { "AdminUserAccount": { "Default": "admin", "NoEcho": "true", "Description" : "The admin account user name", "Type": "String", "MinLength": "1", "MaxLength": "16", "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*" } }
YAML
Parameters: AdminUserAccount: Default: admin NoEcho: true Description: The admin account user name Type: String MinLength: 1 MaxLength: 16 AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
Parameterssezione con parametri numerici con MinValue e MaxValue vincoli
Il seguente esempio illustra una dichiarazione della sezione parametri valida in cui viene dichiarato un singolo tipo di parametro Number
. Il WebServerPort
parametro ha un valore predefinito di 80 e un valore minimo 1 e un valore massimo 65535.
JSON
"Parameters" : { "WebServerPort": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "MinValue": "1", "MaxValue": "65535" } }
YAML
Parameters: WebServerPort: Default: 80 Description: TCP/IP port for the web server Type: Number MinValue: 1 MaxValue: 65535
Parameterssezione con parametro numerico con vincolo AllowedValues
Il seguente esempio illustra una dichiarazione della sezione parametri valida in cui viene dichiarato un singolo tipo di parametro Number
. Il WebServerPort
parametro ha un valore predefinito di 80 e consente solo i valori di 80 e 8888.
JSON
"Parameters" : { "WebServerPortLimited": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "AllowedValues" : ["80", "8888"] } }
YAML
Parameters: WebServerPortLimited: Default: 80 Description: TCP/IP port for the web server Type: Number AllowedValues: - 80 - 8888
Parameterssezione con un parametro letterale CommaDelimitedList
L'esempio seguente illustra una dichiarazione di Parameters
sezione valida in cui viene dichiarato un parametro CommaDelimitedList
di tipo singolo. La NoEcho
proprietà è impostata suTRUE
, che maschererà il suo valore con asterischi (*****) nell'describe-stacksoutput, ad eccezione delle informazioni memorizzate nelle posizioni specificate di seguito.
Importante
L'utilizzo dell'attributo NoEcho
non maschera le informazioni memorizzate nei seguenti elementi:
-
La
Metadata
sezione dei modelli. CloudFormation non trasforma, modifica o oscura le informazioni incluse nellaMetadata
sezione. Per ulteriori informazioni, consulta Metadata. -
Sezione dei modelli
Outputs
. Per ulteriori informazioni, consulta Outputs. -
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.
JSON
"Parameters" : { "UserRoles" : { "Type" : "CommaDelimitedList", "Default" : "guest,newhire", "NoEcho" : "TRUE" } }
YAML
Parameters: UserRoles: Type: CommaDelimitedList Default: "guest,newhire" NoEcho: true
Parameterssezione con valore del parametro basato su uno pseudo parametro
L'esempio seguente mostra i comandi nei dati EC2 utente che utilizzano gli pseudo parametri e. AWS::StackName
AWS::Region
Per ulteriori informazioni sugli pseudoparametri, consulta Riferimento pseudoparametri.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --region ", { "Ref" : "AWS::Region" }, "\n", "/opt/aws/bin/cfn-signal -e $? ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource WebServerGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]}} }
YAML
UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region} /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
Mappingsezione con tre mappature
L'esempio seguente illustra una dichiarazione di Mapping
sezione valida che contiene tre mappature. La mappa, se abbinata a una chiave di mappatura diStop
, o SlowDown
Go
, fornisce RGB i valori assegnati all'attributo corrispondente. RGBColor
JSON
"Mappings" : { "LightColor" : { "Stop" : { "Description" : "red", "RGBColor" : "RED 255 GREEN 0 BLUE 0" }, "SlowDown" : { "Description" : "yellow", "RGBColor" : "RED 255 GREEN 255 BLUE 0" }, "Go" : { "Description" : "green", "RGBColor" : "RED 0 GREEN 128 BLUE 0" } } }
YAML
Mappings: LightColor: Stop: Description: red RGBColor: "RED 255 GREEN 0 BLUE 0" SlowDown: Description: yellow RGBColor: "RED 255 GREEN 255 BLUE 0" Go: Description: green RGBColor: "RED 0 GREEN 128 BLUE 0"
Descriptionbasato su una stringa letterale
L'esempio seguente illustra una dichiarazione di Description
sezione valida in cui il valore è basato su una stringa letterale. Questo frammento può essere per modelli, parametri, risorse, proprietà o output.
JSON
"Description" : "
Replace this value
"
YAML
Description: "
Replace this value
"
Outputssezione con una stringa letterale in uscita
Questo esempio illustra un'assegnazione di output basata su una stringa letterale.
JSON
"Outputs" : { "MyPhone" : { "Value" : "Please call 555-5555", "Description" : "A random message for aws cloudformation describe-stacks" } }
YAML
Outputs: MyPhone: Value: Please call 555-5555 Description: A random message for aws cloudformation describe-stacks
Outputssezione con un riferimento alla risorsa e un output di pseudo riferimento
Questo esempio mostra una Outputs
sezione con due assegnazioni di output. Una si basa su una risorsa e l'altra si basa su uno pseudoriferimento.
JSON
"Outputs" : { "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } }, "StackName" : { "Value" : { "Ref" : "AWS::StackName" } } }
YAML
Outputs: SNSTopic: Value: !Ref MyNotificationTopic StackName: Value: !Ref AWS::StackName
Outputssezione con un output basato su una funzione, una stringa letterale, un riferimento e uno pseudo parametro
Questo esempio illustra una sezione output con un'assegnazione di output. La funzione Join viene utilizzata per concatenare il valore, utilizzando un segno di percentuale come delimitatore.
JSON
"Outputs" : { "MyOutput" : { "Value" : { "Fn::Join" : [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ] } } }
YAML
Outputs: MyOutput: Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
Versione del modello
Il seguente frammento mostra una dichiarazione di sezione valida. AWSTemplateFormatVersion
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
AWSTags property
Questo esempio mostra una proprietà. AWS Tags
Devi specificare questa proprietà all'interno della sezione proprietà di una risorsa. Quando la risorsa viene creata, verrà contrassegnata con i tag dichiarati.
JSON
"Tags" : [ { "Key" : "keyname1", "Value" : "value1" }, { "Key" : "keyname2", "Value" : "value2" } ]
YAML
Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2"