Allgemeine Vorlagenausschnitte - AWS CloudFormation

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.

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 den Metadata Abschnitt aufnehmen. Weitere Informationen finden Sie unter Metadata.

  • Der Outputs-Vorlagenabschnitt. Weitere Informationen finden Sie unter Outputs.

  • 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 StopSlowDown, 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"