CreationPolicy Attribut - 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.

CreationPolicy Attribut

Ordnen Sie das CreationPolicy Attribut einer Ressource zu, um zu verhindern, dass ihr Status create complete erreicht, bis AWS CloudFormation eine bestimmte Anzahl von Erfolgssignalen empfangen wird oder der Timeout-Zeitraum überschritten ist. Um eine Ressource zu signalisieren, können Sie das Hilfsskript oder die API cfn-Signal verwenden. SignalResource CloudFormation veröffentlicht gültige Signale für die Stack-Ereignisse, sodass Sie die Anzahl der gesendeten Signale verfolgen können.

Die Erstellungsrichtlinie wird nur aufgerufen, wenn die zugehörige Ressource CloudFormation erstellt wird. Derzeit sind die einzigen CloudFormation Ressourcen, die Erstellungsrichtlinien unterstützen, folgende:

Verwenden Sie das Attribut CreationPolicy, wenn vor der Stack-Erstellung auf Ressourcenkonfigurationsoptionen gewartet werden soll. Wenn Sie beispielsweise Softwareanwendungen auf einer EC2 Instance installieren und konfigurieren, sollten diese Anwendungen ausgeführt werden, bevor Sie fortfahren. In diesen Fällen können Sie der Instance ein CreationPolicy-Attribut hinzufügen und nach der Installation und Konfiguration der Anwendungen der Instance ein Erfolgssignal senden. Ein ausführliches Beispiel finden Sie unter Bereitstellen von Anwendungen auf Amazon EC2 mit AWS CloudFormation.

AppStream Richtlinie zur Gründung von 2.0

AppStream Amazon-Konfiguration für eine Erstellungsrichtlinie.

Syntax

JSON

{ "CreationPolicy": { "StartFleet": { "Type": "Boolean" } } }

YAML

CreationPolicy: StartFleet: Type: Boolean
StartFleet

Startet die angegebene Flotte.

Required: No

Erstellungseigenschaften für Amazon EC2 Auto Scaling

Konfiguration von Amazon EC2 Auto Scaling für eine Erstellungsrichtlinie.

Syntax

JSON

"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : Integer }, "ResourceSignal" : { "Count" : Integer, "Timeout" : String } }

YAML

CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: Integer ResourceSignal: Count: Integer Timeout: String

Erstellungseigenschaften für Amazon EC2 Auto Scaling

Konfiguration von Amazon EC2 Auto Scaling für eine Erstellungsrichtlinie.

AutoScalingCreationPolicy

Gibt für eine neue Amazon-EC2-Auto-Scaling-Gruppe die Anzahl der Instances an, die den Erfolg signalisieren müssen, bevor der Status der Gruppe auf CREATE_COMPLETE festgelegt wird.

MinSuccessfulInstancesPercent

Gibt den prozentualen Anteil an Instances in Amazon EC2 Auto Scaling an, die den Erfolg signalisieren müssen, bevor der Status der Gruppe auf CREATE_COMPLETE festgelegt wird. Sie können einen Wert von 0 bis angeben100. CloudFormation rundet auf das nächste Zehntel Prozent. Wenn Sie beispielsweise fünf Instances mit einem minimalen erfolgreichen Prozentsatz von 50 erstellen, müssen drei Instances Erfolg signalisieren. Wenn eine Instanz innerhalb der in der Timeout Eigenschaft angegebenen Zeit kein Signal sendet, wird CloudFormation davon ausgegangen, dass die Instanz nicht erstellt wurde.

Standardwert: 100

Typ: Ganzzahl

Required: No

ResourceSignal

When CloudFormation erstellt die zugehörige Ressource und konfiguriert die Anzahl der erforderlichen Erfolgssignale und die Dauer der CloudFormation Wartezeit auf diese Signale.

Count

Die Anzahl der Erfolgssignale, die empfangen CloudFormation werden müssen, bevor der Ressourcenstatus auf festgelegt wird. CREATE_COMPLETE Wenn die Ressource vor Ablauf des Timeout-Zeitraums ein Fehlersignal oder nicht die angegebene Anzahl von Signalen empfängt, CloudFormation schlägt die Ressourcenerstellung fehl und der Stack wird zurückgesetzt.

Standardwert: 1

Typ: Ganzzahl

Required: No

Timeout

Die Zeitspanne, in der auf CloudFormation die in der Eigenschaft angegebene Anzahl von Signalen gewartet wird. Count Der Timeout-Zeitraum beginnt, nachdem CloudFormation mit der Erstellung der Ressource begonnen wurde. Der Timeout läuft frühestens zu dem von Ihnen angegebenen Zeitpunkt ab, kann aber auch kurz danach eintreten. Die maximale Zeitspanne, die Sie angeben können, beträgt 12 Stunden.

Der Wert muss im ISO8601-Format für Zeitspannen im Format PT#H#M#S angegeben werden, wobei # für Zeichen die Anzahl von Stunden, Minuten bzw. Sekunden steht. Um die besten Ergebnisse zu erzielen, geben Sie eine ausreichend lange Zeitspanne an, sodass genügend Zeit zum Starten der Instances gegeben ist. Ein kürzeres Zeitlimit können zu einem Rollback führen.

Standard: PT5M (5 Minuten)

Typ: Zeichenfolge

Required: No

Beispiele

Auto Scaling-Gruppe

Im folgenden Beispiel wird gezeigt, wie Sie einer Amazon-EC2-Auto-Scaling-Gruppe eine Erstellungsrichtlinie hinzufügen. Die Erstellungsrichtlinie erfordert drei Signale und hat ein Zeitüberschreitungslimit von 15 Minuten.

Damit Instances auf eine Elastic Load Balancing-Zustandsprüfung warten, bevor sie Erfolg signalisieren, fügen Sie mit dem Hilfsprogramm-Skript cfn-init eine Verifizierung der Zustandsprüfung hinzu. Ein Beispiel finden Sie unter dem Befehl verify_instance_health in der Beispielvorlage Fortlaufende Updates für Amazon EC2 Auto Scaling.

JSON
"AutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "AvailabilityZones": { "Fn::GetAZs": "" }, "LaunchConfigurationName": { "Ref": "LaunchConfig" }, "DesiredCapacity": "3", "MinSize": "1", "MaxSize": "4" }, "CreationPolicy": { "ResourceSignal": { "Count": "3", "Timeout": "PT15M" } }, "UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : "true" }, "AutoScalingRollingUpdate" : { "MinInstancesInService" : "1", "MaxBatchSize" : "2", "PauseTime" : "PT1M", "WaitOnResourceSignals" : "true" } } }, "LaunchConfig": { "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": "ami-16d18a7e", "InstanceType": "t2.micro", "UserData": { "Fn::Base64": { "Fn::Join" : [ "", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-signal -e 0 --stack ", { "Ref": "AWS::StackName" }, " --resource AutoScalingGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ] ] } } } }
YAML
AutoScalingGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: AvailabilityZones: Fn::GetAZs: '' LaunchConfigurationName: Ref: LaunchConfig DesiredCapacity: '3' MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' PauseTime: PT1M WaitOnResourceSignals: 'true' LaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-16d18a7e InstanceType: t2.micro UserData: "Fn::Base64": !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource AutoScalingGroup --region ${AWS::Region}

WaitCondition

Im folgenden Beispiel wird gezeigt, wie Sie einer Wartebedingung eine Erstellungsrichtlinie hinzufügen.

JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5