CloudFormation Schnipsel aus Vorlagen - 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.

CloudFormation Schnipsel aus Vorlagen

Verschachtelte Stacks

Verschachteln eines Stacks in einer Vorlage

Diese Beispielvorlage enthält eine geschachtelte Stack-Ressource mit dem Namen myStack. Wenn CloudFormation aus der Vorlage ein Stapel erstellt wird, wird der erstelltmyStack, dessen Vorlage in der TemplateURL Eigenschaft angegeben ist. Der Ausgabewert StackRef gibt die Stack-ID für myStack zurück und der Wert OutputFromNestedStack gibt den Ausgabewert BucketName innerhalb der myStack-Ressource zurück. Das Format Outputs.nestedstackoutputname ist für die Angabe von Ausgabewerten aus verschachtelten Stapeln reserviert und kann an beliebiger Stelle innerhalb der enthaltenen Vorlage verwendet werden.

Weitere Informationen finden Sie unter AWS::CloudFormation::Stack.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myStack" : { "Type" : "AWS::CloudFormation::Stack", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template", "TimeoutInMinutes" : "60" } } }, "Outputs": { "StackRef": {"Value": { "Ref" : "myStack"}}, "OutputFromNestedStack" : { "Value" : { "Fn::GetAtt" : [ "myStack", "Outputs.BucketName" ] } } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: myStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template TimeoutInMinutes: '60' Outputs: StackRef: Value: !Ref myStack OutputFromNestedStack: Value: !GetAtt myStack.Outputs.BucketName

Verschachteln eines Stacks mit Eingabeparametern in einer Vorlage

Diese Beispielvorlage enthält eine Stack-Ressource, die Eingabeparameter angibt. Wenn aus dieser Vorlage ein Stapel CloudFormation erstellt wird, werden die in der Parameters Eigenschaft deklarierten Wertepaare als Eingabeparameter für die Vorlage verwendet, mit der der myStackWithParams Stapel erstellt wurde. In diesem Beispiel wurden die Parameter InstanceType und KeyName angegeben.

Weitere Informationen finden Sie unter AWS::CloudFormation::Stack.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myStackWithParams" : { "Type" : "AWS::CloudFormation::Stack", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-1/EC2ChooseAMI.template", "Parameters" : { "InstanceType" : "t2.micro", "KeyName" : "mykey" } } } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: myStackWithParams: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://s3.amazonaws.com/cloudformation-templates-us-east-1/EC2ChooseAMI.template Parameters: InstanceType: t2.micro KeyName: mykey

Wartebedingung

Verwenden einer Wartebedingung mit einer EC2 Amazon-Instance

Wichtig

Für Amazon EC2 - und Amazon EC2 Auto Scaling Scaling-Ressourcen empfehlen wir, anstelle von Wartebedingungen ein CreationPolicy Attribut zu verwenden. Fügen Sie diesen Ressourcen ein CreationPolicy Attribut hinzu und verwenden Sie das cfn-signal-Hilfsskript, um zu signalisieren, dass ein Instance-Erstellungsprozess erfolgreich abgeschlossen wurde.

Wenn Sie keine Erstellungsrichtlinie verwenden können, sehen Sie sich die folgende Beispielvorlage an, die eine EC2 Amazon-Instance mit einer Wartebedingung deklariert. Die myWaitCondition Wartebedingung wird myWaitConditionHandle zur Signalisierung verwendet, verwendet das DependsOn Attribut, um anzugeben, dass die Wartebedingung ausgelöst wird, nachdem die EC2 Amazon-Instance-Ressource erstellt wurde, und verwendet die Timeout Eigenschaft, um eine Dauer von 4500 Sekunden für die Wartebedingung anzugeben. Darüber hinaus wird die vorsignierte URL, die die Wartebedingung signalisiert, mit der UserData Eigenschaft der Ec2Instance Ressource an die EC2 Amazon-Instance übergeben, sodass eine Anwendung oder ein Skript, das auf dieser EC2 Amazon-Instance ausgeführt wird, die vorsignierte URL abrufen und verwenden kann, um der Wartebedingung einen Erfolg oder Misserfolg zu signalisieren. Sie müssen cfn-signal verwenden oder die Anwendung oder das Skript erstellen, das die Wartebedingung signalisiert. Der Ausgabewert ApplicationData enthält die Daten, die vom Wartezustandssignal zurückgegeben werden.

Weitere Informationen finden Sie unter Wartebedingungen in einer CloudFormation Vorlage erstellen.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Mappings" : { "RegionMap" : { "us-east-1" : { "AMI" : "ami-0123456789abcdef0" }, "us-west-1" : { "AMI" : "ami-0987654321fedcba0" }, "eu-west-1" : { "AMI" : "ami-0abcdef123456789a" }, "ap-northeast-1" : { "AMI" : "ami-0fedcba987654321b" }, "ap-southeast-1" : { "AMI" : "ami-0c1d2e3f4a5b6c7d8" } } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "UserData" : { "Fn::Base64" : {"Ref" : "myWaitHandle"}}, "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]} } }, "myWaitHandle" : { "Type" : "AWS::CloudFormation::WaitConditionHandle", "Properties" : { } }, "myWaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "DependsOn" : "Ec2Instance", "Properties" : { "Handle" : { "Ref" : "myWaitHandle" }, "Timeout" : "4500" } } }, "Outputs" : { "ApplicationData" : { "Value" : { "Fn::GetAtt" : [ "myWaitCondition", "Data" ]}, "Description" : "The data passed back as part of signalling the WaitCondition." } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Mappings: RegionMap: us-east-1: AMI: ami-0123456789abcdef0 us-west-1: AMI: ami-0987654321fedcba0 eu-west-1: AMI: ami-0abcdef123456789a ap-northeast-1: AMI: ami-0fedcba987654321b ap-southeast-1: AMI: ami-0c1d2e3f4a5b6c7d8 Resources: Ec2Instance: Type: AWS::EC2::Instance Properties: UserData: Fn::Base64: !Ref myWaitHandle ImageId: Fn::FindInMap: - RegionMap - Ref: AWS::Region - AMI myWaitHandle: Type: AWS::CloudFormation::WaitConditionHandle Properties: {} myWaitCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: Ec2Instance Properties: Handle: !Ref myWaitHandle Timeout: '4500' Outputs: ApplicationData: Value: !GetAtt myWaitCondition.Data Description: The data passed back as part of signalling the WaitCondition.

Verwenden des cfn-signal-Hilfsskript zum Signalisieren einer Wartebedingung

Dieses Beispiel zeigt eine cfn-signal-Befehlszeile, die den Erfolg einer Wartebedingung signalisiert. Sie müssen die Befehlszeile in der UserData Eigenschaft der EC2 Instance definieren.

JSON

"UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "/opt/aws/bin/cfn-signal --exit-code 0 '", { "Ref": "myWaitHandle" }, "'\n" ] ] } }

YAML

UserData: 'Fn::Base64': 'Fn::Join': - '' - - | #!/bin/bash -xe - /opt/aws/bin/cfn-signal --exit-code 0 ' - Ref: myWaitHandle - | '

Erstellen eines Signal für eine Wartebedingung mit Curl

Das folgende Beispiel zeigt eine Curl-Befehlszeile, die für eine Wartebedingung einen Erfolg signalisiert.

curl -T /tmp/a "https://cloudformation-waitcondition-test.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A034017226601%3Astack%2Fstack-gosar-20110427004224-test-stack-with-WaitCondition--VEYW%2Fe498ce60-70a1-11e0-81a7-5081d0136786%2FmyWaitConditionHandle?Expires=1303976584&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=ik1twT6hpS4cgNAw7wyOoRejVoo%3D"

Wobei die Datei /tmp/a die folgenden JSON-Struktur enthält:

{ "Status" : "SUCCESS", "Reason" : "Configuration Complete", "UniqueId" : "ID1234", "Data" : "Application has completed configuration." }

Das folgende Beispiel zeigt eine Curl-Befehlszeile, die dasselbe Erfolgssignal sendet, mit der Ausnahme, dass die JSON als Parameter in der Befehlszeile gesendet wird.

curl -X PUT -H 'Content-Type:' --data-binary '{"Status" : "SUCCESS","Reason" : "Configuration Complete","UniqueId" : "ID1234","Data" : "Application has completed configuration."}' "https://cloudformation-waitcondition-test.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A034017226601%3Astack%2Fstack-gosar-20110427004224-test-stack-with-WaitCondition--VEYW%2Fe498ce60-70a1-11e0-81a7-5081d0136786%2FmyWaitConditionHandle?Expires=1303976584&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=ik1twT6hpS4cgNAw7wyOoRejVoo%3D"