UpdatePolicy Attribut - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

UpdatePolicy Attribut

Verwenden Sie das UpdatePolicy Attribut, um anzugeben, wie Aktualisierungen bestimmter Ressourcen bei Stack-Aktualisierungsvorgängen AWS CloudFormation behandelt werden.

Übersicht

Mithilfe des UpdatePolicy Attributs 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 die neuesten Änderungen sofort nach einem Stack-Update auf alle Instanzen angewendet.

  • 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. Zu diesen Richtlinien gehören:

    • 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 Austauschvorgänge finden statt, wenn Sie eine oder mehrere der folgenden Änderungen vornehmen:

      • Ändern der AWS::AutoScaling::LaunchConfiguration der Auto Scaling-Gruppe.

      • Ändern der VPCZoneIdentifier-Eigenschaft der Auto-Scaling-Gruppe.

      • Ändern der LaunchTemplate-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.

    • 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 trägt dazu bei, unerwartete Updates 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 ein CodeDeploy Deployment durchführen, wenn sich die Version des Alias ändert.

In den folgenden Abschnitten werden die Syntax und die Eigenschaften für das UpdatePolicy Attribut beschrieben, das von den einzelnen Ressourcentypen unterstützt wird.

AppStream 2.0-Aktualisierungsrichtlinie

Um eine AppStream 2.0-Flotte vor einem Update zu stoppen und nach einem Update neu zu starten, verwenden Sie die AppStream 2.0-Aktualisierungsrichtlinie.

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

Verwenden Sie die AutoScalingReplacingUpdate Richtlinie, um die Auto Scaling Scaling-Gruppe und die darin enthaltenen Instances zu ersetzen.

Bevor Sie versuchen, ein Update durchzuführen, stellen Sie sicher, dass Sie über ausreichend EC2 Amazon-Kapazität für Ihre alten und neuen Auto Scaling Scaling-Gruppen verfügen.

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 während des Austauschs die alte Gruppe bei, bis die Erstellung der neuen 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.

Die neue Gruppe CloudFormation wird zwar erstellt, aber es 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 angeben. Wenn die Mindestanzahl von Instances (durch die MinSuccessfulInstancesPercent Eigenschaft angegeben) innerhalb des (in der CreationPolicy Richtlinie 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

Verwenden Sie die AutoScalingRollingUpdate Richtlinie, um ein fortlaufendes Update der Instances in einer Auto Scaling Scaling-Gruppe durchzuführen, anstatt darauf zu warten, dass Skalierungsaktivitäten ältere Instances schrittweise durch neuere Instances ersetzen. 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.

Dinge, die Sie bei der Verwendung einer AutoScalingRollingUpdate Richtlinie beachten sollten:

  • 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 Änderungen an der UpdatePolicy in einem separaten Update vor allen Aktualisierungen der Auto Scaling Scaling-Gruppe vor, die wahrscheinlich fortlaufende Updates initiieren.

  • CloudFormation empfiehlt, die SuspendProcesses Eigenschaft so anzugeben, dass Amazon EC2 Auto Scaling Scaling-Prozesse vorübergehend ausgesetzt werden, 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?

  • CloudFormation unterstützt die Verwendung von Amazon EC2 Auto Scaling Scaling-Lifecycle-Hooks beim Starten oder Beenden von Instances. Auf diese Weise haben Sie Zeit, benutzerdefinierte Aktionen für eine Instance durchzuführen, bevor sie in den nächsten Status übergeht. Um sicherzustellen, dass neue Instances den InService Status erreichen, schließen Sie den Lifecycle-Hook mit einem CONTINUE Ergebnis ab, wenn die benutzerdefinierte Aktion abgeschlossen ist. Wenn keine Antwort eingeht und der Lifecycle-Hook das Timeout überschreitet, wird der Instance-Start standardmäßig als erfolglos betrachtet und abgebrochen. Wenn keine Instances diesen InService Status erreichen, schlägt das fortlaufende Update irgendwann fehl.

  • Amazon EC2 Auto Scaling Scaling-Funktionen wie Instance-Wartungsrichtlinien, Kündigungsrichtlinien und Scale-In-Schutz sind für die Verwendung mit CloudFormation fortlaufenden Updates nicht verfügbar. Planen Sie Ihre fortlaufenden Updates entsprechend.

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 Instanzen 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 Scaling-Gruppe an, die sich während eines fortlaufenden Updates im Verhältnis zur gewünschten Kapazität dieser Gruppe im InService Status 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 InService Mindestprozentsatz von 50 aktualisieren, müssen sich mindestens drei Instances im InService Status befinden. Wenn eine Instance 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 Ihres wirkt sich auch auf Instances aus, die gestartet UpdatePolicy werden, wenn die DesiredCapacity Eigenschaft der AWS::AutoScaling::AutoScalingGroup Ressource höher als die aktuell gewünschte Kapazität dieser Auto Scaling Scaling-Gruppe festgelegt 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 als der MaxSizeder Auto Scaling Scaling-Gruppe sein.

Warnung

Wir empfehlen, dass Sie den Wert der MinInstancesInService Eigenschaft mindestens auf den Wert MinSizeder AWS::AutoScaling::AutoScalingGroup Ressource setzen. Dadurch werden potenzielle Verfügbarkeitsprobleme während eines fortlaufenden Updates vermieden, die darauf zurückzuführen sind, dass 0 Instanzen 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, dass Sie den Wert der MinSuccessfulInstancesPercent Eigenschaft auf einen Wert größer als 0 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 Instances Zeit haben, Softwareanwendungen zu starten.

Geben Sie PauseTime im Format ISO86 01 Dauer an (im FormatPT#H#M#S, wobei jeweils # ist die Anzahl der Stunden, Minuten bzw. Sekunden). Die maximale PauseTime ist eine Stunde (PT1H).

Warnung

Wenn auf gesetzt WaitOnResourceSignals isttrue, PauseTime dient 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 AWS::AutoScaling::AutoScalingGroup Ressource hinzugefügt werden. Wenn der Wert überschritten PauseTime wird, bevor die erwarteten Signale CloudFormation empfangen werden, schlägt das Update fehl. Um optimale Ergebnisse zu erzielen, geben Sie einen Zeitraum an, der 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 WaitOnResourceSignals Eigenschaft auf gesetzt isttrue. Andernfalls ist 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. Sie können beispielsweise die Alarmierung aussetzen, sodass Amazon EC2 Auto Scaling keine Skalierungsrichtlinien initiiert, die mit einem Alarm verknüpft sind. Gültige Werte finden Sie unter Prozesstypen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

Standard: Nicht angegeben

Typ: Liste von Auto Scaling-Prozessen

Required: No

WaitOnResourceSignals

Gibt an, ob CloudFormation auf Erfolgssignale von neuen Instances gewartet wird, bevor das Update fortgesetzt wird. CloudFormation wartet für die angegebene PauseTime Dauer auf Erfolgssignale.

Um die Auto Scaling Scaling-Gruppe zu signalisieren, verwenden Sie das cfn-signal-Hilfsskript oder. SignalResourceAPI Für Auto Scaling Scaling-Gruppen, die mit Elastic Load Balancing verknüpft sind, sollten Sie erwägen, mithilfe des Hilfsskripts cfn-init eine Integritätsprüfung hinzuzufügen, um sicherzustellen, dass die Instances fehlerfrei sind, bevor ein Erfolg signalisiert wird. 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: true

Typ: Boolesch

Erforderlich: Bedingt. Wenn Sie die MinSuccessfulInstancesPercent Eigenschaft angeben, muss die WaitOnResourceSignals Eigenschaft auf gesetzt werdentrue.

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 einen der Eigenschaftswerte für die Gruppengröße in Ihrer Vorlage ändern, CloudFormation verwendet die geänderten Werte und aktualisiert Ihre Auto Scaling Scaling-Gruppe.

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 AWSElastiCache::: 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, ElastiCache wird automatisch eine ID für jede Knotengruppe generiert. Um die Replikationsgruppe ohne Unterbrechung zu aktualisieren, verwenden Sie die ElastiCache Konsole (https://console.aws.amazon.com/elasticache/) oder rufen DescribeReplicationGroupsSie 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/) oder verwenden, 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 ElastiCache APIAmazon-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 diese Option auf gesetzt EnableVersionUpgrade isttrue, können Sie die EngineVersion Eigenschaft der AWS::OpenSearchService::Domain Ressource (oder die ElasticsearchVersion Eigenschaft der älteren AWS::Elasticsearch::Domain 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 zum Upgrade von OpenSearch Service-Domains finden Sie UpgradeDomainim 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'

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::InitMetadatenschlüssel und das cfn-initHilfsskript 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