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.
Themen
Ü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:-
AutoScalingReplacingUpdate
undAutoScalingRollingUpdate
Richtlinien — CloudFormation können entweder die Auto Scaling Scaling-Gruppe und ihre Instances durch eineAutoScalingReplacingUpdate
Richtlinie ersetzen oder nur die Instances durch eineAutoScalingRollingUpdate
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. -
Ä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 RichtlinieAutoScalingRollingUpdate
angegeben wird, erhält durch Festlegen derWillReplace
-Eigenschaft auftrue
AutoScalingReplacingUpdate
den Vorrang. -
-
AutoScalingScheduledAction
Richtlinie — 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::Domain
undAWS::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
AutoScalingReplacingUpdateRichtlinie
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 entsprechendeCreationPolicy
angeben. Wenn die Mindestanzahl von Instances (durch dieMinSuccessfulInstancesPercent
Eigenschaft angegeben) innerhalb des (in derCreationPolicy
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
AutoScalingRollingUpdateRichtlinie
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 WertMaxBatchSize
von 1 auf 10 in derUpdatePolicy
und 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 derUpdatePolicy
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 einemCONTINUE
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 diesenInService
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.
-
Wenn Sie eine
AutoScalingRollingUpdate
Richtlinie verwenden und die Platzierungsgruppeneinstellung entfernen, wird die Platzierungsgruppe aus der Auto Scaling Scaling-Gruppe und der CloudFormation Vorlage entfernt. Außerdem wird dadurch ein fortlaufendes Update ausgelöst, sodass keine neuen Instances in einer Placement-Gruppe 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:
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
InService
Status relativ zur gewünschten Kapazität dieser Gruppe befinden müssen, damit ein Update erfolgreich durchgeführt werden kann. Sie können einen Wert zwischen 0 und 100 angeben. CloudFormation rundet auf das nächste Zehntelprozent. Wenn Sie beispielsweise fünf Instances mit einemInService
Mindestprozentsatz von 50 aktualisieren, müssen sich mindestens drei Instances imInService
Status befinden. Wenn eine Instance nicht innerhalb einer festen Zeit von 1 Stunde in denInService
Status wechselt, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.Die Einstellung
MinActiveInstancesPercent
Ihres wirkt sich auch auf Instances aus, die gestartetUpdatePolicy
werden, wenn dieDesiredCapacity
Eigenschaft derAWS::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 sein als MaxSizeder Auto Scaling Scaling-Gruppe.
Warnung
Wir empfehlen, dass Sie den Wert der
MinInstancesInService
Eigenschaft auf mindestens den Wert setzen MinSizeder Auto Scaling Scaling-Gruppe. Dadurch werden potenzielle Verfügbarkeitsprobleme während eines fortlaufenden Updates vermieden, die darauf zurückzuführen sind, dass 0 Instanzen den Kundendatenverkehr 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 derPauseTime
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 dieMinSuccessfulInstancesPercent
Eigenschaft auf 0 gesetzt ist, wird CloudFormation darauf gewartet, dass sich 0% der Kapazitätsinstanzen in einem bestimmtenInService
Zustand befinden.MinSuccessfulInstancesPercent
kehrt 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:
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 Daueran (im Format PT
, wobei jeweils#
H#
M#
S#
ist die Anzahl der Stunden, Minuten bzw. Sekunden). Die maximalePauseTime
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, die während eines fortlaufenden Updates ersetzt werden, und von neuen Instanzen, die hinzugefügt werden, empfangen wird, indem der DesiredCapacityEigenschaft derAWS::AutoScaling::AutoScalingGroup
Ressource. Wenn der überschrittenPauseTime
wird, bevor die erwarteten Signale CloudFormation empfangen wurden, schlägt die Aktualisierung 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 kurzePauseTime
das Rollback fehlschlagen lassen.Standard:
PT5M
(5 Minuten), wenn dieWaitOnResourceSignals
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.
SignalResource
API 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 demverify_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
MinSuccessfulInstancesPercent
Eigenschaft angeben, muss dieWaitOnResourceSignals
Eigenschaft auf gesetzt werdentrue
.
AutoScalingScheduledActionRichtlinie
Verwenden Sie die AutoScalingScheduledAction
Richtlinie, um anzugeben MinSize
MaxSize
, 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::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
UseOnlineReshardingRichtlinie
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
- 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
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. CloudFormationWenn 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
undReplicaCount
auch für jedeNodeGroupConfiguration
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 dieSlots
-Eigenschaft jederNodeGroupConfiguration
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
EnableVersionUpgradeRichtlinie
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
} }
YAML
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: !ReflogicalName
Version: !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'
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