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 CloudFormationBenutzerhandbuch.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
UpdatePolicy Attribut
Verwenden Sie das UpdatePolicy Attribut, um anzugeben, wie Aktualisierungen bestimmter Ressourcen bei Stack-Aktualisierungsvorgängen CloudFormation behandelt werden.
Themen
-Übersicht
Mit dem Attribut UpdatePolicy können Sie steuern, wie die folgenden Ressourcen aktualisiert werden, wie hier beschrieben:
-
AWS::AppStream::Fleet— CloudFormation kann eine Flotte stoppen und starten, wodurch die Instanzen der Flotte ersetzt werden. Auf diese Weise werden alle Instances sofort nach einer Stack-Aktualisierung mit den neuesten Änderungen versorgt.
-
AWS::AutoScaling::AutoScalingGroup— Mit Auto Scaling Scaling-Gruppen können Sie eine oder mehrere Aktualisierungsrichtlinien verwenden, um zu steuern, wie CloudFormation mit bestimmten Updates umgegangen wird. Diese Richtlinien umfassen:
-
AutoScalingReplacingUpdateundAutoScalingRollingUpdateRichtlinien — CloudFormation können entweder die Auto Scaling Scaling-Gruppe und ihre Instances durch eineAutoScalingReplacingUpdateRichtlinie ersetzen oder nur die Instances durch eineAutoScalingRollingUpdateRichtlinie ersetzen. Diese Ersetzungsvorgänge finden statt, wenn Sie eine oder mehrere der folgenden Änderungen vornehmen:-
Ändern Sie die AWS::AutoScaling::LaunchConfiguration der Auto-Scaling-Gruppe.
-
Ändern der
VPCZoneIdentifier-Eigenschaft der Auto-Scaling-Gruppe. -
Ändern der
LaunchTemplate-Eigenschaft der Auto-Scaling-Gruppe. -
Ändern der
PlacementGroup-Eigenschaft der Auto-Scaling-Gruppe. -
Aktualisieren einer Auto Scaling-Gruppe mit Instances, die nicht der aktuellen
LaunchConfigurationentsprechen.
Wenn sowohl die Richtlinie
AutoScalingReplacingUpdateals auch die RichtlinieAutoScalingRollingUpdateangegeben wird, erhält durch Festlegen derWillReplace-Eigenschaft auftrueAutoScalingReplacingUpdateden Vorrang. -
-
AutoScalingScheduledActionRichtlinie — Diese Richtlinie gilt, wenn Sie einen Stack aktualisieren, der eine Auto Scaling Scaling-Gruppe mit geplanten Aktionen enthält, die die Gruppe zu bestimmten Zeiten skalieren. CloudFormation kann die Mindestgröße, Maximalgröße oder gewünschte Kapazität der Gruppe nur ändern, wenn sie in der Stack-Vorlage ausdrücklich geändert wurden. Diese Richtlinie hilft, unerwartete Aktualisierungen zu verhindern, die die geplanten Skalierungsaktivitäten beeinträchtigen könnten.
-
-
AWS::ElastiCache::ReplicationGroup— CloudFormation kann die Shards einer Replikationsgruppe ändern, indem Shards hinzugefügt oder entfernt werden, anstatt die gesamte Ressource zu ersetzen.
-
AWS::OpenSearchService::Domainund AWS::Elasticsearch::Domain(Legacy) — CloudFormation kann eine OpenSearch Service-Domain auf eine neue Version von OpenSearch oder Elasticsearch aktualisieren, ohne die gesamte Ressource zu ersetzen.
-
AWS::Lambda::Alias— CloudFormation kann eine CodeDeploy Bereitstellung durchführen, wenn sich die Version des Alias ändert.
In den folgenden Abschnitten werden die Syntax und die Eigenschaften für das Attribut UpdatePolicy beschrieben, das von jedem Ressourcentyp unterstützt wird.
WorkSpaces Richtlinie zur Aktualisierung von Anwendungen
Um eine WorkSpaces Anwendungsflotte vor einem Update zu beenden und sie nach einem Update neu zu starten, verwenden Sie die Richtlinie für WorkSpaces Anwendungsupdates.
Syntax
JSON
{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }
YAML
UpdatePolicy: StopBeforeUpdate: Type:BooleanStartAfterUpdate: Type:Boolean
StopBeforeUpdate-
Stoppt die angegebene Flotte vor der Aktualisierung.
Required: No
StartAfterUpdate-
Startet die angegebene Flotte nach der Aktualisierung.
Required: No
AutoScalingReplacingUpdate-Richtlinie
Um die Auto-Scaling-Gruppe und die darin enthaltenen Instances zu ersetzen, verwenden Sie die Richtlinie AutoScalingReplacingUpdate.
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 Attribut angeben. Wenn die Mindestanzahl von Instances (angegeben durch dieMinSuccessfulInstancesPercentEigenschaft) innerhalb des (imCreationPolicyAttribut angegebenen)TimeoutZeitraums keinen Erfolg signalisiert, CloudFormation schlägt das Ersatz-Update fehl und es wird zur alten Auto Scaling Scaling-Gruppe zurückgesetzt.Typ: Boolesch
Required: No
AutoScalingRollingUpdate-Richtlinie
Wenn Sie ein Rolling Update der Instances in einer Auto-Scaling-Gruppe durchführen möchten, anstatt darauf zu warten, dass die Skalierungsaktivitäten ältere Instances nach und nach durch neuere Instances ersetzen, verwenden Sie die Richtlinie AutoScalingRollingUpdate. Diese Richtlinie bietet Ihnen die Flexibilität, festzulegen, ob Instances, die sich in einer Auto Scaling Scaling-Gruppe befinden, stapelweise oder alle auf einmal CloudFormation ersetzt werden, ohne die gesamte Ressource zu ersetzen.
Was Sie bei der Verwendung einer AutoScalingRollingUpdate-Police beachten sollten:
-
Beim CloudFormation Rollback eines Updates wird die
UpdatePolicyKonfiguration verwendet, die in der Vorlage vor dem aktuellen Stack-Update angegeben wurde. Beispiel: Sie ändern den WertMaxBatchSizevon 1 auf 10 in derUpdatePolicy, führen ein Stack-Update durch, und dieses Update schlägt fehl. CloudFormation verwendet beim Rollback 1 als maximale Batchgröße, nicht 10. Um dieses Szenario zu vermeiden, nehmen Sie die Änderungen anUpdatePolicyin einem separaten Update vor allen Updates der Auto-Scaling-Gruppe vor, die wahrscheinlich Rolling Updates auslösen werden. -
CloudFormation empfiehlt, die
SuspendProcessesEigenschaft 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. So haben Sie Zeit, benutzerdefinierte Aktionen für eine Instance durchzuführen, bevor diese in den nächsten Status übergeht. Um sicherzustellen, dass neue Instances den Zustand
InServiceerreichen, schließen Sie den Lebenszyklus-Hook mit einemCONTINUE-Ergebnis ab, wenn die benutzerdefinierte Aktion beendet ist. Standardmäßig wird der Start der Instance als erfolglos betrachtet und abgebrochen, wenn keine Antwort empfangen wird und der Lebenszyklus-Hook eine Zeitüberschreitung aufweist. Wenn keine Instances den ZustandInServiceerreichen, schlägt das Rolling Update schließlich fehl. -
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 Rolling Updates entsprechend.
-
Wenn Sie eine
AutoScalingRollingUpdateRichtlinie verwenden und die Platzierungsgruppeneinstellung entfernen, wird die Platzierungsgruppe aus der Auto Scaling Scaling-Gruppe und der CloudFormation Vorlage entfernt. Auch dies löst ein Rolling Update aus, sodass neue Instances nicht in eine Platzierungsgruppe gestartet werden.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" :Integer, "MinActiveInstancesPercent" :Integer, "MinInstancesInService" :Integer, "MinSuccessfulInstancesPercent" :Integer, "PauseTime" :String, "SuspendProcesses" : [List of processes], "WaitOnResourceSignals" :Boolean} }
YAML
UpdatePolicy: AutoScalingRollingUpdate: MaxBatchSize:IntegerMinActiveInstancesPercent:IntegerMinInstancesInService:IntegerMinSuccessfulInstancesPercent:IntegerPauseTime:StringSuspendProcesses: -List of processesWaitOnResourceSignals:Boolean
Eigenschaften
MaxBatchSize-
Gibt die maximale Anzahl von Instances an, die gleichzeitig ersetzt werden können.
Standardwert:
1Maximum:
100Typ: Ganzzahl
Required: No
MinActiveInstancesPercent-
Gibt den Prozentsatz der Instances in einer Auto-Scaling-Gruppe an, die sich während eines Rolling Updates im Verhältnis zur gewünschten Kapazität der Gruppe im Zustand
InServicebefinden müssen, damit ein Update erfolgreich ist. Sie können einen Wert zwischen 0 und 100 angeben. CloudFormation rundet auf das nächste Zehntelprozent. Wenn Sie beispielsweise fünf Instances mit einem Mindestprozentsatz vonInServicevon 50 aktualisieren, müssen sich mindestens drei Instances im ZustandInServicebefinden. Wenn eine Instanz nicht innerhalb einer festen Zeit von 1 Stunde in denInServiceStatus wechselt, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.Die Einstellung
MinActiveInstancesPercentinUpdatePolicywirkt sich auch auf Instances aus, die gestartet werden, wenn die EigenschaftDesiredCapacityder RessourceAWS::AutoScaling::AutoScalingGrouphöher als die aktuell gewünschte Kapazität dieser Auto-Scaling-Gruppe eingestellt ist.Standardwert:
100Typ: Ganzzahl
Required: No
MinInstancesInService-
Gibt die Mindestanzahl von Instances an, die innerhalb der Auto Scaling Scaling-Gruppe in Betrieb sein müssen, während alte Instances CloudFormation aktualisiert werden. Dieser Wert muss kleiner sein als der Wert MaxSize der Auto-Scaling-Gruppe.
Warnung
Wir empfehlen Ihnen, den Wert der Eigenschaft
MinInstancesInServicemindestens auf den Wert MinSize der Auto-Scaling-Gruppe zu setzen. Dadurch werden potenzielle Verfügbarkeitsprobleme während eines Rolling Updates vermieden, da 0 Instances den Kundenverkehr bedienen.Standardwert:
0Typ: Ganzzahl
Required: No
MinSuccessfulInstancesPercent-
Gibt den Prozentsatz der Instances in einem fortlaufenden Auto Scaling-Update an, die Erfolg signalisieren müssen, damit ein Update erfolgreich ist. Sie können einen Wert zwischen 0 und 100 angeben. CloudFormationrundet auf das nächste Zehntelprozent. Wenn Sie beispielsweise fünf Instances mit einem minimalen erfolgreichen Prozentsatz von
50aktualisieren, müssen drei Instances Erfolg signalisieren. Wenn eine Instanz innerhalb der in derPauseTimeEigenschaft angegebenen Zeit kein Signal sendet, CloudFormation wird davon ausgegangen, dass die Instanz nicht aktualisiert wurde.Wir empfehlen Ihnen, den Wert der Eigenschaft
MinSuccessfulInstancesPercentauf einen Wert größer als 0 zu setzen. Wenn dieMinSuccessfulInstancesPercentEigenschaft auf 0 gesetzt ist, wird CloudFormation darauf gewartet, dass sich 0% der Kapazitätsinstanzen in einem bestimmtenInServiceZustand befinden.MinSuccessfulInstancesPercentkehrt sofort zurück und bevor der Status der Auto Scaling Scaling-Gruppe berücksichtigt wirdUPDATE_COMPLETE, um zu den nachfolgenden Ressourcen überzugehen, die in der Stack-Vorlage definiert sind. Wenn in Ihrer CloudFormation Vorlage andere Auto Scaling Scaling-Gruppen definiert sind, werden sie gleichzeitig aktualisiert. Wenn alle Auto-Scaling-Gruppen gleichzeitig mit 0 % der Kapazitäts-Instances in einemInService-Zustand bereitgestellt werden, kommt es zu Verfügbarkeitsproblemen, da 0 Instances den Kunden-Datenverkehr bedienen.Standardwert:
100Typ: Ganzzahl
Required: No
PauseTime-
Die Zeitspanne, die nach einer Änderung an einem Batch von Instances CloudFormation angehalten wird, um diesen Instanzen Zeit zu geben, Softwareanwendungen zu starten.
Geben Sie die Dauer
PauseTimeim Format ISO86 01an (in dem Format PT, in dem jede für die Anzahl von Stunden, Minuten und Sekunden#H#M#S#steht). Die maximalePauseTimeist eine Stunde (PT1H).Warnung
Wenn
WaitOnResourceSignalsauftrueeingestellt ist, fungiertPauseTimeals Timeout-Wert. Es bestimmt die maximale CloudFormation Wartezeit, bis die erforderliche Anzahl gültiger Signale von den Instanzen empfangen wird, die während eines fortlaufenden Updates ersetzt werden, und von neuen Instanzen, die durch Erhöhung der DesiredCapacityEigenschaft derAWS::AutoScaling::AutoScalingGroupRessource hinzugefügt werden. Wenn der Wert überschrittenPauseTimewird, bevor die erwarteten Signale CloudFormation empfangen werden, schlägt das Update fehl. Die besten Ergebnisse erzielen Sie, wenn Sie eine Zeitspanne angeben, die ausreichend Zeit für den Start Ihrer Anwendungen bietet. Wenn die Aktualisierung rückgängig gemacht werden muss, kann eine kurzePauseTimedas Rollback fehlschlagen lassen.Standard:
PT5M(5 Minuten), wenn die EigenschaftWaitOnResourceSignalsauftrueeingestellt ist. Andernfalls wird kein Standardwert festgelegt.Typ: Zeichenfolge
Required: No
SuspendProcesses-
Gibt die Auto Scaling-Prozesse an, die während der Stack-Aktualisierung auszusetzen sind. Das Aussetzen von Prozessen verhindert, dass ein Stack-Update durch Auto Scaling gestört wird. 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
PauseTimeDauer auf Erfolgssignale.Um die Auto-Scaling-Gruppe zu signalisieren, verwenden Sie das Hilfsskript cfn-signal. Für Auto Scaling Scaling-Gruppen, die mit ELB verknüpft sind, sollten Sie erwägen, mithilfe des cfn-init Hilfsskripts 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_healthBefehl in den Beispielvorlagen für fortlaufende Amazon EC2 Auto Scaling Scaling-Updates in unserem GitHub Repository. Standardwert:
falseTyp: Boolesch
Erforderlich: Bedingt. Wenn Sie die Eigenschaft
MinSuccessfulInstancesPercentangeben, muss die EigenschaftWaitOnResourceSignalsauftruegesetzt werden.
AutoScalingScheduledAction-Richtlinie
Verwenden Sie die AutoScalingScheduledAction Richtlinie, um festzulegen MinSizeMaxSize, wie Aktualisierungen für die DesiredCapacity Eigenschaften, und CloudFormation verarbeitet werden, wenn der AWS::AutoScaling::AutoScalingGroup Ressource eine geplante Aktion zugeordnet ist.
Bei geplanten Aktionen können die Gruppengrößeneigenschaften einer Auto Scaling-Gruppe jederzeit geändert werden. Wenn Sie einen Stack mit einer Auto Scaling Scaling-Gruppe und einer geplanten Aktion aktualisieren, werden die Gruppengrößen-Eigenschaftswerte Ihrer Auto Scaling Scaling-Gruppe CloudFormation immer auf die Werte gesetzt, die in der AWS::AutoScaling::AutoScalingGroup Ressource Ihrer Vorlage definiert sind, auch wenn eine geplante Aktion aktiv ist.
Wenn Sie keinen der Eigenschaftswerte für die Gruppengröße ändern CloudFormation möchten, während Sie eine geplante Aktion in Kraft haben, verwenden Sie die AutoScalingScheduledAction Aktualisierungsrichtlinie und stellen Sie auf ein, IgnoreUnmodifiedGroupSizeProperties um true zu CloudFormation verhindern, dass die DesiredCapacity EigenschaftenMinSize, oder geändert werdenMaxSize, es sei denn, Sie haben diese Werte in Ihrer Vorlage geändert.
Syntax
JSON
"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" :Boolean} }
YAML
UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties:Boolean
Eigenschaften
IgnoreUnmodifiedGroupSizeProperties-
Wenn
true, CloudFormation ignoriert während eines Stack-Updates Unterschiede in den Gruppengrößeneigenschaften zwischen Ihrer aktuellen Auto Scaling Scaling-Gruppe und der Auto Scaling-Gruppe, die in derAWS::AutoScaling::AutoScalingGroupRessource Ihrer Vorlage beschrieben sind. Wenn Sie Größen-Eigenschaftswerte der Gruppe in Ihrer Vorlage ändern, verwendet CloudFormation die geänderten Werte und aktualisiert Ihre Auto-Scaling-Gruppe.Anmerkung
Diese Eigenschaft wird bei einem Stack-Rollback ignoriert.
Standardwert:
falseTyp: Boolesch
Required: No
UseOnlineResharding-Richtlinie
Verwenden Sie die Aktualisierungsrichtlinie UseOnlineResharding, um Shards einer Replikationsgruppe zu ändern, indem Shards hinzugefügt oder entfernt werden, anstatt die gesamte AWS::ElastiCache::ReplicationGroup-Ressource zu ersetzen.
Wenn auf gesetzt UseOnlineResharding isttrue, können Sie die NodeGroupConfiguration Eigenschaften NumNodeGroups und die Eigenschaften der AWS::ElastiCache::ReplicationGroup Ressource aktualisieren und diese Eigenschaften CloudFormation werden ohne Unterbrechung aktualisiert. Wenn diese Option auf false eingestellt oder nicht angegeben UseOnlineResharding ist, führt das Aktualisieren der NodeGroupConfiguration Eigenschaften NumNodeGroups und dazu, dass die gesamte AWS::ElastiCache::ReplicationGroup Ressource CloudFormation ersetzt wird.
Die UseOnlineResharding-Aktualisierungsrichtlinie hat keine Eigenschaften.
Folgende Aspekte sollten Sie beim Festlegen der UseOnlineResharding-Aktualisierungsrichtlinie auf true berücksichtigen:
-
Es wird dringend empfohlen, dass Sie Aktualisierungen an den
NumNodeGroups- undNodeGroupConfiguration-Eigenschaften als die einzigen Aktualisierungen in einem bestimmten Stack-Aktualisierungsvorgang vornehmen.Das Aktualisieren der Konfiguration der Knotengruppe einer Replikationsgruppe ist ein ressourcenintensiver Vorgang. Wenn ein Stack-Update fehlschlägt, werden Änderungen an der Knotengruppenkonfiguration einer Replikationsgruppe CloudFormation nicht rückgängig gemacht. Macht jedoch CloudFormation alle anderen Eigenschaften rückgängig, die im Rahmen des fehlgeschlagenen Aktualisierungsvorgangs geändert wurden.
-
Alle Aktualisierungen der Knotengruppe erfordern die Identifizierung aller Knotengruppen.
Wenn Sie die
NodeGroupConfigurationEigenschaft angeben, müssen Sie auch die Konfiguration NodeGroupId für jede Knotengruppe angeben, damit die Anzahl der Knoten ohne Unterbrechung aktualisiert werden kann. CloudFormationWenn Sie beim Erstellen einer Replikationsgruppe keine ID für jede Knotengruppe angeben, erstellt ElastiCache automatisch eine ID für jede Knotengruppe. Um die Replikationsgruppe ohne Unterbrechung zu aktualisieren, verwenden Sie die ElastiCache Konsole (https://console.aws.amazon.com/elasticache/
) oder 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,ReplicaAvailabilityZonesundReplicaCountauch für jedeNodeGroupConfigurationgenau 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
UseOnlineReshardingAktualisierungsrichtlinie verwenden, um die Anzahl der Knotengruppen ohne Unterbrechung zu aktualisieren, werden die Schlüsselräume ElastiCache gleichmäßig auf die angegebene Anzahl von Steckplätzen verteilt. Diese kann später nicht mehr aktualisiert werden. Nachdem die Anzahl der Knotengruppen auf diese Weise aktualisiert wurde, sollten Sie daher den Wert für dieSlots-Eigenschaft jederNodeGroupConfigurationaus der Stack-Vorlage entfernen, da er nicht mehr die tatsächlichen Werte in jeder Knotengruppe widerspiegelt. -
Die tatsächlichen Ergebnisse der Entfernung der Knotengruppe können unterschiedlich sein.
Wenn Sie einen
NumNodeGroupsWert angeben, der unter der aktuellen Anzahl von Knotengruppen liegt, wird CloudFormation angewiesen, so viele Knotengruppen wie nötig ElastiCache zu entfernen, um die angegebene Anzahl von Knoten zu erreichen. ElastiCache Möglicherweise ist es jedoch nicht immer möglich, die gewünschte Anzahl von Knotengruppen zu entfernen. Falls die gewünschte Anzahl von Knotengruppen nicht entfernt werden ElastiCache kann, CloudFormation wird ein Stack-Ereignis generiert, das Sie darauf hinweist. In Fällen, in denen keine Knotengruppen entfernt werden ElastiCache können, schlägt das CloudFormation Ressourcenupdate fehl.
Weitere Informationen zum Ändern von Replikationsgruppen finden Sie ModifyReplicationGroupShardConfigurationin der Amazon ElastiCache API-Referenz.
Syntax
JSON
"UpdatePolicy" : { "UseOnlineResharding" :Boolean}
YAML
UpdatePolicy: UseOnlineResharding:Boolean
EnableVersionUpgrade-Richtlinie
Verwenden Sie die Aktualisierungsrichtlinie, um eine OpenSearch Service-Domain auf eine neue Version von OpenSearch oder Elasticsearch zu EnableVersionUpgrade aktualisieren, anstatt die gesamte AWS::OpenSearchService::DomainAWS::Elasticsearch::DomainRessource zu ersetzen.
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 finden Sie unter Upgrading OpenSearch Service Domains im Amazon OpenSearch Service Developer Guide.
Syntax
JSON
"UpdatePolicy" : { "EnableVersionUpgrade" :Boolean}
YAML
UpdatePolicy: EnableVersionUpgrade:Boolean
CodeDeployLambdaAliasUpdate Richtlinie
Verwenden Sie die CodeDeployLambdaAliasUpdate Aktualisierungsrichtlinie, um eine CodeDeploy Bereitstellung durchzuführen, wenn sich die Version auf einer AWS::Lambda::Alias Ressource ändert.
Syntax
JSON
"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" :String, "ApplicationName" :String, "BeforeAllowTrafficHook" :String, "DeploymentGroupName" :String} }
YAML
UpdatePolicy: CodeDeployLambdaAliasUpdate: AfterAllowTrafficHook:StringApplicationName:StringBeforeAllowTrafficHook:StringDeploymentGroupName:String
Eigenschaften
AfterAllowTrafficHook-
Der Name der Lambda-Funktion, die nach Abschluss des Datenroutings ausgeführt werden soll.
Required: No
Typ: Zeichenfolge
ApplicationName-
Der Name der CodeDeploy Anwendung.
Erforderlich: Ja
Typ: Zeichenfolge
BeforeAllowTrafficHook-
Der Name der Lambda-Funktion, die vor Beginn des Datenroutings ausgeführt werden soll.
Required: No
Typ: Zeichenfolge
DeploymentGroupName-
Der Name der CodeDeploy Bereitstellungsgruppe. Hier wird die Richtlinie der Datenverkehrsverlagerung festgelegt.
Erforderlich: Ja
Typ: Zeichenfolge
Ein Beispiel für die Angabe des Attributs UpdatePolicy für eine AWS::Lambda::Alias-Ressource finden Sie unter Lambda-Alias-Aktualisierungsrichtlinie.
Beispiele
Die folgenden Beispiele zeigen, wie Sie eine Aktualisierungsrichtlinie zu einer Auto Scaling-Gruppe hinzufügen und wie Sie die Verfügbarkeit bei der Aktualisierung von Metadaten aufrechterhalten.
Hinzufügen einer UpdatePolicy zu einer Auto-Scaling-Gruppe
Das folgende Beispiel zeigt, wie Sie eine Aktualisierungsrichtlinie hinzufügen. Während eines Updates aktualisiert die Auto Scaling-Gruppe Instances in Stapeln von zwei und hält mindestens eine Instance in Betrieb. Da das WaitOnResourceSignals-Flag gesetzt ist, wartet die Auto Scaling-Gruppe auf neue Instances, die zur Gruppe hinzugefügt werden. Die neuen Instances müssen der Auto Scaling-Gruppe Signale senden, bevor sie den nächsten Stapel von Instances aktualisiert.
JSON
"ASG" : { "Type":"AWS::AutoScaling::AutoScalingGroup", "Properties":{ "VPCZoneIdentifier":[ "subnetIdAz1", "subnetIdAz2", "subnetIdAz3" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName" }, "Version":{ "Fn::GetAtt":[ "logicalName", "LatestVersionNumber" ] } }, "MaxSize":"4", "MinSize":"1" }, "UpdatePolicy":{ "AutoScalingScheduledAction":{ "IgnoreUnmodifiedGroupSizeProperties":"true" }, "AutoScalingRollingUpdate":{ "MinInstancesInService":"1", "MaxBatchSize":"2", "WaitOnResourceSignals":"true", "PauseTime":"PT10M", "SuspendProcesses":[ "HealthCheck", "ReplaceUnhealthy", "AZRebalance", "AlarmNotification", "ScheduledActions", "InstanceRefresh" ] } } }
YAML
ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: VPCZoneIdentifier: -subnetIdAz1-subnetIdAz2-subnetIdAz3LaunchTemplate: LaunchTemplateId: !ReflogicalNameVersion: !GetAttlogicalName.LatestVersionNumber MaxSize: '4' MinSize: '1' UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' WaitOnResourceSignals: 'true' PauseTime: PT10M SuspendProcesses: - HealthCheck - ReplaceUnhealthy - AZRebalance - AlarmNotification - ScheduledActions - InstanceRefresh
AutoScalingReplacingUpdate Richtlinie
Das folgende Beispiel deklariert eine Richtlinie, die die Ersetzung einer zugeordneten Auto Scaling-Gruppe während einer Aktualisierung erzwingt. Damit die Aktualisierung erfolgreich ist, muss ein Prozentsatz von Instances (angegebenen durch den MinSuccessfulPercentParameter-Parameter) im Timeout-Zeitraum Erfolg signalisieren.
JSON
"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : true } }, "CreationPolicy" : { "ResourceSignal" : { "Count" : { "Ref" : "ResourceSignalsOnCreate"}, "Timeout" : "PT10M" }, "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" } } }
YAML
UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: true CreationPolicy: ResourceSignal: Count: !Ref 'ResourceSignalsOnCreate' Timeout: PT10M AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'
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