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.
Argomenti
Panoramica
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 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 Amazon EC2 Auto Scaling, puoi utilizzare una o più policy di aggiornamento per controllare la gestione di determinati CloudFormation aggiornamenti. Queste policy includono:
-
AutoScalingReplacingUpdateeAutoScalingRollingUpdatepolitiche: CloudFormation può sostituire il gruppo Amazon EC2 Auto Scaling e le relative istanze con unaAutoScalingReplacingUpdatepolicy oppure sostituire solo le istanze con una policy.AutoScalingRollingUpdateQueste operazioni di sostituzione si verificano quando apporti una o più delle seguenti modifiche:-
Cambia quello del gruppo Amazon EC2 Auto Scaling. AWS::AutoScaling::LaunchConfiguration
-
Modifica la proprietà del gruppo Amazon EC2 Auto Scaling.
VPCZoneIdentifier -
Modifica la proprietà del gruppo Amazon EC2 Auto Scaling.
LaunchTemplate -
Modifica la proprietà del gruppo Amazon EC2 Auto Scaling.
PlacementGroup -
Aggiorna un gruppo Amazon EC2 Auto Scaling che contiene istanze che non corrispondono a quelle attuali.
LaunchConfiguration
Se sono specificate entrambe le policy,
AutoScalingReplacingUpdateeAutoScalingRollingUpdate, l'impostazione della proprietàWillReplacesutrueda la precedenza aAutoScalingReplacingUpdate. -
-
AutoScalingScheduledActionpolicy: questa policy si applica quando aggiorni uno stack che include un gruppo Amazon EC2 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 esplicitamente modificate 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:BooleanStartAfterUpdate: Type:Boolean
StopBeforeUpdate-
Arresta il parco istanze specificato prima dell'aggiornamento.
Required: No
StartAfterUpdate-
Avvia il parco istanze specificato dopo l'aggiornamento.
Required: No
Policy AutoScalingReplacingUpdate
Per sostituire il gruppo Amazon EC2 Auto Scaling e le istanze in esso contenute, utilizza la policy. AutoScalingReplacingUpdate
Prima di effettuare un aggiornamento, assicurati di disporre di una EC2 capacità Amazon sufficiente per i gruppi Amazon EC2 Auto Scaling vecchi e nuovi.
Sintassi
JSON
"UpdatePolicy" : { "AutoScalingReplacingUpdate" : { "WillReplace" :Boolean} }
YAML
UpdatePolicy: AutoScalingReplacingUpdate: WillReplace:Boolean
Properties
WillReplace-
Speciifica se un gruppo Amazon EC2 Auto Scaling e le istanze che contiene vengono sostituiti durante un aggiornamento. Durante la sostituzione, CloudFormation mantiene il vecchio gruppo fino al termine della creazione di quello nuovo. Se l'aggiornamento non riesce, CloudFormation puoi tornare al vecchio gruppo Amazon EC2 Auto Scaling ed eliminare il nuovo gruppo Amazon Auto EC2 Scaling.
Durante la CloudFormation creazione del nuovo gruppo, non scollega o collega alcuna istanza. Dopo aver creato correttamente il nuovo gruppo Amazon EC2 Auto Scaling, CloudFormation elimina il vecchio gruppo Amazon EC2 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 dallaMinSuccessfulInstancesPercentproprietà) non segnala il successo entro ilTimeoutperiodo (specificato nell'CreationPolicyattributo), l'aggiornamento sostitutivo non riesce e CloudFormation torna al vecchio gruppo Amazon EC2 Auto Scaling.Tipo: Booleano
Required: No
Policy AutoScalingRollingUpdate
Per eseguire un aggiornamento continuo delle istanze in un gruppo Amazon EC2 Auto Scaling anziché attendere che le attività di scaling sostituiscano gradualmente le istanze più vecchie con istanze più nuove, utilizza la policy. AutoScalingRollingUpdate Questa policy ti offre la flessibilità necessaria per specificare se CloudFormation sostituire le istanze che si trovano in un gruppo Amazon EC2 Auto Scaling in batch o tutte contemporaneamente senza sostituire l'intera risorsa.
Aspetti da considerare quando si utilizza una policy AutoScalingRollingUpdate:
-
Quando CloudFormation ripristina un aggiornamento, utilizza la
UpdatePolicyconfigurazione specificata nel modello prima dell'aggiornamento dello stack corrente. Ad esempio, si modifica il valoreMaxBatchSizeda 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 modificheUpdatePolicyin un aggiornamento separato prima di qualsiasi aggiornamento al gruppo Amazon EC2 Auto Scaling che potrebbe avviare aggiornamenti continui. -
CloudFormation consiglia di specificare la
SuspendProcessesproprietà per sospendere temporaneamente i processi di Amazon EC2 Auto Scaling che potrebbero interferire con l'aggiornamento continuo e causarne il fallimento. Per ulteriori informazioni, consulta Come posso aggiornare il mio gruppo Amazon EC2 Auto Scaling quando aggiorno il mio CloudFormationstack? -
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 risultatoCONTINUEal 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 statoInService, l’aggiornamento in sequenza non verrà eseguito correttamente. -
Le funzionalità di Amazon EC2 Auto Scaling, come le politiche di manutenzione delle istanze, le politiche di terminazione e la protezione scalabile, non sono disponibili per l'uso con gli aggiornamenti continui. CloudFormation Pianifica i tuoi aggiornamenti in sequenza di conseguenza.
-
Se utilizzi una
AutoScalingRollingUpdatepolicy e rimuovi l'impostazione del gruppo di collocamento, il gruppo di collocamento verrà rimosso dal gruppo Amazon EC2 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} }
YAML
UpdatePolicy: AutoScalingRollingUpdate: MaxBatchSize:IntegerMinActiveInstancesPercent:IntegerMinInstancesInService:IntegerMinSuccessfulInstancesPercent:IntegerPauseTime:StringSuspendProcesses: -List of processesWaitOnResourceSignals:Boolean
Properties
MaxBatchSize-
Specifica il numero massimo di istanze che possono essere sostituite contemporaneamente.
Default:
1Maximum:
100Tipo: integer
Required: No
MinActiveInstancesPercent-
Speciifica la percentuale di istanze in un gruppo Amazon EC2 Auto Scaling che devono trovarsi nello
InServicestato relativo alla capacità desiderata di quel gruppo durante un aggiornamento continuo affinché un aggiornamento abbia successo. Puoi 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 diInServiceminima di 50, almeno tre istanze devono essere nello statoInService. Se un'istanza non passa alloInServicestato entro un periodo di tempo fisso di 1 ora, si CloudFormation presuppone che l'istanza non sia stata aggiornata.L'impostazione
MinActiveInstancesPercentsuUpdatePolicyinfluirà anche sulle istanze avviate quando laDesiredCapacityproprietà dellaAWS::AutoScaling::AutoScalingGrouprisorsa è impostata su un valore superiore alla capacità attualmente desiderata per quel gruppo Amazon EC2 Auto Scaling.Default:
100Tipo: integer
Required: No
MinInstancesInService-
Speciifica il numero minimo di istanze che devono essere in servizio all'interno del gruppo Amazon Auto EC2 Scaling CloudFormation durante l'aggiornamento delle vecchie istanze. Questo valore deve essere inferiore a quello MaxSizedel gruppo Amazon EC2 Auto Scaling.
avvertimento
Ti consigliamo di impostare il valore della
MinInstancesInServiceproprietà almeno su quello MinSizedel gruppo Amazon EC2 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:
0Tipo: integer
Required: No
MinSuccessfulInstancesPercent-
Specifica la percentuale di istanze in un aggiornamento continuo di Amazon EC2 Auto Scaling che devono segnalare l'esito positivo di un aggiornamento. Puoi 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 nellaPauseTimeproprietà, CloudFormation presuppone che l'istanza non sia stata aggiornata.Consigliamo di impostare il valore della proprietà
MinSuccessfulInstancesPercentsu un valore maggiore di 0. Quando laMinSuccessfulInstancesPercentproprietà è impostata su 0, CloudFormation attende che lo 0% delle istanze con capacità si trovi in uno stato.InServiceMinSuccessfulInstancesPercentritorna immediatamente e prima di considerare lo stato del gruppo Amazon EC2 Auto ScalingUPDATE_COMPLETEper passare alle risorse successive definite nel modello di stack. Se nel CloudFormation modello sono definiti altri gruppi Amazon EC2 Auto Scaling, questi verranno aggiornati contemporaneamente. Quando tutti i gruppi Amazon EC2 Auto Scaling vengono distribuiti contemporaneamente con lo 0% della capacità delle istanze in unoInServicestato, si verificheranno problemi di disponibilità, dovuti al fatto che 0 istanze servono il traffico dei clienti.Default:
100Tipo: integer
Required: 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.
Specificate
PauseTimenel formato di durata ISO86 01(nel formato PT, dove ciascuno#H#M#S#corrisponde rispettivamente al numero di ore, minuti e secondi). Il valore massimo diPauseTimeè 1 ora (PT1H).avvertimento
Quando
WaitOnResourceSignalsè impostato sutrue,PauseTimefunge 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 DesiredCapacityproprietà della risorsa.AWS::AutoScaling::AutoScalingGroupSe il valorePauseTimeviene superato prima che CloudFormation riceva i segnali previsti, l'aggiornamento non riesce. Per ottenere risultati ottimali, specifica un periodo di tempo sufficiente a consentire l’avvio delle applicazioni. Se deve essere eseguito il rollback dell'aggiornamento, unPauseTimebreve può comprometterne la riuscita.Impostazione predefinita:
PT5M(5 minuti) quando la proprietàWaitOnResourceSignalsè impostata sutrue. In caso contrario, non viene impostato alcun valore predefinito.▬Tipo: stringa
Required: No
SuspendProcesses-
Speciifica i processi di Amazon EC2 Auto Scaling da sospendere durante un aggiornamento dello stack. La sospensione dei processi impedisce ad Amazon EC2 Auto Scaling di interferire con un aggiornamento dello stack. Ad esempio, puoi sospendere gli allarmi in modo che Amazon EC2 Auto Scaling non avvii le politiche di scalabilità associate a un allarme. Per i valori validi, consulta Types of process nella Amazon EC2 Auto Scaling User Guide.
Impostazione predefinita: non specificato
Tipo: Elenco dei processi di Amazon EC2 Auto Scaling
Required: 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
PauseTimedurata specificata.Per segnalare il gruppo Amazon EC2 Auto Scaling, usa lo script di cfn-signal supporto. Per i gruppi Amazon EC2 Auto Scaling associati a ELB, prendi in considerazione l'aggiunta di un controllo dello stato per garantire che le istanze siano integre prima di segnalare l'esito positivo utilizzando lo script di supporto. cfn-init Per un esempio, consulta il
verify_instance_healthcomando nei modelli di esempio per Amazon EC2 Auto Scaling che distribuisce gli aggiornamenti nel nostro GitHub repository.Default:
falseTipo: Booleano
Obbligatorio: condizionale. Se specifichi la proprietà
MinSuccessfulInstancesPercent, devi impostare la proprietàWaitOnResourceSignalssutrue.
Policy AutoScalingScheduledAction
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 policy.
Con le azioni pianificate, le proprietà delle dimensioni del gruppo di un gruppo Amazon EC2 Auto Scaling possono cambiare in qualsiasi momento. Quando aggiorni uno stack con un gruppo Amazon EC2 Auto Scaling e un'azione pianificata CloudFormation , imposta sempre i valori delle proprietà delle dimensioni del gruppo del gruppo Amazon EC2 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} }
YAML
UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties:Boolean
Properties
IgnoreUnmodifiedGroupSizeProperties-
If
true, CloudFormation ignora le differenze nelle proprietà relative alle dimensioni del gruppo tra il gruppo Amazon EC2 Auto Scaling corrente e il gruppo Amazon Auto EC2 Scaling descritto nella risorsa del modello durante un aggiornamentoAWS::AutoScaling::AutoScalingGroupdello stack. Se modifichi uno qualsiasi dei valori delle proprietà relative alla dimensione del gruppo nel modello, CloudFormation utilizza i valori modificati e aggiorna il gruppo Amazon EC2 Auto Scaling.Nota
Questa proprietà viene ignorata durante un rollback dello stack.
Default:
falseTipo: Booleano
Required: No
Policy UseOnlineResharding
Per modificare shard del gruppo di replica aggiungendo o rimuovendo shard, anziché sostituendo l’intera risorsa AWS::ElastiCache::ReplicationGroup, utilizza la policy di aggiornamento UseOnlineResharding.
Se UseOnlineResharding è impostato sutrue, puoi aggiornare le NodeGroupConfiguration proprietà NumNodeGroups e della AWS::ElastiCache::ReplicationGroup risorsa e CloudFormation aggiornerai tali proprietà 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à
NumNodeGroupseNodeGroupConfigurationcome 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
NodeGroupConfigurationproprietà, è 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 il file IDs 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,ReplicaAvailabilityZoneseReplicaCountper ciascunNodeGroupConfiguration. 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
UseOnlineReshardingaggiornamento 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àSlotsdi ciascunaNodeGroupConfigurationdal 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
NumNodeGroupsvalore 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
Policy EnableVersionUpgrade
Per aggiornare un dominio OpenSearch di servizio a una nuova versione di OpenSearch Elasticsearch anziché sostituire l'intera AWS::Elasticsearch::Domainrisorsa, utilizza la AWS::OpenSearchService::Domainpolitica 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 risorsa AWS::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} }
YAML
UpdatePolicy: CodeDeployLambdaAliasUpdate: AfterAllowTrafficHook:StringApplicationName:StringBeforeAllowTrafficHook:StringDeploymentGroupName: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.
Campo obbligatorio: sì
▬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.
Campo obbligatorio: sì
▬Tipo: stringa
Per un esempio che specifica l'attributo UpdatePolicy per una risorsa AWS::Lambda::Alias, consulta Policy di aggiornamento dell'alias Lambda.
Esempi
Gli esempi seguenti mostrano come aggiungere una politica di aggiornamento a un gruppo Amazon EC2 Auto Scaling e come mantenere la disponibilità durante l'aggiornamento dei metadati.
Aggiungi un utente UpdatePolicy a un gruppo Amazon EC2 Auto Scaling
Il seguente esempio mostra come aggiungere una policy di aggiornamento. Durante un aggiornamento, il gruppo Amazon EC2 Auto Scaling aggiorna le istanze in batch di due e mantiene almeno un'istanza in servizio. Poiché il WaitOnResourceSignals flag è impostato, il gruppo Amazon EC2 Auto Scaling attende che nuove istanze vengano aggiunte al gruppo. Le nuove istanze devono segnalare il gruppo Amazon EC2 Auto Scaling prima che aggiorni il successivo batch di istanze.
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 politica
L'esempio seguente dichiara una politica che impone la sostituzione di un gruppo Amazon EC2 Auto Scaling 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'
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 Amazon Auto EC2 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 Amazon Auto EC2 Scaling associato). CloudFormation attiva un aggiornamento continuo sul gruppo Amazon EC2 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