

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 name="using-cfn-updating-stacks-continueupdaterollback"></a>

A volte, quando CloudFormation tenta di ripristinare un aggiornamento dello stack, non riesce a ripristinare tutte le modifiche apportate durante il processo di aggiornamento. Questa operazione è chiamata stato `UPDATE_ROLLBACK_FAILED`. 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 con lo stato `UPDATE_ROLLBACK_FAILED` non può essere aggiornato, ma è possibile eseguire il rollback a uno stato di funzionamento (`UPDATE_ROLLBACK_COMPLETE`). Dopo aver ripristinato le impostazioni originali dello stack, puoi provare nuovamente ad aggiornarlo.

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)**

1. Accedi a Console di gestione AWS e apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformazione.](https://console.aws.amazon.com/cloudformation/)

1. Nella barra di navigazione nella parte superiore dello schermo, scegli Regione AWS dove si trova lo stack.

1. Nella pagina **Stack**, seleziona lo stack che desideri aggiornare, scegli **Operazioni stack**, poi scegli **Continua il ripristino dello stato precedente l’aggiornamento**.

   Se nessuna delle soluzioni [Risoluzione degli errori](troubleshooting.md#troubleshooting-errors) funziona, puoi utilizzare l'opzione avanzata per saltare le risorse che non CloudFormation possono essere ripristinate correttamente. È necessario [cercare e digitare](cfn-console-view-stack-data-resources.md) la logica IDs delle risorse che si desidera ignorare. Specifica solo le risorse con stato `UPDATE_FAILED` durante `UpdateRollback` 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: `NestedStackName.ResourceLogicalID`. Se desideri specificare l'ID logico di una risorsa stack (`Type: AWS::CloudFormation::Stack`) nell'elenco `ResourcesToSkip`, lo stack corrispondente incorporato deve essere in uno dei seguenti stati: `DELETE_IN_PROGRESS``DELETE_COMPLETE` o `DELETE_FAILED`.

**Per continuare il rollback di un aggiornamento (AWS CLI)**
+ Usa il comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html) con l’opzione `--stack-name` per specificare l’ID dello stack sul quale desideri continuare a eseguire il rollback.

## Continuare il rollback da aggiornamenti non riusciti di stack nidificati
<a name="nested-stacks"></a>

Quando disponi di più stack nidificati l’uno all’interno dell’altro, potresti dover ignorare risorse in più livelli nidificati per far tornare l’intera gerarchia dello stack a uno stato di funzionamento. 

Ad esempio, disponi di uno stack root chiamato `WebInfra` che contiene all’interno due stack più piccoli, `WebInfra-Compute` e `WebInfra-Storage`. Anche questi due stack hanno altri stack nidificati al loro interno.

Se si verifica un errore durante un aggiornamento e il relativo processo non va a buon fine, l’intera gerarchia dello stack potrebbe entrare nello stato `UPDATE_ROLLBACK_FAILED`, come illustrato nel seguente diagramma. 

![\[Un diagramma che mostra una gerarchia di stack nidificati su tre livelli.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/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 torni in uno stato di funzionamento con il comando `continue-update-rollback`, devi utilizzare l’opzione `--resources-to-skip` per ignorare le risorse per le quali il rollback non è riuscito.

L’esempio **continue-update-rollback** seguente riprende un’operazione di rollback da un aggiornamento dello stack precedentemente non riuscito. In questo esempio, l’opzione `--resources-to-skip` include i seguenti elementi:
+ `myCustom`
+ `WebInfra-Compute-Asg.myAsg`
+ `WebInfra-Compute-LB.myLoadBalancer`
+ `WebInfra-Storage.DB`

Per le risorse dello stack root, devi fornire solamente l’ID logico, ad esempio `myCustom`. Tuttavia, per le risorse contenute negli stack nidificati, devi fornire sia il nome che l’ID logico dello stack nidificato, separati da un punto. Ad esempio, `WebInfra-Compute-Asg.myAsg`.

```
aws cloudformation continue-update-rollback --stack-name WebInfra \
    --resources-to-skip myCustom WebInfra-Compute-Asg.myAsg WebInfra-Compute-LB.myLoadBalancer WebInfra-Storage.DB
```

**Per trovare il nome dello stack di uno stack nidificato**  
Puoi trovarlo all’interno dell’ID stack o nel nome della risorsa Amazon (ARN) dello stack figlio.

Il seguente ARN di esempio fa riferimento a uno stack chiamato `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 nidificato**  
Puoi trovare l'ID logico dello stack figlio nella definizione del modello del padre. Nel diagramma, il `LogicalId` dello stack figlio `WebInfra-Storage-DB` è `DB` nel padre `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](cfn-console-view-stack-data-resources.md).