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
A volte, quando CloudFormation tenta di ripristinare un aggiornamento dello stack, non riesce a ripristinare tutte le modifiche apportate durante il processo di aggiornamento. Questo si chiama UPDATE_ROLLBACK_FAILED
stato. 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, presume che l'istanza database sia ancora disponibile e tenta di eseguire il rollback, provocando un errore nel rollback di aggiornamento.
Uno stack nello UPDATE_ROLLBACK_FAILED
stato non può essere aggiornato, ma può essere ripristinato a uno stato funzionante ()UPDATE_ROLLBACK_COMPLETE
. Dopo aver riportato lo stack alle impostazioni originali, puoi provare ad aggiornarlo nuovamente.
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)
Accedi AWS Management Console e apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformazione.
-
Nella barra di navigazione nella parte superiore dello schermo, scegli Regione AWS dove si trova lo stack.
-
Nella pagina Stack, scegli lo stack che desideri aggiornare, scegli Stack actions, quindi scegli Continua il rollback degli aggiornamenti.
Se nessuna delle soluzioni Risoluzione degli errori funziona, puoi utilizzare l'opzione avanzata per ignorare le risorse che non CloudFormation possono essere ripristinate correttamente. È necessario cercare e digitare la logica IDs delle risorse che si desidera 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)
-
Utilizzo dell'continue-update-rollbackcomando con la
--stack-name
possibilità di specificare l'ID dello stack di cui si desidera continuare a ripristinare.
Continua il rollback dopo gli aggiornamenti dello stack annidato non riusciti
Quando sono presenti più stack annidati l'uno nell'altro, potrebbe essere necessario ignorare le risorse su più livelli nidificati per riportare l'intera gerarchia degli stack allo stato operativo.
Ad esempio, avete uno stack root chiamato WebInfra
che contiene due stack più piccoli al suo interno: and. WebInfra-Compute
WebInfra-Storage
Questi due stack hanno anche i propri stack annidati al loro interno.
Se qualcosa va storto durante un aggiornamento e il processo di aggiornamento fallisce, l'intera gerarchia degli stack potrebbe finire UPDATE_ROLLBACK_FAILED
nello stato, come illustrato nel diagramma seguente.
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 rendere lo stack principale utilizzabile utilizzando il continue-update-rollback
comando, è necessario utilizzare l'--resources-to-skip
opzione per ignorare le risorse per le quali non è stato possibile eseguire il rollback.
L'continue-update-rollbackesempio seguente riprende un'operazione di rollback da un aggiornamento dello stack precedentemente non riuscito. In questo esempio, l'--resources-to-skip
opzione include i seguenti elementi:
-
myCustom
-
WebInfra-Compute-Asg.myAsg
-
WebInfra-Compute-LB.myLoadBalancer
-
WebInfra-Storage.DB
Per le risorse dello stack principale, è sufficiente fornire l'ID logico,
ad esempio. Tuttavia, per le risorse contenute negli stack nidificati, è necessario fornire sia il nome dello stack nidificato che il relativo ID logico, separati da un punto. Ad esempio myCustom
.WebInfra-Compute-Asg.myAsg
aws cloudformation continue-update-rollback --stack-name
WebInfra
\ --resources-to-skipmyCustom WebInfra-Compute-Asg.myAsg WebInfra-Compute-LB.myLoadBalancer WebInfra-Storage.DB
Per trovare il nome dello stack di uno stack nidificato
Puoi individuarlo nell'ID dello stack secondario o nell'Amazon Resource Name ()ARN.
L'ARNesempio seguente si riferisce a uno stack denominato. WebInfra-Storage-Z2VKC706XKXT
arn:aws:cloudformation:us-east-1:123456789012:stack/WebInfra-Storage-Z2VKC706XKXT/ea9e7f90-54f7-11e6-a032-028f3d2330bd
Per trovare l'ID logico di uno stack annidato
Puoi trovare l'ID logico dello stack figlio nella definizione del modello del padre. Nel diagramma, lo stack LogicalId
WebInfra-Storage-DB
secondario si trova DB
nello stack principale. WebInfra-Storage
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. Per ulteriori informazioni, consulta Visualizza le informazioni sullo stack dalla console CloudFormation .