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à.
Rollback di un aggiornamento
Uno stack entra nello UPDATE_ROLLBACK_FAILED
stato in cui non è AWS CloudFormation possibile ripristinare tutte le modifiche durante un aggiornamento. Ad esempio, potresti avere uno stack che inizia a tornare a una vecchia istanza di database che è stata eliminata all'esterno di. CloudFormation Poiché CloudFormation non sa che il database è stato eliminato, presuppone che l'istanza del database esista ancora e tenta di ripristinarla, causando il fallimento del rollback dell'aggiornamento.
Quando uno stack è nello stato UPDATE_ROLLBACK_FAILED
, puoi continuare a eseguire il rollback a uno stato attivo (UPDATE_ROLLBACK_COMPLETE
). Non puoi aggiornare uno stack che si trova nello stato UPDATE_ROLLBACK_FAILED
. Tuttavia, puoi continuare a eseguire il rollback, puoi restituire lo stack alle impostazioni originali e provare ad aggiornarlo di nuovo.
Nella maggior parte dei casi, devi correggere l'errore che causa un guasto durante l'aggiornamento del rollback prima di poter continuare a eseguire il rollback dello stack. In altri casi, puoi continuare a eseguire il rollback dell'aggiornamento senza alcuna modifica, ad esempio quando un'operazione stack scade.
Nota
Se utilizzi gli stack nidificati, il rollback dello stack padre cercherà di eseguire il rollback anche su tutti gli stack figlio.
Per continuare il rollback di un aggiornamento (console)
-
Selezionare lo stack che desideri aggiornare, quindi Actions (Operazioni) e in seguito Continue Update Rollback (Continua rollback aggiornamento).
Se nessuna delle soluzioni Risoluzione degli errori funziona, puoi utilizzare l'opzione avanzata per ignorare le risorse che non CloudFormation possono essere ripristinate correttamente. Devi ricercare e digitare gli ID logici delle risorse che desideri ignorare. Specificate solo le risorse che sono state inserite nello
UPDATE_FAILED
stato duranteUpdateRollback
e non durante l'aggiornamento successivo.avvertimento
CloudFormation imposta lo stato delle risorse specificate su
UPDATE_COMPLETE
e continua a ripristinare lo stack. Dopo aver completato il rollback, lo stato delle risorse saltate saranno incoerenti con lo stato delle risorse nel modello di stack. Prima di eseguire un altro aggiornamento dello stack, devi aggiornare lo stack o le risorse in modo che siano coerenti. Altrimenti, i successivi aggiornamenti dello stack potrebbero fallire e lo stack diventerà irrecuperabile.Specifica il numero minimo di risorse necessarie per eseguire il rollback dello stack. Ad esempio, un aggiornamento della risorsa non riuscito potrebbe causare errori nelle risorse dipendenti. In questo caso, potrebbe non essere necessario ignorare le risorse dipendenti.
Per ignorare le risorse che fanno parte di stack nidificati, utilizzare il formato seguente:
. Se desideri specificare l'ID logico di una risorsa stack (NestedStackName
.ResourceLogicalID
Type: AWS::CloudFormation::Stack
) nell'elencoResourcesToSkip
, lo stack corrispondente incorporato deve essere in uno dei seguenti stati:DELETE_IN_PROGRESS
DELETE_COMPLETE
oDELETE_FAILED
.
Per continuare il rollback di un aggiornamento (AWS CLI)
-
Utilizza il comando
aws cloudformation continue-update-rollback
con l'opzionestack-name
per specificare l'ID dello stack sul quale desideri continuare a eseguire il rollback.
Utilizzo di ResourcesToSkip
per recuperare una gerarchia di stack nidificati.
Il seguente diagramma mostra una gerarchia di stack nidificati nello stato UPDATE_ROLLBACK_FAILED
. In questo esempio, lo stack root WebInfra
ha due stack nidificati: WebInfra-Compute
e WebInfra-Storage
che dispongono di uno o più stack nidificati.
![Un diagramma che mostra una gerarchia di stack nidificati su tre livelli.](images/cfn-update-stack-continue-update-rollback_nested-stacks.png)
Nota
I nomi di stack in questo esempio vengono troncati per semplicità. I nomi degli stack secondari sono in genere generati CloudFormation e contengono stringhe casuali univoche, pertanto i nomi effettivi potrebbero non essere facili da usare.
Per fare in modo che lo stack root abbia uno stato operabile utilizzando continue-update-rollback
, devi utilizzare il parametro resources-to-skip
per saltare le risorse per le quali non è riuscito il rollback. In questo esempio, resources-to-skip
deve includere i seguenti elementi:
myCustom
WebInfra-Compute-asg.myasg
WebInfra-Calcola-LB. myLoadBalancer
WebInfra-Storage.DB
L'esempio seguente è il AWS CLI comando completo:
$
aws cloudformation continue-update-rollback --stack-name WebInfra \
--resources-to-skip myCustom WebInfra-Compute-Asg.myAsg WebInfra-Compute-LB.myLoadBalancer WebInfra-Storage.DB
Abbiamo specificato risorse da stack nidificati utilizzando il formato
, ma per le risorse dello stack root, ad esempio myCustom, abbiamo specificato solo l'ID logico.NestedStackName
.ResourceLogicalID
Trovare il nome dello stack di uno stack nidificato
Puoi trovare un nome dello stack figlio nell'ID dello stack o nel nome ARN (Amazon Resource Name). Nell'esempio seguente, il nome dello stack è WebInfra-storage-Z2VKC706XKXT:
arn:aws:cloudformation:us-east-1:123456789012:stack/WebInfra-Storage-Z2VKC706XKXT/ea9e7f90-54f7-11e6-a032-028f3d2330bd
Trovare l'ID logico di uno stack nidificato
Puoi trovare l'ID logico dello stack figlio nella definizione del modello del padre. Nel diagramma, LogicalId
di WebInfra-Storage-DB
dello stack figlio è DB nel WebInfra-Storage
padre.
Nella CloudFormation console, puoi anche trovare l'ID logico nella colonna ID logico per la risorsa dello stack nella scheda Risorse o nella scheda Eventi.