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. ist für die Angabe von Ausgabewerten aus verschachtelten Stapeln reserviert und kann an beliebiger Stelle innerhalb der enthaltenen Vorlage verwendet werden.nestedstackoutputname
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
Verwendung einer Wartebedingung mit einer Amazon EC2-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 die folgende Beispielvorlage, in der eine Amazon EC2-Instance mit einer Wartebedingung deklariert wird. Die Wartebedingung myWaitCondition verwendet myWaitConditionHandle für die Signalisierung, verwendet das Attribut DependsOn, um anzugeben, dass die Wartebedingung ausgelöst wird, nachdem die Amazon EC2-Instanceressource erstellt wurde, und verwendet die Eigenschaft Timeout, um eine Dauer von 4500 Sekunden für die Wartebedingung anzugeben. Außerdem wird die vorzeichenbehaftete URL, die die Wartebedingung signalisiert, mit der Eigenschaft UserData der Ec2Instance-Ressource an die Amazon EC2-Instance weitergegeben. So kann eine Anwendung oder ein Skript, das auf dieser Amazon EC2-Instance läuft, die vorzeichenbehaftete URL abrufen und sie verwenden, um einen Erfolg oder Misserfolg der Wartebedingung 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 Eigenschaft UserData 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"