View a markdown version of this page

Attributo UpdatePolicy - AWS CloudFormation

Questa è la nuova Guida di riferimento ai modelli CloudFormation . Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida AWS CloudFormation per l'utente.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Attributo UpdatePolicy

Utilizzate l'UpdatePolicyattributo per specificare come CloudFormation gestisce gli aggiornamenti di determinate risorse durante le operazioni di aggiornamento dello stack.

Panoramica di

Utilizzando l’attributo UpdatePolicy, puoi controllare il modo in cui vengono aggiornate le seguenti risorse, come descritto di seguito:

  • AWS::AppStream: :Fleet: CloudFormation può arrestare e avviare un parco istanze, il che comporta la sostituzione delle istanze del parco istanze del parco macchine. In questo modo, a tutte le istanze verranno applicate le modifiche più recenti immediatamente dopo un aggiornamento dello stack.

  • AWS::AutoScaling::AutoScalingGroup— Con i gruppi Auto Scaling, è possibile utilizzare uno o più criteri di aggiornamento per controllare la modalità di gestione di determinati CloudFormation aggiornamenti. Queste policy includono:

    • AutoScalingReplacingUpdatee AutoScalingRollingUpdate politiche: CloudFormation possono sostituire il gruppo Auto Scaling e le relative istanze con una AutoScalingReplacingUpdate policy oppure sostituire solo le istanze con una policy. AutoScalingRollingUpdate Queste operazioni di sostituzione si verificano quando apporti una o più delle seguenti modifiche:

      • Modifica AWS::AutoScaling::LaunchConfiguration del gruppo Auto Scaling.

      • Modifica la proprietà VPCZoneIdentifier del gruppo con scalabilità automatica.

      • Modifica la proprietà LaunchTemplate del gruppo con scalabilità automatica.

      • Modifica la proprietà PlacementGroup del gruppo con scalabilità automatica.

      • Aggiorna un gruppo Auto Scaling che contiene istanze che non corrispondono all'attuale LaunchConfiguration.

      Se sono specificate entrambe le policy, AutoScalingReplacingUpdate e AutoScalingRollingUpdate, l'impostazione della proprietà WillReplace su true da la precedenza a AutoScalingReplacingUpdate.

    • AutoScalingInstanceRefreshpolicy — CloudFormation esegue un aggiornamento dell'istanza Auto Scaling quando si modificano determinate proprietà del gruppo Auto Scaling. Rispetto aAutoScalingRollingUpdate, questa policy supporta politiche di manutenzione delle istanze (tra cui launch-before-terminate), politiche di terminazione, protezione scalabile, sostituzione del volume root e funzionalità aggiuntive di Amazon EC2 Auto Scaling. Non è possibile specificare entrambi AutoScalingInstanceRefresh e AutoScalingRollingUpdate nello stesso gruppo Auto Scaling. Per ulteriori informazioni, consulta AutoScalingInstanceRefresh politica.

    • AutoScalingScheduledActionpolitica: questa politica si applica quando si aggiorna uno stack che include un gruppo Auto Scaling con azioni pianificate che ridimensionano il gruppo in momenti specifici. CloudFormation non può modificare la dimensione minima, la dimensione massima o la capacità desiderata del gruppo a meno che non siano state modificate esplicitamente nel modello di stack. Questa policy aiuta a prevenire eventuali aggiornamenti imprevisti che potrebbero interferire con le attività di dimensionamento pianificate.

  • AWS::ElastiCache::ReplicationGroup— CloudFormation può modificare gli shard di un gruppo di replica aggiungendo o rimuovendo shard, anziché sostituire l'intera risorsa.

  • AWS::OpenSearchService::Domaine AWS::Elasticsearch::Domain(legacy): CloudFormation può aggiornare un dominio di OpenSearch servizio a una nuova versione di Elasticsearch OpenSearch o Elasticsearch senza sostituire l'intera risorsa.

  • AWS::Lambda::Alias— CloudFormation può eseguire una CodeDeploy distribuzione quando la versione cambia sull'alias.

Le sezioni che seguono descrivono la sintassi e le proprietà dell’attributo UpdatePolicy supportato da ogni tipo di risorsa.

WorkSpaces Politica di aggiornamento delle applicazioni

Per interrompere un parco WorkSpaces applicazioni prima di un aggiornamento e riavviarlo dopo un aggiornamento, utilizza la politica di aggiornamento WorkSpaces delle applicazioni.

Sintassi

JSON

{ "UpdatePolicy": { "StopBeforeUpdate": { "Type": "Boolean" }, "StartAfterUpdate": { "Type": "Boolean" } } }

YAML

UpdatePolicy: StopBeforeUpdate: Type: Boolean StartAfterUpdate: Type: Boolean
StopBeforeUpdate

Arresta il parco istanze specificato prima dell'aggiornamento.

Obbligatorio: no

StartAfterUpdate

Avvia il parco istanze specificato dopo l'aggiornamento.

Obbligatorio: no

AutoScalingReplacingUpdate politica

Per sostituire il gruppo Auto Scaling e le istanze in esso contenute, utilizza la policy AutoScalingReplacingUpdate.

Prima di tentare un aggiornamento, assicurati di disporre di capacità Amazon EC2 sufficiente sia per i vecchi che per i nuovi gruppi Auto Scaling.

Sintassi

JSON

"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" : Boolean } }

YAML

UpdatePolicy: AutoScalingReplacingUpdate: WillReplace: Boolean

Properties

WillReplace

Specifica se un gruppo con dimensionamento automatico e le istanze in esso contenute vengono sostituiti durante un aggiornamento. Durante la sostituzione, CloudFormation mantiene il vecchio gruppo fino al termine della creazione di quello nuovo. Se l'aggiornamento fallisce, CloudFormation puoi tornare al vecchio gruppo Auto Scaling ed eliminare il nuovo gruppo Auto Scaling.

Durante la CloudFormation creazione del nuovo gruppo, non scollega o collega alcuna istanza. Dopo aver creato correttamente il nuovo gruppo Auto Scaling, CloudFormation elimina il vecchio gruppo Auto Scaling durante il processo di pulizia.

Quando si imposta il parametro WillReplace, è necessario specificare un attributo Attributo CreationPolicy corrispondente. Se il numero minimo di istanze (specificato dalla MinSuccessfulInstancesPercent proprietà) non segnala l'esito positivo entro il Timeout periodo specificato nell'CreationPolicyattributo, l'aggiornamento sostitutivo non riesce e CloudFormation torna al vecchio gruppo Auto Scaling.

Tipo: Booleano

Obbligatorio: no

AutoScalingRollingUpdate politica

Per eseguire un aggiornamento in sequenza delle istanze in un gruppo Auto Scaling anziché attendere che le attività di dimensionamento sostituiscano gradualmente le istanze più vecchie con quelle più nuove, utilizza la policy AutoScalingRollingUpdate. Questa politica offre la flessibilità di specificare se CloudFormation sostituire le istanze che si trovano in un gruppo di Auto Scaling in batch o tutte contemporaneamente senza sostituire l'intera risorsa.

Aspetti da considerare quando si utilizza una policy AutoScalingRollingUpdate:

avvertimento

Gli aggiornamenti continui non rispettano la politica di manutenzione delle istanze configurata nel tuo gruppo Auto Scaling. Durante un aggiornamento progressivo, la capacità integra può scendere al di sotto di quella MinHealthyPercentage impostata nel gruppo e CloudFormation non avviare nuove istanze prima di terminare quelle esistenti, a prescindere da ciò. MaxHealthyPercentage Per preservare la politica di manutenzione delle istanze durante gli aggiornamenti dello stack, utilizza invece il. AutoScalingInstanceRefresh politica

  • Quando CloudFormation ripristina un aggiornamento, utilizza la UpdatePolicy configurazione specificata nel modello prima dell'aggiornamento corrente dello stack. Ad esempio, si modifica il valore MaxBatchSize da 1 a 10 inUpdatePolicy, si esegue un aggiornamento dello stack e tale aggiornamento ha esito negativo. CloudFormation utilizzerà 1 come dimensione massima del batch quando esegue il rollback, non 10. Per evitare questo scenario, apporta le modifiche a UpdatePolicy in un aggiornamento separato prima di qualsiasi aggiornamento al gruppo Auto Scaling che può avviare aggiornamenti in sequenza.

  • CloudFormation consiglia di specificare la SuspendProcesses proprietà per sospendere temporaneamente i processi di Amazon EC2 Auto Scaling che potrebbero interferire con l'aggiornamento continuo e causarne il fallimento. Per ulteriori informazioni, vedi Come posso aggiornare il mio gruppo Auto Scaling quando aggiorno il mio CloudFormation stack?

    In alternativa, la AutoScalingInstanceRefresh policy supporta tutti i processi del gruppo Auto Scaling durante gli aggiornamenti dello stack, quindi non è necessario sospenderli. Se hai bisogno che processi come i controlli dello stato e il ribilanciamento AZ rimangano attivi, usali invece. AutoScalingInstanceRefresh Per ulteriori informazioni, consulta AutoScalingInstanceRefresh politica.

  • CloudFormation supporta l'utilizzo degli hook del ciclo di vita di Amazon EC2 Auto Scaling all'avvio o alla chiusura delle istanze. In questo modo puoi eseguire operazioni personalizzate su un’istanza prima che passi allo stato successivo. Per assicurarti che le nuove istanze raggiungano lo stato InService, completa l’hook del ciclo di vita con un risultato CONTINUE al termine dell’operazione personalizzata. Per impostazione predefinita, se non viene ricevuta alcuna risposta e l’hook del ciclo di vita scade, l’avvio dell’istanza viene considerato non eseguito correttamente e abbandonato. Se nessuna istanza raggiunge lo stato InService, l’aggiornamento in sequenza non verrà eseguito correttamente.

  • Altre funzionalità di Amazon EC2 Auto Scaling, come le politiche di terminazione e la protezione scalabile, non sono disponibili per l'uso con gli aggiornamenti continui. CloudFormation Se hai bisogno di una di queste funzionalità, usale al suo posto. AutoScalingInstanceRefresh Per ulteriori informazioni, consulta AutoScalingInstanceRefresh politica.

  • Se utilizzate un AutoScalingRollingUpdate criterio e rimuovete l'impostazione del gruppo di posizionamento, il gruppo di posizionamento verrà rimosso dal gruppo Auto Scaling e dal CloudFormation modello. Inoltre, ciò attiva un aggiornamento in sequenza, in modo che nuove istanze non vengano avviate in un gruppo di posizionamento.

Sintassi

JSON

"UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MaxBatchSize" : Integer, "MinActiveInstancesPercent" : Integer, "MinInstancesInService" : Integer, "MinSuccessfulInstancesPercent" : Integer, "PauseTime" : String, "SuspendProcesses" : [ List of processes ], "WaitOnResourceSignals" : Boolean } }

Properties

MaxBatchSize

Specifica il numero massimo di istanze che possono essere sostituite contemporaneamente.

Default: 1

Maximum: 100

Tipo: integer

Obbligatorio: no

MinActiveInstancesPercent

Specifica la percentuale di istanze in un gruppo Auto Scaling che devono trovarsi nello stato InService relativo alla capacità desiderata di tale gruppo durante un aggiornamento in sequenza affinché un aggiornamento venga completato correttamente. È possibile specificare un valore compreso tra 0 e 100. CloudFormation arrotonda al decimo di percentuale più vicino. Ad esempio, se aggiorni cinque istanze con una percentuale di InService minima di 50, almeno tre istanze devono essere nello stato InService. Se un'istanza non passa allo InService stato entro un periodo di tempo fisso di 1 ora, si CloudFormation presuppone che l'istanza non sia stata aggiornata.

L’impostazione di MinActiveInstancesPercent nella UpdatePolicy influirà anche sulle istanze avviate quando la proprietà DesiredCapacity della risorsa AWS::AutoScaling::AutoScalingGroup è impostata su un valore superiore alla capacità attualmente desiderata per quel gruppo Auto Scaling.

Default: 100

Tipo: integer

Obbligatorio: no

MinInstancesInService

Speciifica il numero minimo di istanze che devono essere in servizio all'interno del gruppo Auto Scaling CloudFormation durante l'aggiornamento delle vecchie istanze. Questo valore deve essere inferiore a MaxSize del gruppo Auto Scaling.

avvertimento

Consigliamo di impostare il valore della proprietà MinInstancesInService ad almeno MinSize del gruppo Auto Scaling. In questo modo si evitano potenziali problemi di disponibilità durante un aggiornamento in sequenza dovuti al fatto che 0 istanze servono il traffico dei clienti.

Default: 0

Tipo: integer

Obbligatorio: no

MinSuccessfulInstancesPercent

Specifica la percentuale di istanze in un aggiornamento in sequenza Auto Scaling che devono essere segnalate come riuscite perché un aggiornamento riesca. È possibile specificare un valore compreso tra 0 e 100. CloudFormationarrotonda al decimo di percentuale più vicino. Ad esempio, se aggiorni cinque istanze con una percentuale di riuscita minima pari a 50, tre istanze devono inviare segnali di successo. Se un'istanza non invia un segnale entro il tempo specificato nella PauseTime proprietà, CloudFormation presuppone che l'istanza non sia stata aggiornata.

Consigliamo di impostare il valore della proprietà MinSuccessfulInstancesPercent su un valore maggiore di 0. Quando la MinSuccessfulInstancesPercent proprietà è impostata su 0, CloudFormation attende che lo 0% delle istanze con capacità si trovi in uno stato. InService MinSuccessfulInstancesPercentritorna immediatamente e prima di considerare lo stato del gruppo Auto Scaling UPDATE_COMPLETE per passare alle risorse successive definite nel modello di stack. Se nel CloudFormation modello sono definiti altri gruppi di Auto Scaling, questi verranno aggiornati contemporaneamente. Quando tutti i gruppi con scalabilità automatica vengono implementati contemporaneamente con lo 0% delle istanze di capacità in uno stato InService, si verificano problemi di disponibilità, in quanto 0 istanze gestiscono il traffico dei clienti.

Default: 100

Tipo: integer

Obbligatorio: no

PauseTime

La quantità di tempo che intercorre dopo aver apportato una modifica a un batch di istanze per dare a tali istanze il tempo di avviare le CloudFormation applicazioni software.

Specificare PauseTime nel formato di durata ISO8601 (nel formatoPT#H#M#S, dove ciascuno # è rispettivamente il numero di ore, minuti e secondi). Il valore massimo di PauseTime è 1 ora (PT1H).

avvertimento

Quando WaitOnResourceSignals è impostato su true, PauseTime funge da valore di timeout. Determina il tempo massimo di CloudFormation attesa per ricevere il numero richiesto di segnali validi dalle istanze sostituite durante un aggiornamento continuo e dalle nuove istanze aggiunte aumentando la proprietà della DesiredCapacityrisorsa. AWS::AutoScaling::AutoScalingGroup Se PauseTime viene superato prima che CloudFormation riceva i segnali previsti, l'aggiornamento fallisce. Per ottenere risultati ottimali, specifica un periodo di tempo sufficiente a consentire l’avvio delle applicazioni. Se deve essere eseguito il rollback dell'aggiornamento, un PauseTime breve può comprometterne la riuscita.

Impostazione predefinita: PT5M (5 minuti) quando la proprietà WaitOnResourceSignals è impostata su true. In caso contrario, non viene impostato alcun valore predefinito.

Tipo: stringa

Obbligatorio: no

SuspendProcesses

Specifica i processi Auto Scaling da sospendere durante un aggiornamento dello stack. La sospensione dei processi impedisce ad Auto Scaling interferire con un aggiornamento dello stack. Ad esempio, è possibile sospendere la generazione di allarmi in modo che Amazon EC2 Auto Scaling non esegua le policy di dimensionamento associate a un allarme. Per i valori validi, consulta Tipi di processi nella Guida per l’utente di Amazon EC2 Auto Scaling.

Impostazione predefinita: non specificato

Tipo: elenco di processi Auto Scaling

Obbligatorio: no

WaitOnResourceSignals

Speciifica se CloudFormation attende i segnali di successo provenienti da nuove istanze prima di continuare l'aggiornamento. CloudFormation attende i segnali di successo per la PauseTime durata specificata.

Per l’invio del segnale al gruppo Auto Scaling, utilizza lo script helper cfn-signal. Per i gruppi Auto Scaling associati a Elastic Load Balancing, prendi in considerazione l’aggiunta di un controllo dell’integrità per garantire che le istanze siano integre prima di segnalare il completamento utilizzando lo script helper cfn-init. Per un esempio, consulta il verify_instance_health comando nei modelli di esempio per gli aggiornamenti GitHub di Amazon EC2 Auto Scaling nel nostro repository.

Default: false

Tipo: Booleano

Obbligatorio: condizionale. Se specifichi la proprietà MinSuccessfulInstancesPercent, devi impostare la proprietà WaitOnResourceSignals su true.

AutoScalingInstanceRefresh politica

Per aggiornare le istanze in un gruppo Auto Scaling eseguendo un aggiornamento dell'istanza Auto Scaling, utilizza la policy. AutoScalingInstanceRefresh Per l'elenco completo delle funzionalità di aggiornamento delle istanze, consulta Usa un aggiornamento dell'istanza per aggiornare le istanze in un gruppo Auto Scaling nella Amazon EC2 Auto Scaling User Guide.

CloudFormation esegue un aggiornamento dell'istanza solo quando aggiorni una delle seguenti proprietà di una risorsa: AWS::AutoScaling::AutoScalingGroup

  • LaunchTemplate

  • MixedInstancesPolicy

  • VPCZoneIdentifier

  • AvailabilityZones

  • AvailabilityZoneIds

  • PlacementGroup

Quando utilizzi la AutoScalingInstanceRefresh policy, considera quanto segue:

  • Non è possibile specificare entrambi AutoScalingInstanceRefresh i AutoScalingRollingUpdate criteri nello stesso gruppo Auto Scaling. Se lo fai, l'aggiornamento dello stack fallisce.

  • CloudFormation stack rollback è il meccanismo di rollback per. AutoScalingInstanceRefresh Se un aggiornamento dell'istanza fallisce, CloudFormation ripristina lo stack e avvia un nuovo aggiornamento dell'istanza per ripristinare il gruppo alla configurazione precedente. Non è possibile utilizzare l'operazione dell'RollbackInstanceRefreshAPI Auto Scaling su un aggiornamento dell'istanza CloudFormation già avviato. Per annullare un aggiornamento, utilizza l'CancelInstanceRefreshAPI o ripristina l'aggiornamento dello stack.

  • Un gruppo Auto Scaling può eseguire solo un aggiornamento dell'istanza alla volta. Se è in corso un aggiornamento dell'istanza avviato dall'utente quando si avvia un aggiornamento dello stack con la AutoScalingInstanceRefresh policy, l'aggiornamento dello stack potrebbe non riuscire.

  • Quando si imposta l'aggiornamento dell'istanza suReplaceRootVolume, sono consentite solo Strategy le modifiche ImageId all'interno del modello di avvio o della politica relativa alle istanze miste. Altre modifiche alle proprietà possono causare il fallimento dell'aggiornamento dello stack. Per ulteriori informazioni, consulta Sostituisci i volumi root durante l'aggiornamento dell'istanza nella Guida per l'utente di Amazon EC2 Auto Scaling.

  • Ogni direzione dell'aggiornamento dello stack (forward e rollback) è limitata dal timeout delle risorse di 36 ore. CloudFormation

  • Long-running gli aggiornamenti delle istanze potrebbero superare la durata delle credenziali temporanee CloudFormation utilizzate per chiamare Auto Scaling. Per evitare ciò, configura un ruolo di servizio nello stack. Per ulteriori informazioni, consulta CloudFormation service role.

Nota

L'aggiornamento dell'istanza non supporta lo script di cfn-signal supporto. Per informazioni su come verificare la disponibilità dell'istanza durante l'aggiornamento di un'istanza, consulta. Verifica la disponibilità dell'istanza durante l'aggiornamento dell'istanza

Sintassi

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

Properties

Strategy

La strategia da utilizzare per l'aggiornamento dell'istanza. I valori validi sono Rolling e ReplaceRootVolume. Per informazioni sulla ReplaceRootVolume strategia, consulta Sostituisci i volumi root durante l'aggiornamento dell'istanza nella Guida per l'utente di Amazon EC2 Auto Scaling.

Tipo: stringa

Obbligatorio:

Preferences

Imposta le preferenze per l'aggiornamento dell'istanza. Include il tempo di riscaldamento dell'istanza, le percentuali di integrità minima e massima e i comportamenti utilizzati da Amazon EC2 Auto Scaling se le istanze Standby sono in stato o protette dalla scalabilità in. Puoi anche abilitare funzionalità aggiuntive:

  • Punti di controllo

  • CloudWatch allarmi

  • Salta corrispondenza

  • Tempo di incorporamento

Tipo: Preferenze

Obbligatorio: no

Preferenze

AlarmSpecification

Le specifiche CloudWatch dell'allarme. È possibile utilizzare gli CloudWatch allarmi per identificare eventuali problemi durante l'aggiornamento dell'istanza e ripristinare lo stack se viene raggiunta una soglia di allarme. Per ulteriori informazioni, consulta Start an istance refresh with auto rollback nella Amazon EC2 Auto Scaling User Guide.

Tipo: AlarmSpecification

Obbligatorio: no

BakeTime

Il periodo di attesa, in secondi, alla fine dell'aggiornamento di un'istanza prima che l'aggiornamento sia considerato completo.

Default: 0

Minimum: 0

Maximum: 172800

Tipo: integer

Obbligatorio: no

CheckpointDelay

Il tempo di attesa, espresso in secondi, necessario al raggiungimento di un checkpoint prima di continuare. Se si specifica un valore per CheckpointPercentages ma non perCheckpointDelay, il valore CheckpointDelay predefinito è 3600 (1 ora).

Minimum: 0

Maximum: 172800

Tipo: integer

Obbligatorio: no

CheckpointPercentages

Valori di soglia per ogni checkpoint in ordine crescente. Ogni numero deve essere unico. Per sostituire tutte le istanze nel gruppo Auto Scaling, l'ultimo numero nell'array deve essere. 100 Per esempi di utilizzo, consulta Aggiungere checkpoint a un aggiornamento dell'istanza nella Amazon EC2 Auto Scaling User Guide.

Tipo: Elenco di numeri interi

Obbligatorio: no

InstanceWarmup

Tempo di attesa, espresso in secondi, dell'aggiornamento dell'istanza prima di passare alla sostituzione dell'istanza successiva dopo che una nuova istanza è entrata nello stato InService.

Se non si specificaInstanceWarmup, Auto Scaling utilizza invece il valore per la DefaultInstanceWarmup proprietà. Si consiglia di impostare un valore per tutti i DefaultInstanceWarmup casi d'uso.

Se non specificate un valore per nessuna delle due proprietà, Auto Scaling utilizza il valore della HealthCheckGracePeriod proprietà.

Tipo: integer

Obbligatorio: no

MaxHealthyPercentage

Speciifica la percentuale massima del gruppo che può essere in servizio e integro, o in sospeso, per supportare il carico di lavoro durante la sostituzione delle istanze. Il valore è espresso come percentuale della capacità desiderata del gruppo Auto Scaling. Se si specificaMaxHealthyPercentage, è necessario specificare MinHealthyPercentage anche e la differenza tra loro non può essere maggiore di 100. Un intervallo più ampio aumenta il numero di istanze che possono essere sostituite contemporaneamente.

Predefinito: il valore impostato nella politica di manutenzione delle istanze del gruppo Auto Scaling, se definito. Altrimenti, 110 quando Strategy è Rolling o 100 quando Strategy èReplaceRootVolume.

Minimum: 100

Maximum: 200

Tipo: integer

Obbligatorio: no

MinHealthyPercentage

Specifica la percentuale minima del gruppo da mantenere in servizio, integro e pronto all'uso per supportare il carico di lavoro e consentire il proseguimento dell'operazione. Il valore è espresso come percentuale della capacità desiderata del gruppo Auto Scaling.

Predefinito: il valore impostato nella politica di manutenzione delle istanze del gruppo Auto Scaling, se definito. Altrimenti, 100 quando Strategy è Rolling o 90 quando Strategy èReplaceRootVolume.

Minimum: 0

Maximum: 100

Tipo: integer

Obbligatorio: no

ScaleInProtectedInstances

Scegliere il comportamento desiderato di Amazon EC2 Auto Scaling se vengono trovate istanze protette dalla riduzione orizzontale. Di seguito sono elencati i valori validi:

  • Aggiornamento: Amazon EC2 Auto Scaling sostituisce le istanze protette dallo scale-in.

  • Ignora: Amazon EC2 Auto Scaling ignora le istanze protette da Scaling in e continua a sostituire le istanze che non lo sono.

  • Attendi: Amazon EC2 Auto Scaling attende un'ora prima che tu rimuova la protezione scalabile. In caso contrario, l'aggiornamento dell'istanza non riesce.

Default: Wait

Tipo: stringa

Obbligatorio: no

SkipMatching

Indica se l'opzione Skip Matching è abilitata. Se abilitato (true), Auto Scaling salta la sostituzione delle istanze che già corrispondono alla configurazione specificata nel modello dello stack. Per ulteriori informazioni, consulta Use an Instance Refresh with skip matching nella Amazon EC2 Auto Scaling User Guide.

Default: true

Tipo: Booleano

Obbligatorio: no

StandbyInstances

Scegliere il comportamento desiderato di Amazon EC2 Auto Scaling se vengono trovate istanze in stato Standby. Di seguito sono elencati i valori validi:

  • Termina: Amazon EC2 Auto Scaling interrompe le istanze che si trovano in. Standby

  • Ignora: Amazon EC2 Auto Scaling ignora le istanze Standby presenti nello stato e continua a sostituirle. InService

  • Attendi: Amazon EC2 Auto Scaling attende un'ora prima che tu restituisca le istanze al servizio. In caso contrario, l'aggiornamento dell'istanza non riesce.

Default: Wait

Tipo: stringa

Obbligatorio: no

AlarmSpecification

Alarms

I nomi di uno o più CloudWatch allarmi da monitorare per l'aggiornamento dell'istanza. È possibile specificare fino a 10 allarmi.

Tipo: List of Strings

Obbligatorio: no

Verifica la disponibilità dell'istanza durante l'aggiornamento dell'istanza

Per impostazione predefinita, l'aggiornamento dell'istanza passa automaticamente al set successivo di istanze quando le istanze appena avviate superano i controlli di integrità configurati nel gruppo Auto Scaling. Questi includono i controlli di integrità di Amazon EC2 e, se configurati, i controlli di integrità di Elastic Load Balancing. Per ulteriori informazioni, consulta Controllo dell'integrità per istanze in un gruppo Auto Scaling nella Guida per l'utente di Amazon EC2 Auto Scaling.

Se le tue istanze richiedono il bootstrap dell'applicazione prima di passare aInService, aggiungi un autoscaling:EC2_INSTANCE_LAUNCHING lifecycle hook al gruppo Auto Scaling. L'aggiornamento dell'istanza attende il completamento del lifecycle hook prima di passare al set di istanze successivo. Completa l'hook chiamando l'API. CompleteLifecycleAction Puoi effettuare questa chiamata dall'istanza stessa utilizzando uno script di dati utente del modello di avvio o da un servizio esterno. Per ulteriori informazioni, consulta Amazon EC2 Auto Scaling lifecycle hook e Complete a lifecycle action in an Auto Scaling group nella Amazon EC2 Auto Scaling User Guide.

AutoScalingScheduledAction politica

Per specificare come CloudFormation gestisce gli aggiornamenti per MinSizeMaxSize, e DesiredCapacity le proprietà quando alla AWS::AutoScaling::AutoScalingGroup risorsa è associata un'azione pianificata, utilizza la AutoScalingScheduledAction politica.

Con le operazioni programmate, le proprietà delle dimensioni dei gruppi per un gruppo con dimensionamento automatico possono variare in qualsiasi momento. Quando aggiorni uno stack con un gruppo Auto Scaling e un'azione pianificata CloudFormation , imposta sempre i valori delle proprietà delle dimensioni del gruppo del gruppo Auto Scaling sui valori definiti nella risorsa AWS::AutoScaling::AutoScalingGroup del modello, anche se è in corso un'azione pianificata.

Se non desideri modificare nessuno dei valori delle proprietà relative CloudFormation alla dimensione del gruppo quando hai in corso un'azione pianificata, utilizza il criterio di AutoScalingScheduledAction aggiornamento e imposta in modo CloudFormation da IgnoreUnmodifiedGroupSizeProperties true evitare di modificare le DesiredCapacity proprietà MinSizeMaxSize, o a meno che tu non abbia modificato questi valori nel tuo modello.

Sintassi

JSON

"UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : Boolean } }

Properties

IgnoreUnmodifiedGroupSizeProperties

Iftrue, CloudFormation ignora le differenze nelle proprietà delle dimensioni del gruppo tra il gruppo Auto Scaling corrente e il gruppo Auto Scaling descritto nella risorsa del modello durante un aggiornamento AWS::AutoScaling::AutoScalingGroup dello stack. Se modifichi uno qualsiasi dei valori della proprietà della dimensione del gruppo nel modello, CloudFormation utilizza i valori modificati e aggiorna il gruppo con scalabilità automatica.

Nota

Questa proprietà viene ignorata durante un rollback dello stack.

Default: false

Tipo: Booleano

Obbligatorio: no

UseOnlineResharding politica

Per modificare gli shard di un gruppo di replica aggiungendo o rimuovendo gli shard, anziché sostituire l'intera ReplicationGroup risorsa AWS::ElastiCache::, utilizzate la UseOnlineResharding policy di aggiornamento.

Se UseOnlineResharding è impostato sutrue, è possibile aggiornare le NodeGroupConfiguration proprietà NumNodeGroups e della AWS::ElastiCache::ReplicationGroup risorsa e tali proprietà CloudFormation verranno aggiornate senza interruzioni. Quando UseOnlineResharding è impostato false su o non è specificato, l'aggiornamento delle NodeGroupConfiguration proprietà NumNodeGroups and comporta la CloudFormation sostituzione dell'intera AWS::ElastiCache::ReplicationGroup risorsa.

La policy di aggiornamento UseOnlineResharding non ha proprietà.

Aspetti da considerare quando si imposta la policy di aggiornamento UseOnlineResharding su true:

  • Ti consigliamo di eseguire gli aggiornamenti alle proprietà NumNodeGroups e NodeGroupConfiguration come unici aggiornamenti in una determinata operazione di aggiornamento dello stack.

    L'aggiornamento della configurazione del gruppo di nodi di un gruppo di replica è un'operazione che richiede un uso intensivo delle risorse. Se un aggiornamento dello stack fallisce, CloudFormation non ripristina le modifiche alla configurazione del gruppo di nodi di un gruppo di replica. Tuttavia, CloudFormation ripristinerà tutte le altre proprietà che sono state modificate come parte dell'operazione di aggiornamento non riuscita.

  • Qualsiasi aggiornamento di gruppo di nodi richiede l'identificazione di tutti i gruppi di nodi.

    Se si specifica la NodeGroupConfiguration proprietà, è necessario specificare anche la configurazione NodeGroupId per ogni gruppo di nodi per CloudFormation aggiornare il numero di nodi senza interruzioni.

    Quando si crea un gruppo di replica, se non si specifica un ID per ciascun gruppo di nodi, ElastiCache genera automaticamente un ID per ciascun gruppo di nodi. Per aggiornare il gruppo di replica senza interruzioni, utilizzate la ElastiCache console (https://console.aws.amazon.com/elasticache/) o DescribeReplicationGroupsrecuperate gli ID per tutti i gruppi di nodi del gruppo di replica. Quindi specifica l'ID per ciascun gruppo di nodi nel tuo modello di stack prima di tentare di aggiungere o rimuovere shard.

    Nota

    Come best practice, quando crei un gruppo di replica in un modello di stack, includi un ID per ciascun gruppo di nodi specificato.

    Inoltre, l'aggiornamento del numero di nodi senza interruzioni richiede che tu abbia specificato con precisione le proprietà PrimaryAvailabilityZone, ReplicaAvailabilityZones e ReplicaCount per ciascun NodeGroupConfiguration . Anche in questo caso, potete utilizzare la ElastiCache console (https://console.aws.amazon.com/elasticache/) o DescribeReplicationGroupsrecuperare i valori effettivi per ogni gruppo di nodi e confrontarli con i valori del modello di stack. Puoi aggiornare i valori di proprietà del gruppo di nodi come aggiornamento dello stack separato oppure come parte dello stesso aggiornamento dello stack che modifica il numero dei gruppi di nodi.

    Quando utilizzate una politica di UseOnlineResharding aggiornamento per aggiornare il numero di gruppi di nodi senza interruzioni, distribuisce ElastiCache uniformemente gli spazi chiave tra il numero di slot specificato. Questo non può essere aggiornato in seguito. Pertanto, dopo l'aggiornamento del numero dei gruppi di nodi in questo modo, devi rimuovere il valore specificato per la proprietà Slots di ciascuna NodeGroupConfiguration dal modello dello stack, in quanto non riflette più i valori effettivi in ciascun gruppo di nodi.

  • I risultati effettivi della rimozione del gruppo di nodi potrebbero variare

    Quando si specifica un NumNodeGroups valore inferiore al numero corrente di gruppi di nodi, CloudFormation indica di ElastiCache rimuovere tutti i gruppi di nodi necessari per raggiungere il numero di nodi specificato. Tuttavia, ElastiCache potrebbe non essere sempre possibile rimuovere il numero desiderato di gruppi di nodi. Nel caso in cui non sia ElastiCache possibile rimuovere il numero desiderato di gruppi di nodi, CloudFormation genera un evento stack che avvisa l'utente in merito. Nei casi in cui non è ElastiCache possibile rimuovere alcun gruppo di nodi, l'aggiornamento delle CloudFormation risorse non riesce.

Per ulteriori informazioni sulla modifica dei gruppi di replica, consulta ModifyReplicationGroupShardConfigurationAmazon ElastiCache API Reference.

Sintassi

JSON

"UpdatePolicy" : { "UseOnlineResharding" : Boolean }

YAML

UpdatePolicy: UseOnlineResharding: Boolean

EnableVersionUpgrade politica

Per aggiornare un dominio di OpenSearch servizio a una nuova versione di OpenSearch Elasticsearch anziché sostituire l'intera risorsa AWS::OpenSearchService: :Domain o AWS::Elasticsearch: :Domain, utilizza la politica di aggiornamento. EnableVersionUpgrade

Se EnableVersionUpgrade è impostato sutrue, puoi aggiornare la EngineVersion proprietà della AWS::OpenSearchService::Domain risorsa (o la ElasticsearchVersion proprietà della AWS::Elasticsearch::Domain risorsa precedente) e CloudFormation aggiornerai tale proprietà senza interruzioni. Quando EnableVersionUpgrade è impostato sufalse, o non è specificato, l'aggiornamento della ElasticsearchVersion proprietà EngineVersion o comporta la CloudFormation sostituzione dell'intera AWS::Elasticsearch::Domain risorsaAWS::OpenSearchService::Domain/.

La policy di aggiornamento EnableVersionUpgrade non ha proprietà.

Per ulteriori informazioni, consulta Upgrading OpenSearch Service domains nella Amazon OpenSearch Service Developer Guide.

Sintassi

JSON

"UpdatePolicy" : { "EnableVersionUpgrade" : Boolean }

YAML

UpdatePolicy: EnableVersionUpgrade: Boolean

CodeDeployLambdaAliasUpdate politica

Per eseguire una CodeDeploy distribuzione quando la versione cambia su una AWS::Lambda::Alias risorsa, utilizza la politica di CodeDeployLambdaAliasUpdate aggiornamento.

Sintassi

JSON

"UpdatePolicy" : { "CodeDeployLambdaAliasUpdate" : { "AfterAllowTrafficHook" : String, "ApplicationName" : String, "BeforeAllowTrafficHook" : String, "DeploymentGroupName" : String } }

Properties

AfterAllowTrafficHook

Il nome della funzione Lambda da eseguire dopo il completamento dell'instradamento del traffico.

Required: No

Tipo: stringa

ApplicationName

Il nome dell' CodeDeploy applicazione.

Obbligatorio:

Tipo: stringa

BeforeAllowTrafficHook

Il nome della funzione Lambda da eseguire prima dell'inizio dell'instradamento del traffico.

Required: No

Tipo: stringa

DeploymentGroupName

Il nome del gruppo CodeDeploy di distribuzione. È dove viene impostata la policy di trasferimento del traffico.

Obbligatorio:

Tipo: stringa

Per un esempio che specifica l'attributo UpdatePolicy per una risorsa AWS::Lambda::Alias, consulta Policy di aggiornamento dell'alias Lambda.

Esempi

I seguenti esempi mostrano come aggiungere una policy di aggiornamento a un gruppo con dimensionamento automatico e come garantire la disponibilità durante l'aggiornamento dei metadati.

Aggiunta di una UpdatePolicy a un gruppo con scalabilità automatica

Il seguente esempio mostra come aggiungere una policy di aggiornamento. Durante un aggiornamento, il gruppo con dimensionamento automatico aggiorna le istanze in batch di due e mantiene in servizio almeno un'istanza. Poiché il flag WaitOnResourceSignals è impostato, il gruppo con dimensionamento automatico attende nuove istanze che vengono aggiunte al gruppo. Le nuove istanze devono inviare il segnale al gruppo con dimensionamento automatico prima che aggiorni il batch di istanze successivo.

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 politica

Nell'esempio seguente viene dichiarata una policy che impone la sostituzione di un gruppo con dimensionamento automatico associato durante un aggiornamento. Perché l'aggiornamento riesca, una percentuale di istanze (specificata dal parametro MinSuccessfulPercentParameter ) deve segnalare l'esito positivo entro il periodo Timeout.

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 politica

Gli esempi seguenti mostrano due configurazioni comuni della AutoScalingInstanceRefresh politica. Il primo esempio utilizza launch-before-terminate per mantenere la capacità durante l'aggiornamento. Il secondo esempio utilizza un CloudWatch allarme per ripristinare lo stack se la distribuzione causa problemi.

Launch-before-terminate aggiorna

L'esempio seguente dichiara una AutoScalingInstanceRefresh policy che utilizza launch-before-terminate. L'impostazione 100 garantisce MinHealthyPercentage l'avvio di nuove istanze prima del termine di quelle esistenti e of consente al gruppo di raddoppiare temporaneamente le MaxHealthyPercentage dimensioni. 200 La policy ignora anche le istanze che già corrispondono alla configurazione.

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

Aggiorna con un rollback basato sugli allarmi

L'esempio seguente dichiara una AutoScalingInstanceRefresh policy con checkpoint, rollback basato sugli allarmi e un tempo di cottura. Auto Scaling si ferma per 5 minuti ad ogni checkpoint e attende 10 minuti dopo il completamento prima di dichiarare l'esito positivo.

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

Disponibilità durante l'aggiornamento dei metadati per lo script helper cfn-init

Quando installi applicazioni software sulle tue istanze, puoi utilizzare la chiave AWS::CloudFormation::Init dei metadati e lo script di cfn-init supporto per avviare le istanze nel tuo gruppo Auto Scaling. CloudFormation installa i pacchetti, esegue i comandi ed esegue altre azioni di bootstrap descritte nei metadati.

Quando si aggiornano solo i metadati (ad esempio, quando si aggiorna un pacchetto a un'altra versione), è possibile utilizzare il daemon assistente cfn-hup per rilevare e applicare gli aggiornamenti. Tuttavia, il daemon cfn-hup viene eseguito in modo indipendente su ciascuna istanza. Se il daemon viene eseguito contemporaneamente su tutte le istanze, l'applicazione o il servizio potrebbe non essere disponibile durante l'aggiornamento. Per garantire la disponibilità, puoi forzare un aggiornamento periodico in modo che CloudFormation aggiorni le istanze un batch alla volta.

Importante

Per forzare un aggiornamento continuo CloudFormation è necessario creare una nuova istanza e quindi eliminare quella precedente. Le informazioni memorizzate nell'istanza precedente andranno perse.

Per forzare un aggiornamento continuo, modifica l'ID logico della risorsa di configurazione di avvio, quindi aggiorna lo stack e tutti i riferimenti che puntano all'ID logico originale (come il gruppo Auto Scaling associato). CloudFormation attiva un aggiornamento continuo nel gruppo Auto Scaling, sostituendo tutte le istanze.

Modello originale

"LaunchConfig": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

ID logico aggiornato

"LaunchConfigUpdateRubygemsPkg": { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Metadata" : { "Comment" : "Install a simple PHP application", "AWS::CloudFormation::Init" : { ... } } }

Policy di aggiornamento dell'alias Lambda

Nell'esempio seguente viene specificato l'attributo UpdatePolicy per una risorsa AWS::Lambda::Alias. Tutti i dettagli per la distribuzione sono definiti dall'applicazione e dal gruppo di distribuzione trasferiti nella policy.

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