View a markdown version of this page

UpdatePolicy Attribut - AWS CloudFormation

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.

-Ü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:

    • AutoScalingReplacingUpdateund AutoScalingRollingUpdate Richtlinien — CloudFormation können entweder die Auto Scaling Scaling-Gruppe und ihre Instances durch eine AutoScalingReplacingUpdate Richtlinie ersetzen oder nur die Instances durch eine AutoScalingRollingUpdate Richtlinie 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 LaunchConfiguration entsprechen.

      Wenn sowohl die Richtlinie AutoScalingReplacingUpdate als auch die Richtlinie AutoScalingRollingUpdate angegeben wird, erhält durch Festlegen der WillReplace-Eigenschaft auf true AutoScalingReplacingUpdate den Vorrang.

    • AutoScalingInstanceRefreshpolicy — CloudFormation führt eine Auto Scaling Scaling-Instanzaktualisierung durch, wenn Sie bestimmte Eigenschaften der Auto Scaling Scaling-Gruppe ändern. Im Vergleich zu AutoScalingRollingUpdate unterstü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 beide AutoScalingInstanceRefresh und AutoScalingRollingUpdate fü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: Boolean StartAfterUpdate: 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 die MinSuccessfulInstancesPercent Eigenschaft) innerhalb des (im CreationPolicy Attribut angegebenen) Timeout Zeitraums 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 UpdatePolicy Konfiguration verwendet, die in der Vorlage vor dem aktuellen Stack-Update angegeben wurde. Beispiel: Sie ändern den Wert MaxBatchSize von 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 an UpdatePolicy in einem separaten Update vor allen Updates der Auto-Scaling-Gruppe vor, die wahrscheinlich Rolling Updates auslösen werden.

  • CloudFormation empfiehlt, die SuspendProcesses Eigenschaft 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 AutoScalingInstanceRefresh Richtlinie 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 Sie AutoScalingInstanceRefresh stattdessen. 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 InService erreichen, schließen Sie den Lebenszyklus-Hook mit einem CONTINUE-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 Zustand InService erreichen, 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. AutoScalingInstanceRefresh Weitere Informationen finden Sie unter AutoScalingInstanceRefresh Richtlinie.

  • Wenn Sie eine AutoScalingRollingUpdate Richtlinie 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 } }

Eigenschaften

MaxBatchSize

Gibt die maximale Anzahl von Instances an, die gleichzeitig ersetzt werden können.

Standardwert: 1

Maximum: 100

Typ: 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 InService befinden 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 von InService von 50 aktualisieren, müssen sich mindestens drei Instances im Zustand InService befinden. Wenn eine Instanz nicht innerhalb einer festen Zeit von 1 Stunde in den InService Status wechselt, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.

Die Einstellung MinActiveInstancesPercent in UpdatePolicy wirkt sich auch auf Instances aus, die gestartet werden, wenn die Eigenschaft DesiredCapacity der Ressource AWS::AutoScaling::AutoScalingGroup höher als die aktuell gewünschte Kapazität dieser Auto-Scaling-Gruppe eingestellt ist.

Standardwert: 100

Typ: 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 MinInstancesInService mindestens 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: 0

Typ: 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 50 aktualisieren, müssen drei Instances Erfolg signalisieren. Wenn eine Instanz innerhalb der in der PauseTime Eigenschaft angegebenen Zeit kein Signal sendet, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.

Wir empfehlen Ihnen, den Wert der Eigenschaft MinSuccessfulInstancesPercent auf einen Wert größer als 0 zu setzen. Wenn die MinSuccessfulInstancesPercent Eigenschaft auf 0 gesetzt ist, wird CloudFormation darauf gewartet, dass sich 0% der Kapazitätsinstanzen in einem bestimmten InService Zustand 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 einem InService-Zustand bereitgestellt werden, kommt es zu Verfügbarkeitsproblemen, da 0 Instances den Kunden-Datenverkehr bedienen.

Standardwert: 100

Typ: 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 PauseTime im ISO8601-Format an (in dem FormatPT#H#M#S, in dem jede für die Anzahl von Stunden, Minuten und Sekunden # steht). Die maximale PauseTime ist eine Stunde (PT1H).

Warnung

Wenn WaitOnResourceSignals auf true eingestellt ist, fungiert PauseTime als 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::AutoScalingGroup Wenn der Wert überschritten PauseTime wird, 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 kurze PauseTime das Rollback fehlschlagen lassen.

Standard: PT5M (5 Minuten), wenn die Eigenschaft WaitOnResourceSignals auf trueeingestellt 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 PauseTime Dauer 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_health Befehl in den Beispielvorlagen für fortlaufende Amazon EC2 Auto Scaling Scaling-Updates in unserem GitHub Repository.

Standardwert: false

Typ: Boolesch

Erforderlich: Bedingt. Wenn Sie die Eigenschaft MinSuccessfulInstancesPercent angeben, muss die Eigenschaft WaitOnResourceSignals auf true gesetzt 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:

  • LaunchTemplate

  • MixedInstancesPolicy

  • VPCZoneIdentifier

  • AvailabilityZones

  • AvailabilityZoneIds

  • PlacementGroup

Beachten Sie bei der Verwendung der AutoScalingInstanceRefresh Richtlinie Folgendes:

  • Sie können nicht beide AutoScalingInstanceRefresh AutoScalingRollingUpdate Richtlinien 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. AutoScalingInstanceRefresh Wenn 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 Scaling RollbackInstanceRefresh Scaling-API-Vorgang nicht für eine Instanzaktualisierung verwenden, die CloudFormation bereits gestartet wurde. Um eine Aktualisierung rückgängig zu machen, verwenden Sie die CancelInstanceRefresh API 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 AutoScalingInstanceRefresh Richtlinie starten, schlägt das Stack-Update möglicherweise fehl.

  • Wenn Sie die Instanzaktualisierung Strategy auf einstellenReplaceRootVolume, sind nur Änderungen ImageId innerhalb 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: 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

Eigenschaften

Strategy

Die Strategie, die für die Instanzaktualisierung verwendet werden soll. Gültige Werte sind Rolling und ReplaceRootVolume. Informationen zur ReplaceRootVolume Strategie 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 Standby Status 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: 0

Minimum: 0

Maximum: 172800

Typ: Ganzzahl

Required: No

CheckpointDelay

Die Zeit in Sekunden, die nach einem Checkpoint gewartet werden muss, bevor fortgefahren wird. Wenn Sie einen Wert für, CheckpointPercentages aber nicht für angebenCheckpointDelay, ist der CheckpointDelay Standardwert 3600 (1 Stunde).

Minimum: 0

Maximum: 172800

Typ: 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 sein100. 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 angebenInstanceWarmup, verwendet Auto Scaling stattdessen den Wert für die DefaultInstanceWarmup Eigenschaft. Wir empfehlen, DefaultInstanceWarmup in allen Anwendungsfällen einen Wert für festzulegen.

Wenn Sie für keine der Eigenschaften einen Wert angeben, verwendet Auto Scaling den Wert der HealthCheckGracePeriod Eigenschaft.

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 angebenMaxHealthyPercentage, 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, 110 wann Strategy ist Rolling oder 100 wann Strategy istReplaceRootVolume.

Minimum: 100

Maximum: 200

Typ: 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, 100 wann Strategy ist Rolling oder 90 wann Strategy istReplaceRootVolume.

Minimum: 0

Maximum: 100

Typ: 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: Wait

Typ: 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: true

Typ: 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, Standby und 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: Wait

Typ: 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 } }

Eigenschaften

IgnoreUnmodifiedGroupSizeProperties

Wenntrue, 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 der AWS::AutoScaling::AutoScalingGroup Ressource 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: false

Typ: 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- und NodeGroupConfiguration-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 NodeGroupConfiguration Eigenschaft angeben, müssen Sie auch die Konfiguration NodeGroupId für jede Knotengruppe angeben, damit die Anzahl der Knoten ohne Unterbrechung aktualisiert werden kann. CloudFormation

    Wenn 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, ReplicaAvailabilityZones und ReplicaCount auch für jede NodeGroupConfiguration genau 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 UseOnlineResharding Aktualisierungsrichtlinie 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 die Slots-Eigenschaft jeder NodeGroupConfiguration aus 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 NumNodeGroups Wert 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 } }

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 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !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

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 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !GetAtt logicalName.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 - subnetIdAz3 LaunchTemplate: LaunchTemplateId: !Ref logicalName Version: !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

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