Dies ist das neue CloudFormation Template Reference Guide. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im AWS CloudFormation Benutzerhandbuch.
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.
UpdatePolicy Attribut
Verwenden Sie das UpdatePolicy Attribut, um anzugeben, wie Aktualisierungen bestimmter Ressourcen bei Stack-Aktualisierungsvorgängen CloudFormation behandelt werden.
Themen
-Übersicht
Mit dem Attribut UpdatePolicy können Sie steuern, wie die folgenden Ressourcen aktualisiert werden, wie hier beschrieben:
-
AWS::AppStream: :Fleet — CloudFormation kann eine Flotte stoppen und starten, wodurch die Instanzen der Flotte ersetzt werden. Auf diese Weise werden alle Instances sofort nach einer Stack-Aktualisierung mit den neuesten Änderungen versorgt.
-
AWS::AutoScaling::AutoScalingGroup— Mit Auto Scaling Scaling-Gruppen können Sie eine oder mehrere Aktualisierungsrichtlinien verwenden, um zu steuern, wie CloudFormation mit bestimmten Updates umgegangen wird. Diese Richtlinien umfassen:
-
AutoScalingReplacingUpdateundAutoScalingRollingUpdateRichtlinien — CloudFormation können entweder die Auto Scaling Scaling-Gruppe und ihre Instances durch eineAutoScalingReplacingUpdateRichtlinie ersetzen oder nur die Instances durch eineAutoScalingRollingUpdateRichtlinie ersetzen. Diese Ersetzungsvorgänge finden statt, wenn Sie eine oder mehrere der folgenden Änderungen vornehmen:-
Ändern Sie die AWS::AutoScaling::LaunchConfiguration der Auto-Scaling-Gruppe.
-
Ändern der
VPCZoneIdentifier-Eigenschaft der Auto-Scaling-Gruppe. -
Ändern der
LaunchTemplate-Eigenschaft der Auto-Scaling-Gruppe. -
Ändern der
PlacementGroup-Eigenschaft der Auto-Scaling-Gruppe. -
Aktualisieren einer Auto Scaling-Gruppe mit Instances, die nicht der aktuellen
LaunchConfigurationentsprechen.
Wenn sowohl die Richtlinie
AutoScalingReplacingUpdateals auch die RichtlinieAutoScalingRollingUpdateangegeben wird, erhält durch Festlegen derWillReplace-Eigenschaft auftrueAutoScalingReplacingUpdateden Vorrang. -
-
AutoScalingInstanceRefreshpolicy — CloudFormation führt eine Auto Scaling Scaling-Instanzaktualisierung durch, wenn Sie bestimmte Eigenschaften der Auto Scaling Scaling-Gruppe ändern. Im Vergleich zuAutoScalingRollingUpdateunterstützt diese Richtlinie Instance-Wartungsrichtlinien (einschließlich Start vor Beendigung), Kündigungsrichtlinien, Scale-In-Schutz, Austausch von Root-Volumes und zusätzliche Amazon EC2 Auto Scaling Scaling-Funktionen. Sie können nicht beideAutoScalingInstanceRefreshundAutoScalingRollingUpdatefür dieselbe Auto Scaling Scaling-Gruppe angeben. Weitere Informationen hierzu finden Sie unter AutoScalingInstanceRefresh Richtlinie. -
AutoScalingScheduledActionRichtlinie — Diese Richtlinie gilt, wenn Sie einen Stack aktualisieren, der eine Auto Scaling Scaling-Gruppe mit geplanten Aktionen enthält, die die Gruppe zu bestimmten Zeiten skalieren. CloudFormation kann die Mindestgröße, Maximalgröße oder gewünschte Kapazität der Gruppe nur ändern, wenn sie in der Stack-Vorlage ausdrücklich geändert wurden. Diese Richtlinie hilft, unerwartete Aktualisierungen zu verhindern, die die geplanten Skalierungsaktivitäten beeinträchtigen könnten.
-
-
AWS::ElastiCache::ReplicationGroup— CloudFormation kann die Shards einer Replikationsgruppe ändern, indem Shards hinzugefügt oder entfernt werden, anstatt die gesamte Ressource zu ersetzen.
-
AWS::OpenSearchService::Domainund AWS::Elasticsearch::Domain(Legacy) — CloudFormation kann eine OpenSearch Service-Domain auf eine neue Version von OpenSearch oder Elasticsearch aktualisieren, ohne die gesamte Ressource zu ersetzen.
-
AWS::Lambda::Alias— CloudFormation kann eine CodeDeploy Bereitstellung durchführen, wenn sich die Version des Alias ändert.
In den folgenden Abschnitten werden die Syntax und die Eigenschaften für das Attribut UpdatePolicy beschrieben, das von jedem Ressourcentyp unterstützt wird.
WorkSpaces Richtlinie zur Aktualisierung von Anwendungen
Um eine WorkSpaces Anwendungsflotte vor einem Update zu beenden und sie nach einem Update neu zu starten, verwenden Sie die Richtlinie für WorkSpaces Anwendungsupdates.
Syntax
JSON
{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }
YAML
UpdatePolicy: StopBeforeUpdate: Type:BooleanStartAfterUpdate: Type:Boolean
StopBeforeUpdate-
Stoppt die angegebene Flotte vor der Aktualisierung.
Required: No
StartAfterUpdate-
Startet die angegebene Flotte nach der Aktualisierung.
Required: No
AutoScalingReplacingUpdate Richtlinie
Um die Auto-Scaling-Gruppe und die darin enthaltenen Instances zu ersetzen, verwenden Sie die Richtlinie AutoScalingReplacingUpdate.
Stellen Sie vor einer Aktualisierung sicher, dass genügend Amazon EC2-Kapazität für die alte und die neue Auto Scaling-Gruppe vorhanden ist.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" :Boolean} }
YAML
UpdatePolicy: AutoScalingReplacingUpdate: WillReplace:Boolean
Eigenschaften
WillReplace-
Gibt an, ob eine Auto Scaling-Gruppe und die darin enthaltenen Instances während einer Aktualisierung ersetzt werden. CloudFormation Behält beim Ersetzen die alte Gruppe bei, bis die Erstellung der neuen Gruppe abgeschlossen ist. Wenn das Update fehlschlägt, CloudFormation können Sie zur alten Auto Scaling Scaling-Gruppe zurückkehren und die neue Auto Scaling Scaling-Gruppe löschen.
Während die neue Gruppe CloudFormation erstellt wird, werden keine Instanzen getrennt oder angehängt. CloudFormation Löscht nach erfolgreicher Erstellung der neuen Auto Scaling Scaling-Gruppe die alte Auto Scaling Scaling-Gruppe während des Bereinigungsvorgangs.
Wenn Sie den
WillReplace-Parameter angeben, müssen Sie auch eine entsprechende CreationPolicy Attribut angeben. Wenn die Mindestanzahl von Instances (angegeben durch dieMinSuccessfulInstancesPercentEigenschaft) innerhalb des (imCreationPolicyAttribut angegebenen)TimeoutZeitraums keinen Erfolg signalisiert, CloudFormation schlägt das Ersatz-Update fehl und es wird zur alten Auto Scaling Scaling-Gruppe zurückgesetzt.Typ: Boolesch
Required: No
AutoScalingRollingUpdate Richtlinie
Wenn Sie ein Rolling Update der Instances in einer Auto-Scaling-Gruppe durchführen möchten, anstatt darauf zu warten, dass die Skalierungsaktivitäten ältere Instances nach und nach durch neuere Instances ersetzen, verwenden Sie die Richtlinie AutoScalingRollingUpdate. Diese Richtlinie bietet Ihnen die Flexibilität, festzulegen, ob Instances, die sich in einer Auto Scaling Scaling-Gruppe befinden, stapelweise oder alle auf einmal CloudFormation ersetzt werden, ohne die gesamte Ressource zu ersetzen.
Was Sie bei der Verwendung einer AutoScalingRollingUpdate-Police beachten sollten:
Warnung
Bei fortlaufenden Updates wird die in Ihrer Auto Scaling Scaling-Gruppe konfigurierte Instanzwartungsrichtlinie nicht berücksichtigt. Während eines fortlaufenden Updates kann die intakte Kapazität unter die für die Gruppe MinHealthyPercentage festgelegte Kapazität fallen und CloudFormation es werden keine neuen Instances gestartet, bevor bestehende beendet werden, unabhängig davonMaxHealthyPercentage. Um Ihre Instanz-Wartungsrichtlinie bei Stack-Updates beizubehalten, verwenden Sie AutoScalingInstanceRefresh Richtlinie stattdessen die.
-
Beim CloudFormation Rollback eines Updates wird die
UpdatePolicyKonfiguration verwendet, die in der Vorlage vor dem aktuellen Stack-Update angegeben wurde. Beispiel: Sie ändern den WertMaxBatchSizevon 1 auf 10 in derUpdatePolicy, führen ein Stack-Update durch und dieses Update schlägt fehl. CloudFormation verwendet beim Rollback 1 als maximale Batchgröße, nicht 10. Um dieses Szenario zu vermeiden, nehmen Sie die Änderungen anUpdatePolicyin einem separaten Update vor allen Updates der Auto-Scaling-Gruppe vor, die wahrscheinlich Rolling Updates auslösen werden. -
CloudFormation empfiehlt, die
SuspendProcessesEigenschaft anzugeben, um Amazon EC2 Auto Scaling Scaling-Prozesse vorübergehend auszusetzen, die das fortlaufende Update stören und dazu führen könnten, dass es fehlschlägt. Weitere Informationen finden Sie unter Wie kann ich meine Auto Scaling Scaling-Gruppe aktualisieren, wenn ich meinen CloudFormation Stack aktualisiere?Alternativ unterstützt die
AutoScalingInstanceRefreshRichtlinie alle Auto Scaling Scaling-Gruppenprozesse bei Stack-Updates, sodass Sie sie nicht aussetzen müssen. Wenn Prozesse wie Integritätsprüfungen und AZ-Neuverteilung aktiv bleiben sollen, verwenden SieAutoScalingInstanceRefreshstattdessen. Weitere Informationen hierzu finden Sie unter AutoScalingInstanceRefresh Richtlinie. -
CloudFormation unterstützt die Verwendung von Amazon EC2 Auto Scaling Lifecycle-Hooks beim Starten oder Beenden von Instances. So haben Sie Zeit, benutzerdefinierte Aktionen für eine Instance durchzuführen, bevor diese in den nächsten Status übergeht. Um sicherzustellen, dass neue Instances den Zustand
InServiceerreichen, schließen Sie den Lebenszyklus-Hook mit einemCONTINUE-Ergebnis ab, wenn die benutzerdefinierte Aktion beendet ist. Standardmäßig wird der Start der Instance als erfolglos betrachtet und abgebrochen, wenn keine Antwort empfangen wird und der Lebenszyklus-Hook eine Zeitüberschreitung aufweist. Wenn keine Instances den ZustandInServiceerreichen, schlägt das Rolling Update schließlich fehl. -
Andere Amazon EC2 Auto Scaling Scaling-Funktionen wie Kündigungsrichtlinien und Scale-In-Schutz sind für die Verwendung mit CloudFormation fortlaufenden Updates nicht verfügbar. Wenn Sie eine dieser Funktionen benötigen, verwenden Sie sie stattdessen.
AutoScalingInstanceRefreshWeitere Informationen finden Sie unter AutoScalingInstanceRefresh Richtlinie. -
Wenn Sie eine
AutoScalingRollingUpdateRichtlinie verwenden und die Platzierungsgruppeneinstellung entfernen, wird die Platzierungsgruppe aus der Auto Scaling Scaling-Gruppe und der CloudFormation Vorlage entfernt. Auch dies löst ein Rolling Update aus, sodass neue Instances nicht in eine Platzierungsgruppe gestartet werden.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" :Integer, "MinActiveInstancesPercent" :Integer, "MinInstancesInService" :Integer, "MinSuccessfulInstancesPercent" :Integer, "PauseTime" :String, "SuspendProcesses" : [List of processes], "WaitOnResourceSignals" :Boolean} }
YAML
UpdatePolicy: AutoScalingRollingUpdate: MaxBatchSize:IntegerMinActiveInstancesPercent:IntegerMinInstancesInService:IntegerMinSuccessfulInstancesPercent:IntegerPauseTime:StringSuspendProcesses: -List of processesWaitOnResourceSignals:Boolean
Eigenschaften
MaxBatchSize-
Gibt die maximale Anzahl von Instances an, die gleichzeitig ersetzt werden können.
Standardwert:
1Maximum:
100Typ: Ganzzahl
Required: No
MinActiveInstancesPercent-
Gibt den Prozentsatz der Instances in einer Auto-Scaling-Gruppe an, die sich während eines Rolling Updates im Verhältnis zur gewünschten Kapazität der Gruppe im Zustand
InServicebefinden müssen, damit ein Update erfolgreich ist. Sie können einen Wert zwischen 0 und 100 angeben. CloudFormation rundet auf das nächste Zehntelprozent. Wenn Sie beispielsweise fünf Instances mit einem Mindestprozentsatz vonInServicevon 50 aktualisieren, müssen sich mindestens drei Instances im ZustandInServicebefinden. Wenn eine Instanz nicht innerhalb einer festen Zeit von 1 Stunde in denInServiceStatus wechselt, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.Die Einstellung
MinActiveInstancesPercentinUpdatePolicywirkt sich auch auf Instances aus, die gestartet werden, wenn die EigenschaftDesiredCapacityder RessourceAWS::AutoScaling::AutoScalingGrouphöher als die aktuell gewünschte Kapazität dieser Auto-Scaling-Gruppe eingestellt ist.Standardwert:
100Typ: Ganzzahl
Required: No
MinInstancesInService-
Gibt die Mindestanzahl von Instances an, die innerhalb der Auto Scaling Scaling-Gruppe in Betrieb sein müssen, während alte Instances CloudFormation aktualisiert werden. Dieser Wert muss kleiner sein als der Wert MaxSize der Auto-Scaling-Gruppe.
Warnung
Wir empfehlen Ihnen, den Wert der Eigenschaft
MinInstancesInServicemindestens auf den Wert MinSize der Auto-Scaling-Gruppe zu setzen. Dadurch werden potenzielle Verfügbarkeitsprobleme während eines Rolling Updates vermieden, da 0 Instances den Kundenverkehr bedienen.Standardwert:
0Typ: Ganzzahl
Required: No
MinSuccessfulInstancesPercent-
Gibt den Prozentsatz der Instances in einem fortlaufenden Auto Scaling-Update an, die Erfolg signalisieren müssen, damit ein Update erfolgreich ist. Sie können einen Wert zwischen 0 und 100 angeben. CloudFormationrundet auf das nächste Zehntelprozent. Wenn Sie beispielsweise fünf Instances mit einem minimalen erfolgreichen Prozentsatz von
50aktualisieren, müssen drei Instances Erfolg signalisieren. Wenn eine Instanz innerhalb der in derPauseTimeEigenschaft angegebenen Zeit kein Signal sendet, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.Wir empfehlen Ihnen, den Wert der Eigenschaft
MinSuccessfulInstancesPercentauf einen Wert größer als 0 zu setzen. Wenn dieMinSuccessfulInstancesPercentEigenschaft auf 0 gesetzt ist, wird CloudFormation darauf gewartet, dass sich 0% der Kapazitätsinstanzen in einem bestimmtenInServiceZustand befinden.MinSuccessfulInstancesPercentkehrt sofort zurück und bevor der Status der Auto Scaling Scaling-Gruppe berücksichtigt wirdUPDATE_COMPLETE, um zu den nachfolgenden Ressourcen überzugehen, die in der Stack-Vorlage definiert sind. Wenn in Ihrer CloudFormation Vorlage andere Auto Scaling Scaling-Gruppen definiert sind, werden sie gleichzeitig aktualisiert. Wenn alle Auto-Scaling-Gruppen gleichzeitig mit 0 % der Kapazitäts-Instances in einemInService-Zustand bereitgestellt werden, kommt es zu Verfügbarkeitsproblemen, da 0 Instances den Kunden-Datenverkehr bedienen.Standardwert:
100Typ: Ganzzahl
Required: No
PauseTime-
Die Zeitspanne, die nach einer Änderung an einem Batch von Instances CloudFormation angehalten wird, damit diese Instanzen Zeit haben, Softwareanwendungen zu starten.
Geben Sie die Dauer
PauseTimeim ISO8601-Formatan (in dem Format PT, in dem jede für die Anzahl von Stunden, Minuten und Sekunden#H#M#S#steht). Die maximalePauseTimeist eine Stunde (PT1H).Warnung
Wenn
WaitOnResourceSignalsauftrueeingestellt ist, fungiertPauseTimeals Timeout-Wert. Es bestimmt die maximale CloudFormation Wartezeit, bis die erforderliche Anzahl gültiger Signale von den Instanzen empfangen wird, die während eines fortlaufenden Updates ersetzt werden, und von neuen Instanzen, die durch Erhöhung der DesiredCapacityEigenschaft der Ressource hinzugefügt werden.AWS::AutoScaling::AutoScalingGroupWenn der Wert überschrittenPauseTimewird, bevor die erwarteten Signale CloudFormation empfangen werden, schlägt das Update fehl. Die besten Ergebnisse erzielen Sie, wenn Sie eine Zeitspanne angeben, die ausreichend Zeit für den Start Ihrer Anwendungen bietet. Wenn die Aktualisierung rückgängig gemacht werden muss, kann eine kurzePauseTimedas Rollback fehlschlagen lassen.Standard:
PT5M(5 Minuten), wenn die EigenschaftWaitOnResourceSignalsauftrueeingestellt ist. Andernfalls wird kein Standardwert festgelegt.Typ: Zeichenfolge
Required: No
SuspendProcesses-
Gibt die Auto Scaling-Prozesse an, die während der Stack-Aktualisierung auszusetzen sind. Das Aussetzen von Prozessen verhindert, dass ein Stack-Update durch Auto Scaling gestört wird. Beispielsweise können Sie den Alarm aussetzen, so dass Amazon EC2 Auto Scaling keine mit einem Alarm verbundenen Skalierungsrichtlinien initiiert. Gültige Werte finden Sie unter Arten von Prozessen im Amazon-EC2-Auto-Scaling-Nutzerhandbuch.
Standard: Nicht angegeben
Typ: Liste von Auto Scaling-Prozessen
Required: No
WaitOnResourceSignals-
Gibt an, ob CloudFormation auf Erfolgssignale von neuen Instanzen gewartet wird, bevor das Update fortgesetzt wird. CloudFormation wartet für die angegebene
PauseTimeDauer auf Erfolgssignale.Um die Auto-Scaling-Gruppe zu signalisieren, verwenden Sie das Hilfsskript cfn-signal. Für Auto-Scaling-Gruppen, die mit Elastic Load Balancing verbunden sind, sollten Sie eine Zustandsprüfung hinzufügen, um sicherzustellen, dass die Instances in Ordnung sind, bevor Sie mit dem Hilfsskript cfn-init einen Erfolg melden. Ein Beispiel finden Sie in dem
verify_instance_healthBefehl in den Beispielvorlagen für fortlaufende Amazon EC2 Auto Scaling Scaling-Updates in unserem GitHub Repository. Standardwert:
falseTyp: Boolesch
Erforderlich: Bedingt. Wenn Sie die Eigenschaft
MinSuccessfulInstancesPercentangeben, muss die EigenschaftWaitOnResourceSignalsauftruegesetzt werden.
AutoScalingInstanceRefresh Richtlinie
Verwenden Sie die AutoScalingInstanceRefresh Richtlinie, um die Instances in einer Auto Scaling Scaling-Gruppe zu aktualisieren, indem Sie eine Auto Scaling Scaling-Instanzaktualisierung durchführen. Die vollständige Liste der Instance-Aktualisierungsfunktionen finden Sie unter Verwenden einer Instance-Aktualisierung zum Aktualisieren von Instances in einer Auto Scaling Scaling-Gruppe im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
CloudFormation führt eine Instance-Aktualisierung nur durch, wenn Sie eine der folgenden Eigenschaften einer AWS::AutoScaling::AutoScalingGroup Ressource aktualisieren:
LaunchTemplateMixedInstancesPolicyVPCZoneIdentifierAvailabilityZonesAvailabilityZoneIdsPlacementGroup
Beachten Sie bei der Verwendung der AutoScalingInstanceRefresh Richtlinie Folgendes:
-
Sie können nicht beide
AutoScalingInstanceRefreshAutoScalingRollingUpdateRichtlinien für dieselbe Auto Scaling Scaling-Gruppe angeben. Wenn Sie dies tun, schlägt das Stack-Update fehl. -
CloudFormation Stack-Rollback ist der Rollback-Mechanismus für.
AutoScalingInstanceRefreshWenn eine Instanzaktualisierung CloudFormation fehlschlägt, wird der Stack zurückgesetzt und eine neue Instanzaktualisierung gestartet, um die vorherige Konfiguration der Gruppe wiederherzustellen. Sie können den Auto ScalingRollbackInstanceRefreshScaling-API-Vorgang nicht für eine Instanzaktualisierung verwenden, die CloudFormation bereits gestartet wurde. Um eine Aktualisierung rückgängig zu machen, verwenden Sie dieCancelInstanceRefreshAPI oder machen Sie das Stack-Update rückgängig. -
Eine Auto Scaling Scaling-Gruppe kann jeweils nur eine Instanzaktualisierung ausführen. Wenn gerade eine vom Benutzer initiierte Instanzaktualisierung ausgeführt wird, während Sie ein Stack-Update mit der
AutoScalingInstanceRefreshRichtlinie starten, schlägt das Stack-Update möglicherweise fehl. -
Wenn Sie die Instanzaktualisierung
Strategyauf einstellenReplaceRootVolume, sind nur ÄnderungenImageIdinnerhalb der Startvorlage oder der Richtlinie für gemischte Instanzen zulässig. Andere Eigenschaftsänderungen können dazu führen, dass das Stack-Update fehlschlägt. Weitere Informationen finden Sie unter Ersetzen von Root-Volumes während der Instance-Aktualisierung im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch. -
Jede Richtung des Stack-Updates (Forward und Rollback) ist durch das CloudFormation Ressourcen-Timeout von 36 Stunden begrenzt.
-
Long-running Instanzaktualisierungen können die Lebensdauer der temporären Anmeldeinformationen überschreiten, die für den Aufruf von Auto Scaling CloudFormation verwendet werden. Um dies zu vermeiden, konfigurieren Sie eine Servicerolle auf dem Stack. Weitere Informationen finden Sie unter CloudFormation Dienstrolle.
Anmerkung
Die Instanzaktualisierung unterstützt das cfn-signal Hilfsskript nicht. Informationen darüber, wie Sie die Instanzbereitschaft während einer Instanzaktualisierung überprüfen können, finden Sie unterÜberprüfen Sie die Instanzbereitschaft während einer Instanzaktualisierung.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingInstanceRefresh" : { "Strategy" :String, "Preferences" : { "AlarmSpecification" : { "Alarms" : [List of alarm names] }, "BakeTime" :Integer, "CheckpointDelay" :Integer, "CheckpointPercentages" : [List of integers], "InstanceWarmup" :Integer, "MaxHealthyPercentage" :Integer, "MinHealthyPercentage" :Integer, "ScaleInProtectedInstances" :String, "SkipMatching" :Boolean, "StandbyInstances" :String} } }
YAML
UpdatePolicy: AutoScalingInstanceRefresh: Strategy:StringPreferences: AlarmSpecification: Alarms: -List of alarm namesBakeTime:IntegerCheckpointDelay:IntegerCheckpointPercentages: -List of integersInstanceWarmup:IntegerMaxHealthyPercentage:IntegerMinHealthyPercentage:IntegerScaleInProtectedInstances:StringSkipMatching:BooleanStandbyInstances:String
Eigenschaften
Strategy-
Die Strategie, die für die Instanzaktualisierung verwendet werden soll. Gültige Werte sind
RollingundReplaceRootVolume. Informationen zurReplaceRootVolumeStrategie finden Sie unter Ersetzen von Root-Volumes während der Instance-Aktualisierung im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.Typ: Zeichenfolge
Erforderlich: Ja
Preferences-
Legt die Einstellungen für die Instance-Aktualisierung fest. Beinhaltet die Aufwärmzeit der Instance, die minimalen und maximalen Fehlerquoten und das Verhalten, das Amazon EC2 Auto Scaling verwendet, wenn sich Instances im
StandbyStatus befinden oder vor dem Skalieren geschützt sind. Sie können auch zusätzliche Funktionen aktivieren:Checkpoints
CloudWatch Alarme
Überspringen
Bake time (Bake-Zeit)
Typ: Einstellungen
Required: No
Präferenzen
AlarmSpecification-
Die CloudWatch Alarmspezifikation. Sie können CloudWatch Alarme verwenden, um Probleme während der Instanzaktualisierung zu identifizieren und den Stack rückgängig zu machen, wenn ein Alarmschwellenwert erreicht wird. Weitere Informationen finden Sie unter Starten einer Instance-Aktualisierung mit automatischem Rollback im Amazon EC2 Auto Scaling-Benutzerhandbuch.
Typ: AlarmSpecification
Required: No
BakeTime-
Die Wartezeit in Sekunden am Ende einer Instance-Aktualisierung, bevor die Instance-Aktualisierung als abgeschlossen betrachtet wird.
Standardwert:
0Minimum:
0Maximum:
172800Typ: Ganzzahl
Required: No
CheckpointDelay-
Die Zeit in Sekunden, die nach einem Checkpoint gewartet werden muss, bevor fortgefahren wird. Wenn Sie einen Wert für,
CheckpointPercentagesaber nicht für angebenCheckpointDelay, ist derCheckpointDelayStandardwert3600(1 Stunde).Minimum:
0Maximum:
172800Typ: Ganzzahl
Required: No
CheckpointPercentages-
Schwellenwerte für jeden Checkpoint in aufsteigender Reihenfolge. Jede Zahl muss einzigartig sein. Um alle Instances in der Auto Scaling Scaling-Gruppe zu ersetzen, muss die letzte Zahl im Array sein
100. Anwendungsbeispiele finden Sie unter Hinzufügen von Checkpoints zu einer Instance-Aktualisierung im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.Typ: Liste von Ganzzahlen
Required: No
InstanceWarmup-
Ein Zeitraum in Sekunden, während dessen eine Instance-Aktualisierung wartet, bevor sie mit dem Ersetzen der nächsten Instance fortfährt, nachdem eine neue Instance in den
InService-Status wechselt.Wenn Sie keinen Wert angeben
InstanceWarmup, verwendet Auto Scaling stattdessen den Wert für dieDefaultInstanceWarmupEigenschaft. Wir empfehlen,DefaultInstanceWarmupin allen Anwendungsfällen einen Wert für festzulegen.Wenn Sie für keine der Eigenschaften einen Wert angeben, verwendet Auto Scaling den Wert der
HealthCheckGracePeriodEigenschaft.Typ: Ganzzahl
Required: No
MaxHealthyPercentage-
Gibt den maximalen Prozentsatz der Gruppe an, der in Betrieb und fehlerfrei oder ausstehend sein kann, um Ihre Arbeitslast beim Austausch von Instances zu unterstützen. Der Wert wird als Prozentsatz der gewünschten Kapazität der Auto Scaling Scaling-Gruppe ausgedrückt. Wenn Sie angeben
MaxHealthyPercentage, müssen Sie auch angebenMinHealthyPercentage, und der Unterschied zwischen beiden darf nicht größer als 100 sein. Ein größerer Bereich erhöht die Anzahl der Instances, die gleichzeitig ausgetauscht werden können.Standard: Der in der Instanzwartungsrichtlinie der Auto Scaling Scaling-Gruppe festgelegte Wert, sofern definiert. Andernfalls,
110wannStrategyistRollingoder100wannStrategyistReplaceRootVolume.Minimum:
100Maximum:
200Typ: Ganzzahl
Required: No
MinHealthyPercentage-
Gibt den Mindestanteil der Gruppe an, der in Betrieb, fehlerfrei und einsatzbereit gehalten werden muss, um Ihre Arbeitslast zu unterstützen, damit der Vorgang fortgesetzt werden kann. Der Wert wird als Prozentsatz der gewünschten Kapazität der Auto Scaling Scaling-Gruppe ausgedrückt.
Standard: Der in der Instanzwartungsrichtlinie der Auto Scaling Scaling-Gruppe festgelegte Wert, sofern definiert. Andernfalls,
100wannStrategyistRollingoder90wannStrategyistReplaceRootVolume.Minimum:
0Maximum:
100Typ: Ganzzahl
Required: No
ScaleInProtectedInstances-
Wählen Sie das Verhalten aus, das Amazon EC2 Auto Scaling verwenden soll, wenn Instances gefunden werden, die vor einer Abskalierung geschützt sind. Im Folgenden werden die gültigen Werte aufgeführt:
-
Aktualisierung: Amazon EC2 Auto Scaling ersetzt Instances, die vor Skalierung geschützt sind.
-
Ignorieren: Amazon EC2 Auto Scaling ignoriert Instances, die vor einer Skalierung geschützt sind, und ersetzt weiterhin Instances, die nicht geschützt sind.
-
Warten Sie: Amazon EC2 Auto Scaling wartet eine Stunde, bis Sie den Scale-In-Schutz entfernen. Andernfalls schlägt die Instance-Aktualisierung fehl.
Standardwert:
WaitTyp: Zeichenfolge
Required: No
-
SkipMatching-
Gibt an, ob Skip Matching aktiviert ist. Wenn aktiviert (
true), überspringt Auto Scaling das Ersetzen von Instances, die bereits der in Ihrer Stack-Vorlage angegebenen Konfiguration entsprechen. Weitere Informationen finden Sie unter Verwenden einer Instance-Aktualisierung mit Skip-Matching im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.Standardwert:
trueTyp: Boolesch
Required: No
StandbyInstances-
Wählen Sie das Verhalten aus, das Amazon EC2 Auto Scaling verwenden soll, wenn Instances im
Standby-Status gefunden werden. Im Folgenden werden die gültigen Werte aufgeführt:-
Beenden: Amazon EC2 Auto Scaling beendet Instances, die sich in befinden.
Standby -
Ignorieren: Amazon EC2 Auto Scaling ignoriert Instances, die sich im Status befinden,
Standbyund ersetzt weiterhin Instances, die sich im Status befinden.InService -
Warten: Amazon EC2 Auto Scaling wartet eine Stunde, bis Sie die Instances wieder in Betrieb nehmen. Andernfalls schlägt die Instance-Aktualisierung fehl.
Standardwert:
WaitTyp: Zeichenfolge
Required: No
-
AlarmSpecification
Alarms-
Die Namen eines oder mehrerer CloudWatch Alarme, die für die Instanzaktualisierung überwacht werden sollen. Sie können bis zu 10 Alarme angeben.
Typ: Auflistung von Zeichenfolgen
Required: No
Überprüfen Sie die Instanzbereitschaft während einer Instanzaktualisierung
Standardmäßig wird die Instance-Aktualisierung automatisch mit der nächsten Gruppe von Instances fortgesetzt, wenn neu gestartete Instances die für Ihre Auto Scaling Scaling-Gruppe konfigurierten Zustandsprüfungen bestehen. Dazu gehören die Amazon EC2 EC2-Zustandsprüfungen und, falls konfiguriert, die Elastic Load Balancing Balancing-Zustandsprüfungen. Weitere Informationen finden Sie unter Zustandsprüfungen für Instances in einer Auto-Scaling-Gruppe im Benutzerhandbuch für Amazon EC2 Auto Scaling.
Wenn für Ihre Instances Anwendungs-Bootstrapping erforderlich ist, bevor Sie zu wechselnInService, fügen Sie der Auto Scaling autoscaling:EC2_INSTANCE_LAUNCHING Scaling-Gruppe einen Lifecycle-Hook hinzu. Bei der Instance-Aktualisierung wird gewartet, bis der Lifecycle-Hook abgeschlossen ist, bevor mit der nächsten Gruppe von Instances fortgefahren wird. Schließen Sie den Hook ab, indem Sie die CompleteLifecycleAction API aufrufen. Sie können diesen Aufruf von der Instanz selbst aus mithilfe eines Benutzerdatenskripts für eine Startvorlage oder von einem externen Dienst aus tätigen. Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Scaling-Lifecycle-Hooks und Durchführen einer Lebenszyklusaktion in einer Auto Scaling-Gruppe im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
AutoScalingScheduledAction Richtlinie
Verwenden Sie die AutoScalingScheduledAction Richtlinie, um anzugeben MinSizeMaxSize, wie Aktualisierungen für die DesiredCapacity Eigenschaften, und CloudFormation verarbeitet werden, wenn der AWS::AutoScaling::AutoScalingGroup Ressource eine geplante Aktion zugeordnet ist.
Bei geplanten Aktionen können die Gruppengrößeneigenschaften einer Auto Scaling-Gruppe jederzeit geändert werden. Wenn Sie einen Stack mit einer Auto Scaling Scaling-Gruppe und einer geplanten Aktion aktualisieren, werden die Gruppengrößen-Eigenschaftswerte Ihrer Auto Scaling Scaling-Gruppe CloudFormation immer auf die Werte gesetzt, die in der AWS::AutoScaling::AutoScalingGroup Ressource Ihrer Vorlage definiert sind, auch wenn eine geplante Aktion aktiv ist.
Wenn Sie keinen der Eigenschaftswerte für die Gruppengröße ändern CloudFormation möchten, während Sie eine geplante Aktion in Kraft haben, verwenden Sie die AutoScalingScheduledAction Aktualisierungsrichtlinie und stellen Sie auf ein, IgnoreUnmodifiedGroupSizeProperties um true zu CloudFormation verhindern, dass die DesiredCapacity EigenschaftenMinSize, oder geändert werdenMaxSize, es sei denn, Sie haben diese Werte in Ihrer Vorlage geändert.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" :Boolean} }
YAML
UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties:Boolean
Eigenschaften
IgnoreUnmodifiedGroupSizeProperties-
Wenn
true, CloudFormation ignoriert während eines Stack-Updates Unterschiede in den Gruppengrößeneigenschaften zwischen Ihrer aktuellen Auto Scaling Scaling-Gruppe und der Auto Scaling-Gruppe, die in derAWS::AutoScaling::AutoScalingGroupRessource Ihrer Vorlage beschrieben sind. Wenn Sie Größen-Eigenschaftswerte der Gruppe in Ihrer Vorlage ändern, verwendet CloudFormation die geänderten Werte und aktualisiert Ihre Auto-Scaling-Gruppe.Anmerkung
Diese Eigenschaft wird bei einem Stack-Rollback ignoriert.
Standardwert:
falseTyp: Boolesch
Required: No
UseOnlineResharding Richtlinie
Verwenden Sie die UseOnlineResharding Aktualisierungsrichtlinie, um die Shards einer Replikationsgruppe durch Hinzufügen oder Entfernen von Shards zu ändern, anstatt die gesamte AWS::ElastiCache:: ReplicationGroup -Ressource zu ersetzen.
Wenn diese Option auf gesetzt UseOnlineResharding isttrue, können Sie die NodeGroupConfiguration Eigenschaften NumNodeGroups und Eigenschaften der AWS::ElastiCache::ReplicationGroup Ressource aktualisieren. Diese Eigenschaften CloudFormation werden dann ohne Unterbrechung aktualisiert. Wenn diese Option auf false eingestellt oder nicht angegeben UseOnlineResharding ist, führt das Aktualisieren der NodeGroupConfiguration Eigenschaften NumNodeGroups und dazu, dass die gesamte AWS::ElastiCache::ReplicationGroup Ressource CloudFormation ersetzt wird.
Die UseOnlineResharding-Aktualisierungsrichtlinie hat keine Eigenschaften.
Folgende Aspekte sollten Sie beim Festlegen der UseOnlineResharding-Aktualisierungsrichtlinie auf true berücksichtigen:
-
Es wird dringend empfohlen, dass Sie Aktualisierungen an den
NumNodeGroups- undNodeGroupConfiguration-Eigenschaften als die einzigen Aktualisierungen in einem bestimmten Stack-Aktualisierungsvorgang vornehmen.Das Aktualisieren der Konfiguration der Knotengruppe einer Replikationsgruppe ist ein ressourcenintensiver Vorgang. Wenn ein Stack-Update fehlschlägt, werden Änderungen an der Knotengruppenkonfiguration einer Replikationsgruppe CloudFormation nicht rückgängig gemacht. Macht jedoch CloudFormation alle anderen Eigenschaften rückgängig, die im Rahmen des fehlgeschlagenen Aktualisierungsvorgangs geändert wurden.
-
Alle Aktualisierungen der Knotengruppe erfordern die Identifizierung aller Knotengruppen.
Wenn Sie die
NodeGroupConfigurationEigenschaft angeben, müssen Sie auch die Konfiguration NodeGroupId für jede Knotengruppe angeben, damit die Anzahl der Knoten ohne Unterbrechung aktualisiert werden kann. CloudFormationWenn Sie beim Erstellen einer Replikationsgruppe keine ID für jede Knotengruppe angeben, erstellt ElastiCache automatisch eine ID für jede Knotengruppe. Um die Replikationsgruppe ohne Unterbrechung zu aktualisieren, verwenden Sie die ElastiCache Konsole (https://console.aws.amazon.com/elasticache/
) oder DescribeReplicationGroupsrufen Sie die IDs für alle Knotengruppen in der Replikationsgruppe ab. Geben Sie anschließend die ID für jede Knotengruppe in Ihrer Stack-Vorlage an, bevor Sie versuchen, Shards hinzuzufügen oder zu entfernen. Anmerkung
Fügen Sie als bewährte Methode beim Erstellen einer Replikationsgruppe in einer Stack-Vorlage eine ID für jede Knotengruppe ein, die Sie angeben.
Darüber hinaus erfordert das Aktualisieren der Anzahl der Knoten ohne Unterbrechung, dass Sie die Eigenschaften
PrimaryAvailabilityZone,ReplicaAvailabilityZonesundReplicaCountauch für jedeNodeGroupConfigurationgenau angegeben haben. Auch hier können Sie die ElastiCache Konsole (https://console.aws.amazon.com/elasticache/) verwenden oder DescribeReplicationGroupsum die tatsächlichen Werte für jede Knotengruppe abzurufen und sie mit den Werten in Ihrer Stack-Vorlage zu vergleichen. Sie können die Eigenschaftswerte der Knotengruppen als separate Stack-Aktualisierung oder als Teil der gleichen Stack-Aktualisierung aktualisieren, bei der die Anzahl der Knotengruppen geändert wird. Wenn Sie eine
UseOnlineReshardingAktualisierungsrichtlinie verwenden, um die Anzahl der Knotengruppen ohne Unterbrechung zu aktualisieren, werden die Schlüsselräume ElastiCache gleichmäßig auf die angegebene Anzahl von Steckplätzen verteilt. Diese kann später nicht mehr aktualisiert werden. Nachdem die Anzahl der Knotengruppen auf diese Weise aktualisiert wurde, sollten Sie daher den Wert für dieSlots-Eigenschaft jederNodeGroupConfigurationaus der Stack-Vorlage entfernen, da er nicht mehr die tatsächlichen Werte in jeder Knotengruppe widerspiegelt. -
Die tatsächlichen Ergebnisse der Entfernung der Knotengruppe können unterschiedlich sein.
Wenn Sie einen
NumNodeGroupsWert angeben, der unter der aktuellen Anzahl von Knotengruppen liegt, wird CloudFormation angewiesen, so viele Knotengruppen wie nötig ElastiCache zu entfernen, um die angegebene Anzahl von Knoten zu erreichen. ElastiCache Möglicherweise ist es jedoch nicht immer möglich, die gewünschte Anzahl von Knotengruppen zu entfernen. Falls die gewünschte Anzahl von Knotengruppen nicht entfernt werden ElastiCache kann, CloudFormation wird ein Stack-Ereignis generiert, das Sie darauf hinweist. In Fällen, in denen keine Knotengruppen entfernt werden ElastiCache können, schlägt das CloudFormation Ressourcenupdate fehl.
Weitere Informationen zum Ändern von Replikationsgruppen finden Sie ModifyReplicationGroupShardConfigurationin der Amazon ElastiCache API-Referenz.
Syntax
JSON
"UpdatePolicy" : { "UseOnlineResharding" :Boolean}
YAML
UpdatePolicy: UseOnlineResharding:Boolean
EnableVersionUpgrade Richtlinie
Verwenden Sie die Aktualisierungsrichtlinie, um eine OpenSearch Service-Domain auf eine neue Version von OpenSearch oder Elasticsearch zu aktualisieren, anstatt die gesamte AWS::OpenSearchService: :Domain - oder AWS::Elasticsearch: :Domain-Ressource zu ersetzen. EnableVersionUpgrade
Wenn sie auf gesetzt EnableVersionUpgrade isttrue, können Sie die EngineVersion Eigenschaft der AWS::OpenSearchService::Domain Ressource (oder die ElasticsearchVersion Eigenschaft der AWS::Elasticsearch::Domain Legacy-Ressource) aktualisieren. Diese Eigenschaft CloudFormation wird dann ohne Unterbrechung aktualisiert. Wenn der Wert auf false gesetzt oder nicht angegeben EnableVersionUpgrade ist, führt das Aktualisieren der ElasticsearchVersion Eigenschaft EngineVersion oder dazu, dass die gesamte AWS::Elasticsearch::Domain RessourceAWS::OpenSearchService::Domain/ CloudFormation ersetzt wird.
Die EnableVersionUpgrade-Aktualisierungsrichtlinie hat keine Eigenschaften.
Weitere Informationen finden Sie unter Upgrading OpenSearch Service Domains im Amazon OpenSearch Service Developer Guide.
Syntax
JSON
"UpdatePolicy" : { "EnableVersionUpgrade" :Boolean}
YAML
UpdatePolicy: EnableVersionUpgrade:Boolean
CodeDeployLambdaAliasUpdate Richtlinie
Verwenden Sie die CodeDeployLambdaAliasUpdate Aktualisierungsrichtlinie, um eine CodeDeploy Bereitstellung durchzuführen, wenn sich die Version auf einer AWS::Lambda::Alias Ressource ändert.
Syntax
JSON
"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" :String, "ApplicationName" :String, "BeforeAllowTrafficHook" :String, "DeploymentGroupName" :String} }
YAML
UpdatePolicy: CodeDeployLambdaAliasUpdate: AfterAllowTrafficHook:StringApplicationName:StringBeforeAllowTrafficHook:StringDeploymentGroupName:String
Eigenschaften
AfterAllowTrafficHook-
Der Name der Lambda-Funktion, die nach Abschluss des Datenroutings ausgeführt werden soll.
Required: No
Typ: Zeichenfolge
ApplicationName-
Der Name der CodeDeploy Anwendung.
Erforderlich: Ja
Typ: Zeichenfolge
BeforeAllowTrafficHook-
Der Name der Lambda-Funktion, die vor Beginn des Datenroutings ausgeführt werden soll.
Required: No
Typ: Zeichenfolge
DeploymentGroupName-
Der Name der CodeDeploy Bereitstellungsgruppe. Hier wird die Richtlinie der Datenverkehrsverlagerung festgelegt.
Erforderlich: Ja
Typ: Zeichenfolge
Ein Beispiel für die Angabe des Attributs UpdatePolicy für eine AWS::Lambda::Alias-Ressource finden Sie unter Lambda-Alias-Aktualisierungsrichtlinie.
Beispiele
Die folgenden Beispiele zeigen, wie Sie eine Aktualisierungsrichtlinie zu einer Auto Scaling-Gruppe hinzufügen und wie Sie die Verfügbarkeit bei der Aktualisierung von Metadaten aufrechterhalten.
Hinzufügen einer UpdatePolicy zu einer Auto-Scaling-Gruppe
Das folgende Beispiel zeigt, wie Sie eine Aktualisierungsrichtlinie hinzufügen. Während eines Updates aktualisiert die Auto Scaling-Gruppe Instances in Stapeln von zwei und hält mindestens eine Instance in Betrieb. Da das WaitOnResourceSignals-Flag gesetzt ist, wartet die Auto Scaling-Gruppe auf neue Instances, die zur Gruppe hinzugefügt werden. Die neuen Instances müssen der Auto Scaling-Gruppe Signale senden, bevor sie den nächsten Stapel von Instances aktualisiert.
JSON
"ASG" : { "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"4", "MinSize":"1" }, "UpdatePolicy":{ "AutoScalingScheduledAction":{ "IgnoreUnmodifiedGroupSizeProperties":"true" }, "AutoScalingRollingUpdate":{ "MinInstancesInService":"1", "MaxBatchSize":"2", "WaitOnResourceSignals":"true", "PauseTime":"PT10M", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } } }
YAML
ASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' WaitOnResourceSignals: 'true' PauseTime: PT10M SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh
AutoScalingReplacingUpdate Richtlinie
Das folgende Beispiel deklariert eine Richtlinie, die die Ersetzung einer zugeordneten Auto Scaling-Gruppe während einer Aktualisierung erzwingt. Damit die Aktualisierung erfolgreich ist, muss ein Prozentsatz von Instances (angegebenen durch den MinSuccessfulPercentParameter-Parameter) im Timeout-Zeitraum Erfolg signalisieren.
JSON
"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : true } }, "CreationPolicy" : { "ResourceSignal" : { "Count" : { "Ref" : "ResourceSignalsOnCreate"}, "Timeout" : "PT10M" }, "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" } } }
YAML
UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: true CreationPolicy: ResourceSignal: Count: !Ref 'ResourceSignalsOnCreate' Timeout: PT10M AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'
AutoScalingInstanceRefresh Politik
Die folgenden Beispiele zeigen zwei gängige Konfigurationen der AutoScalingInstanceRefresh Richtlinie. Im ersten Beispiel wird Launch-Before-Terminate verwendet, um die Kapazität während der Aktualisierung aufrechtzuerhalten. Im zweiten Beispiel wird ein CloudWatch Alarm verwendet, um den Stack zurückzusetzen, falls die Bereitstellung Probleme verursacht.
Launch-before-terminate aktualisieren
Im folgenden Beispiel wird eine AutoScalingInstanceRefresh Richtlinie deklariert, die launch-before-terminate verwendet. Die Einstellung MinHealthyPercentage auf 100 stellt sicher, dass neue Instances gestartet werden, bevor bestehende beendet werden, und MaxHealthyPercentage von 200 ermöglicht, dass sich die Gruppengröße vorübergehend verdoppelt. Die Richtlinie überspringt auch Instanzen, die bereits der Konfiguration entsprechen.
JSON
"ASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "VPCZoneIdentifier" : [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate" : { "LaunchTemplateId" : { "Ref" : "logicalName" }, "Version" : { "Fn::GetAtt" : [ "logicalName", "LatestVersionNumber" ] } }, "MaxSize" : "4", "MinSize" : "1" }, "UpdatePolicy" : { "AutoScalingInstanceRefresh" : { "Strategy" : "Rolling", "Preferences" : { "MinHealthyPercentage" : 100, "MaxHealthyPercentage" : 200, "SkipMatching" : true } } } }
YAML
ASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingInstanceRefresh: Strategy: Rolling Preferences: MinHealthyPercentage: 100 MaxHealthyPercentage: 200 SkipMatching: true
Aktualisierung mit einem auf Alarmen basierenden Rollback
Im folgenden Beispiel wird eine AutoScalingInstanceRefresh Richtlinie mit Checkpoints, einem auf Alarmen basierenden Rollback und einer Backzeit deklariert. Auto Scaling wird an jedem Checkpoint für 5 Minuten angehalten und wartet nach Abschluss 10 Minuten, bevor es als erfolgreich deklariert wird.
JSON
"ASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "VPCZoneIdentifier" : [ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate" : { "LaunchTemplateId" : { "Ref" : "logicalName" }, "Version" : { "Fn::GetAtt" : [ "logicalName", "LatestVersionNumber" ] } }, "MaxSize" : "4", "MinSize" : "1" }, "UpdatePolicy" : { "AutoScalingInstanceRefresh" : { "Strategy" : "Rolling", "Preferences" : { "CheckpointPercentages" : [ 33, 66, 100 ], "CheckpointDelay" : 300, "BakeTime" : 600, "AlarmSpecification" : { "Alarms" : [ "my-cloud-watch-alarm" ] } } } } }
YAML
ASG: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingInstanceRefresh: Strategy: Rolling Preferences: CheckpointPercentages: - 33 - 66 - 100 CheckpointDelay: 300 BakeTime: 600 AlarmSpecification: Alarms: -my-cloud-watch-alarm
Aufrechterhalten der Verfügbarkeit beim Aktualisieren der Metadaten für das cfn-init-Hilfsskript
Wenn Sie Softwareanwendungen auf Ihren Instances installieren, können Sie den AWS::CloudFormation::Init Metadatenschlüssel und das cfn-init Hilfsskript verwenden, um die Instances in Ihrer Auto Scaling Scaling-Gruppe zu booten. CloudFormation installiert die Pakete, führt die Befehle aus und führt andere Bootstrapping-Aktionen aus, die in den Metadaten beschrieben sind.
Wenn Sie nur die Metadaten aktualisieren (z. B. bei der Aktualisierung eines Pakets auf eine andere Version), können Sie den Hilfsprogramm-Daemon cfn-hup verwenden, um die Aktualisierungen zu erkennen und anzuwenden. Der Daemon cfn-hup wird jedoch unabhängig auf jeder Instance ausgeführt. Wenn der Daemon zufällig gleichzeitig auf allen Instances ausgeführt wird, ist Ihre Anwendung oder Ihr Service möglicherweise während der Aktualisierung nicht verfügbar. Um die Verfügbarkeit zu gewährleisten, können Sie ein fortlaufendes Update erzwingen, sodass Ihre Instanzen stapelweise CloudFormation aktualisiert werden.
Wichtig
Um ein fortlaufendes Update CloudFormation zu erzwingen, müssen Sie eine neue Instanz erstellen und anschließend die alte löschen. Alle auf der alten Instance gespeicherten Informationen gehen verloren.
Um ein fortlaufendes Update zu erzwingen, ändern Sie die logische ID der Startkonfigurationsressource und aktualisieren Sie dann den Stack und alle Verweise, die auf die ursprüngliche Logik-ID verweisen (z. B. die zugehörige Auto Scaling Scaling-Gruppe). CloudFormation löst ein fortlaufendes Update für die Auto Scaling Scaling-Gruppe aus und ersetzt alle Instanzen.
Originalvorlage
"LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }
Aktualisierte logische ID
"LaunchConfigUpdateRubygemsPkg": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }
Lambda-Alias-Aktualisierungsrichtlinie
Das folgende Beispiel gibt das Attribut UpdatePolicy für eine AWS::Lambda::Alias-Ressource an. Alle Einzelheiten der Bereitstellung werden von der Anwendung und der Bereitstellungsgruppe definiert, die an die Richtlinie übergeben werden.
JSON
"Alias": { "Type": "AWS::Lambda::Alias", "Properties": { "FunctionName": { "Ref": "LambdaFunction" }, "FunctionVersion": { "Fn::GetAtt": [ "FunctionVersionTwo", "Version" ] }, "Name": "MyAlias" }, "UpdatePolicy": { "CodeDeployLambdaAliasUpdate": { "ApplicationName": { "Ref": "CodeDeployApplication" }, "DeploymentGroupName": { "Ref": "CodeDeployDeploymentGroup" }, "BeforeAllowTrafficHook": { "Ref": "PreHookLambdaFunction" }, "AfterAllowTrafficHook": { "Ref": "PreHookLambdaFunction" } } } }
YAML
Alias: Type: AWS::Lambda::Alias Properties: FunctionName: !Ref LambdaFunction FunctionVersion: !GetAtt FunctionVersionTwo.Version Name: MyAlias UpdatePolicy: CodeDeployLambdaAliasUpdate: ApplicationName: !Ref CodeDeployApplication DeploymentGroupName: !Ref CodeDeployDeploymentGroup BeforeAllowTrafficHook: !Ref PreHookLambdaFunction AfterAllowTrafficHook: !Ref PreHookLambdaFunction