AWS 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.

AWS 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 AWS 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 Outputs.nestedstackoutputname Format ist für die Angabe von Ausgabewerten aus verschachtelten Stapeln reserviert und kann überall in der enthaltenden 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 AWS CloudFormation erstellt wird, werden die in der Parameters Eigenschaft deklarierten Wertepaare als Eingabeparameter für die Vorlage verwendet, mit der der Stapel erstellt wurde. myStackWithParams 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 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 das Vorsignierte, URL das 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, das Vorsignierte abrufen URL und verwenden kann, um der Wartebedingung einen Erfolg oder Misserfolg zu signalisieren. Sie müssen die Anwendung oder das Skript verwenden cfn-signal oder erstellen, das die Wartebedingung signalisiert. Der Ausgabewert ApplicationData enthält die Daten, die vom Wartebedingungssignal zurückgegeben wurden.

Weitere Informationen dazu finden Sie unter Wartebedingungen in einer CloudFormation Vorlage erstellen, AWS::CloudFormation::WaitCondition, AWS::CloudFormation::WaitConditionHandle und cfn-signal.

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Mappings" : { "RegionMap" : { "us-east-1" : { "AMI" : "ami-0ff8a91507f77f867" }, "us-west-1" : { "AMI" : "ami-0bdb828fd58c52235" }, "eu-west-1" : { "AMI" : "ami-047bb4163c506cd98" }, "ap-northeast-1" : { "AMI" : "ami-06cd52961ce9f0d85" }, "ap-southeast-1" : { "AMI" : "ami-08569b978cc4dfa10" } } }, "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-0ff8a91507f77f867 us-west-1: AMI: ami-0bdb828fd58c52235 eu-west-1: AMI: ami-047bb4163c506cd98 ap-northeast-1: AMI: ami-06cd52961ce9f0d85 ap-southeast-1: AMI: ami-08569b978cc4dfa10 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 einer Wartebedingung den Erfolg signalisiert. Sie müssen die Befehlszeile in der UserData Eigenschaft der EC2 Instanz 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 folgende Struktur enthält: JSON

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

Dieses Beispiel zeigt eine Curl-Befehlszeile, die dasselbe Erfolgssignal sendet, außer dass sie das JSON als Parameter an die Befehlszeile sendet.

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"