Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Allgemeine Vorlagenausschnitte
Die folgenden Beispiele zeigen verschiedene CloudFormation Vorlagenfunktionen, die nicht spezifisch für einen AWS Dienst sind.
Themen
- Base64codierte Eigenschaft UserData
- Base64codierte UserData Eigenschaft mit und AccessKeySecretKey
- ParametersAbschnitt mit einem literalen Zeichenkettenparameter
- ParametersAbschnitt mit Zeichenkettenparameter mit Einschränkung für reguläre Ausdrücke
- ParametersAbschnitt mit Zahl, Parameter mit MinValue und MaxValue Einschränkungen
- ParametersAbschnitt mit Zahl, Parameter mit Einschränkung AllowedValues
- ParametersAbschnitt mit einem literalen Parameter CommaDelimitedList
- ParametersAbschnitt mit einem Parameterwert, der auf einem Pseudo-Parameter basiert
- MappingAbschnitt mit drei Zuordnungen
- Descriptionbasiert auf einer Literalzeichenfolge
- OutputsAbschnitt mit einer Literalzeichenfolge als Ausgabe
- OutputsAbschnitt mit einer Ressourcenreferenz und einer Pseudoreferenzausgabe
- OutputsAbschnitt mit einer Ausgabe, die auf einer Funktion, einer Literalzeichenfolge, einer Referenz und einem Pseudo-Parameter basiert
- Vorlagenformatversion
- AWSTags Eigenschaft
Base64codierte Eigenschaft UserData
Dieses Beispiel zeigt die Zusammenstellung einer UserData
Eigenschaft mithilfe der Fn::Join
Funktionen Fn::Base64
und. Die Referenzen MyValue
und MyName
sind Parameter, die im Parameters
Abschnitt der Vorlage definiert werden müssen. Die Literalzeichenfolge Hello World
ist einfach ein weiterer Wert, der in diesem Beispiel als Teil der UserData
-Eigenschaft übergeben wird.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ ",", [ { "Ref" : "MyValue" }, { "Ref" : "MyName" }, "Hello World" ] ] } }
YAML
UserData: Fn::Base64: !Sub | Ref: MyValue Ref: MyName Hello World
Base64codierte UserData Eigenschaft mit und AccessKeySecretKey
Dieses Beispiel zeigt die Zusammenstellung einer UserData
Eigenschaft mithilfe der Fn::Join
Funktionen Fn::Base64
und. Sie enthält die AccessKey
- und SecretKey
-Informationen. Die Referenzen AccessKey
und SecretKey
sind Parameter, die im Abschnitt „Parameters“ der Vorlage definiert werden müssen.
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}
ParametersAbschnitt mit einem literalen Zeichenkettenparameter
Das folgende Beispiel beschreibt eine gültige Deklaration für den Abschnitt „Parameters“, in welcher ein einzelner Parameter vom Typ String
deklariert wird.
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
ParametersAbschnitt mit Zeichenkettenparameter mit Einschränkung für reguläre Ausdrücke
Das folgende Beispiel beschreibt eine gültige Deklaration für den Abschnitt „Parameters“, in welcher ein einzelner Parameter vom Typ String
deklariert wird. Der AdminUserAccount
Parameter hat den Standardwertadmin
. Der Parameterwert muss eine Mindestlänge von 1 und eine maximale Länge von 16 aufweisen und enthält alphabetische Zeichen und Zahlen, aber muss mit einem Buchstaben beginnen.
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]*'
ParametersAbschnitt mit Zahl, Parameter mit MinValue und MaxValue Einschränkungen
Das folgende Beispiel beschreibt eine gültige Deklaration für den Abschnitt „Parameters“, in welcher ein einzelner Parameter vom Typ Number
deklariert wird. Der WebServerPort
Parameter hat einen Standardwert von 80 und einen Minimalwert von 1 und einen Höchstwert von 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
ParametersAbschnitt mit Zahl, Parameter mit Einschränkung AllowedValues
Das folgende Beispiel beschreibt eine gültige Deklaration für den Abschnitt „Parameters“, in welcher ein einzelner Parameter vom Typ Number
deklariert wird. Der WebServerPort
Parameter hat den Standardwert 80 und erlaubt nur Werte von 80 und 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
ParametersAbschnitt mit einem literalen Parameter CommaDelimitedList
Das folgende Beispiel zeigt eine gültige Parameters
Abschnittsdeklaration, in der ein einziger CommaDelimitedList
Typparameter deklariert wird. Die NoEcho
Eigenschaft ist auf gesetztTRUE
, wodurch ihr Wert in der describe-stacks Ausgabe mit Sternchen (*****) maskiert wird, mit Ausnahme von Informationen, die an den unten angegebenen Speicherorten gespeichert sind.
Wichtig
Durch die Verwendung des NoEcho
-Attributs werden keine Informationen maskiert, die im Folgenden gespeichert sind:
-
Der
Metadata
Vorlagenbereich. CloudFormation transformiert, modifiziert oder redigiert keine Informationen, die Sie in denMetadata
Abschnitt aufnehmen. Weitere Informationen finden Sie unter CloudFormation Schablone Metadata Syntax. -
Der
Outputs
-Vorlagenabschnitt. Weitere Informationen finden Sie unter CloudFormation Vorlage Outputs Syntax. -
Das
Metadata
-Attribut einer Ressourcendefinition. Weitere Informationen finden Sie unter Metadata Attribut.
Es wird dringend empfohlen, diese Mechanismen nicht zu verwenden, um vertrauliche Informationen wie Passwörter oder Geheimnisse einzugeben.
Wichtig
Anstatt vertrauliche Informationen direkt in Ihre CloudFormation Vorlagen einzubetten, empfehlen wir Ihnen, dynamische Parameter in der Stack-Vorlage zu verwenden, um auf vertrauliche Informationen zu verweisen, die außerhalb von gespeichert und verwaltet werden CloudFormation, z. B. im AWS Systems Manager Parameterspeicher oder. AWS Secrets Manager
Weitere Informationen finden Sie unter Keine Anmeldeinformationen in Vorlagen einbetten Best Practice.
JSON
"Parameters" : { "UserRoles" : { "Type" : "CommaDelimitedList", "Default" : "guest,newhire", "NoEcho" : "TRUE" } }
YAML
Parameters: UserRoles: Type: CommaDelimitedList Default: "guest,newhire" NoEcho: true
ParametersAbschnitt mit einem Parameterwert, der auf einem Pseudo-Parameter basiert
Das folgende Beispiel zeigt Befehle in den EC2 Benutzerdaten, die die Pseudo-Parameter AWS::StackName
und verwenden. AWS::Region
Weitere Informationen zu Pseudoparametern finden Sie unter Pseudoparameter-Referenz.
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}
MappingAbschnitt mit drei Zuordnungen
Das folgende Beispiel zeigt eine gültige Mapping
Abschnittsdeklaration, die drei Zuordnungen enthält. Wenn die Map mit dem Zuordnungsschlüssel,, oder abgeglichen wird Stop
SlowDown
, stellt sie die RGB Werte bereitGo
, die dem entsprechenden Attribut zugewiesen sind. 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"
Descriptionbasiert auf einer Literalzeichenfolge
Das folgende Beispiel zeigt eine gültige Description
Abschnittsdeklaration, bei der der Wert auf einer Literalzeichenfolge basiert. Dieses Codefragment kann für Vorlagen, Parameter, Ressourcen, Eigenschaften oder Ausgaben verwendet werden.
JSON
"Description" : "
Replace this value
"
YAML
Description: "
Replace this value
"
OutputsAbschnitt mit einer Literalzeichenfolge als Ausgabe
Dieses Beispiel zeigt eine Ausgabenzuweisung basierend auf einer Literalzeichenfolge.
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
OutputsAbschnitt mit einer Ressourcenreferenz und einer Pseudoreferenzausgabe
Dieses Beispiel zeigt einen Outputs
Abschnitt mit zwei Ausgabezuweisungen. Eine basiert auf einer Ressource und die andere auf einer Pseudoreferenz.
JSON
"Outputs" : { "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } }, "StackName" : { "Value" : { "Ref" : "AWS::StackName" } } }
YAML
Outputs: SNSTopic: Value: !Ref MyNotificationTopic StackName: Value: !Ref AWS::StackName
OutputsAbschnitt mit einer Ausgabe, die auf einer Funktion, einer Literalzeichenfolge, einer Referenz und einem Pseudo-Parameter basiert
Dieses Beispiel zeigt einen Outputs-Abschnitt mit einer Ausgabenzuweisung. Die Join-Funktion wird verwendet, um den Wert zu verketten, wobei ein Prozentzeichen als Begrenzungszeichen verwendet wird.
JSON
"Outputs" : { "MyOutput" : { "Value" : { "Fn::Join" : [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ] } } }
YAML
Outputs: MyOutput: Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
Vorlagenformatversion
Der folgende Ausschnitt zeigt eine gültige Abschnittsdeklaration. AWSTemplateFormatVersion
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
AWSTags Eigenschaft
Dieses Beispiel zeigt eine Eigenschaft. AWS Tags
Sie würden diese Eigenschaft im Abschnitt „Properties” einer Ressource angeben. Wenn die Ressource erstellt wird, wird sie mit den Tags markiert, die Sie deklarieren.
JSON
"Tags" : [ { "Key" : "keyname1", "Value" : "value1" }, { "Key" : "keyname2", "Value" : "value2" } ]
YAML
Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2"