

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à.

# Risoluzione della deviazione con un’operazione di importazione
<a name="resource-import-resolve-drift"></a>

Ci possono essere casi in cui la configurazione di una risorsa ha deviato dalla configurazione prevista e si desidera accettare la nuova configurazione come configurazione prevista. Nella maggior parte dei casi, è possibile risolvere i risultati della deviazione aggiornando la definizione della risorsa nel modello di stack con una nuova configurazione e quindi eseguire un aggiornamento dello stack. Tuttavia, se la nuova configurazione aggiorna una proprietà della risorsa che richiede la sostituzione, la risorsa verrà ricreata durante l’aggiornamento dello stack. Se si desidera mantenere la risorsa esistente, è possibile utilizzare la funzionalità di importazione delle risorse per aggiornare la risorsa e risolvere i risultati della deviazione senza causare la sostituzione della risorsa.

La risoluzione della deviazione per una risorsa tramite un’operazione di importazione consiste nelle fasi di base riportate di seguito.
+ [Aggiungi un DeletionPolicy attributo, impostato su Retain, alla risorsa](#resource-import-resolve-drift-console-step-01-update-stack). In questo modo la risorsa esistente viene mantenuta anziché eliminata quando viene rimossa dallo stack.
+ [Rimuovere la risorsa dal modello ed eseguire un’operazione di aggiornamento dello stack](#resource-import-resolve-drift-console-step-02-remove-drift). Questa operazione rimuove la risorsa dallo stack, ma non la elimina.
+ [Descrivere lo stato effettivo della risorsa nel modello di stack e quindi importare nuovamente la risorsa esistente nello stack](#resource-import-resolve-drift-console-step-03-update-template). Questa operazione aggiunge nuovamente la risorsa nello stack e risolve le differenze di proprietà che causavano i risultati di deviazione.

Per ulteriori informazioni sull’importazione delle risorse, consulta [Importazione AWS manuale delle risorse in uno CloudFormation stack](import-resources-manually.md). Per un elenco di risorse che supportano l’importazione, consulta [Supporto del tipo di risorse](resource-import-supported-resources.md).

In questo esempio, viene utilizzato il modello seguente, denominato `templateToImport.json`.

------
#### [ Example JSON ]

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Import test",
    "Resources": {
         "ServiceTable":{
           "Type":"AWS::DynamoDB::Table",
           "Properties":{
              "TableName":"Service",
              "AttributeDefinitions":[
                 {
                    "AttributeName":"key",
                    "AttributeType":"S"
                 }
              ],
              "KeySchema":[
                 {
                    "AttributeName":"key",
                    "KeyType":"HASH"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "ProvisionedThroughput":{
                 "ReadCapacityUnits":5,
                 "WriteCapacityUnits":1
              }
           }
        },
        "GamesTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "TableName": "Games",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PROVISIONED",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        }
    }
}
```

------
#### [ Example YAML ]

```
AWSTemplateFormatVersion: 2010-09-09
Description: Import test
Resources:
  ServiceTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Service
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
  GamesTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Games
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
```

------

In questo esempio, supponiamo che un utente abbia modificato una risorsa esterna a CloudFormation. Dopo aver eseguito il rilevamento della deviazione, abbiamo scoperto che è `GamesTable` stato modificato da `BillingMode` in `PAY_PER_REQUEST`. Per ulteriori informazioni sul rilevamento delle deviazioni, consulta [Rileva le modifiche non gestite della configurazione di stack e risorse con il rilevamento della deviazione](using-cfn-stack-drift.md).

![\[I risultati della deviazione mostrano i risultati previsti ed effettivi nella console.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/images/drift-results-gamestable.png)


Il nostro stack è ora obsoleto, le nostre risorse sono attive, ma vogliamo preservare la configurazione delle risorse desiderata. Possiamo farlo risolvendo la deviazione attraverso un’operazione di importazione, senza interrompere i servizi.

## Risolvi la deriva con un'operazione di importazione utilizzando la console CloudFormation
<a name="resource-import-resolve-drift-console"></a>

### Passaggio 1. Aggiornare lo stack con la policy di eliminazione Retain
<a name="resource-import-resolve-drift-console-step-01-update-stack"></a>

**Per aggiornare lo stack utilizzando un attributo `DeletionPolicy` con l’opzione `Retain`**

1. Accedi 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 pagina **Stack** scegliere lo stack che ha deviato.

1. Scegliere **Aggiorna**, quindi **Sostituisci modello corrente** dal riquadro dei dettagli dello stack.

1. Nella pagina **Specifica modello** fornire il modello aggiornato contenente l’attributo `DeletionPolicy` con l’opzione `Retain` utilizzando uno dei seguenti metodi:
   + Scegliere **URL Amazon S3**, quindi specificare l’URL per il tuo modello nella casella di testo.
   + Scegliere **Carica un file modello**, quindi cercare il modello.

   Quindi, seleziona **Successivo**.

1. Esaminare la pagina **Specifica dettagli stack** e scegliere **Avanti**.

1. Esaminare la pagina **Configura opzioni stack** e scegliere **Avanti**.

1. **Nella *stack-name* pagina di **revisione**, scegli Update stack.**

*Risultati*: nella pagina **Eventi** dello stack, lo stato è `UPDATE_COMPLETE`.

Per risolvere il problema della deriva derivante da un'operazione di importazione, senza interrompere i servizi, specificate a `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)per le risorse che desiderate rimuovere dallo stack. Nell'esempio seguente, abbiamo aggiunto un [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html)attributo, set to`Retain`, alla risorsa. `GamesTable`

------
#### [ Example JSON ]

```
    "GamesTable": {
        "Type": "AWS::DynamoDB::Table",
        "DeletionPolicy": "Retain",
        "Properties": {
            "TableName": "Games",
```

------
#### [ Example YAML ]

```
  GamesTable:
    Type: AWS::DynamoDB::Table
    DeletionPolicy: Retain
    Properties:
      TableName: Games
```

------

### Passaggio 2. Rimozione delle risorse deviate, dei parametri correlati e degli output
<a name="resource-import-resolve-drift-console-step-02-remove-drift"></a>

**Per rimuovere le risorse deviate, i parametri correlati e gli output**

1. Scegliere **Aggiorna**, quindi **Sostituisci modello corrente** dal riquadro dei dettagli dello stack.

1. Nella pagina **Specifica modello** fornire al modello aggiornato le risorse, i parametri correlati e gli output rimossi dal modello di stack utilizzando uno dei seguenti metodi:
   + Scegliere **URL Amazon S3**, quindi specificare l’URL per il tuo modello nella casella di testo.
   + Scegliere **Carica un file modello**, quindi cercare il modello.

   Quindi, seleziona **Successivo**.

1. Esaminare la pagina **Specifica dettagli stack** e scegliere **Avanti**.

1. Esaminare la pagina **Configura opzioni stack** e scegliere **Avanti**.

1. Nella *stack-name* pagina **Revisione**, scegli **Aggiorna stack**.

*Risultati*: **ID logico** `GamesTable` ha lo stato `DELETE_SKIPPED` nella pagina **Events Eventi** dello stack.

Attendi il CloudFormation completamento dell'operazione di aggiornamento dello stack. Al termine dell’operazione di aggiornamento dello stack, rimuovere la risorsa, i parametri correlati e gli output dal modello di stack. Quindi, importare il modello aggiornato. Dopo aver completato queste operazioni, il modello di esempio sarà simile al seguente.

------
#### [ Example JSON ]

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Import test",
    "Resources": {
         "ServiceTable":{
           "Type":"AWS::DynamoDB::Table",
           "Properties":{
              "TableName":"Service",
              "AttributeDefinitions":[
                 {
                    "AttributeName":"key",
                    "AttributeType":"S"
                 }
              ],
              "KeySchema":[
                 {
                    "AttributeName":"key",
                    "KeyType":"HASH"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "ProvisionedThroughput":{
                 "ReadCapacityUnits":5,
                 "WriteCapacityUnits":1
              }
           }
        }
    }
}
```

------
#### [ Example YAML ]

```
AWSTemplateFormatVersion: 2010-09-09
Description: Import test
Resources:
  ServiceTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Service
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
```

------

### Fase 3. Aggiornamento del modello in modo che corrisponda allo stato attivo delle risorse
<a name="resource-import-resolve-drift-console-step-03-update-template"></a>

**Per aggiornare il modello in modo che corrisponda allo stato attivo delle risorse**

1. Per importare il modello aggiornato, scegliere **Operazioni stack** quindi scegliere **Importa risorse nello stack**.  
![\[L’opzione Importa risorse nello stack nella console.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/images/stack-actions-import.png)

1. Esaminare la pagina **Panoramica importazione** per un elenco di elementi da fornire durante questa operazione, quindi scegliere **Avanti**.

1. Nella pagina **Specifica modello**, fornire il modello aggiornato utilizzando uno dei metodi descritti di seguito.
   + Scegliere **URL Amazon S3**, quindi specificare l’URL per il tuo modello nella casella di testo.
   + Scegliere **Carica un file modello**, quindi cercare il modello.

   Quindi, seleziona **Successivo**.

1. Nella pagina **Identifica risorse**, identifica ogni risorsa di destinazione. Per ulteriori informazioni, consulta [Identificatori di risorse](import-resources-manually.md#resource-import-identifiers-unique-ids).

   1. In **Proprietà identificatore**, scegliere il tipo di identificatore di risorsa. Ad esempio, la proprietà `TableName` identificherà la risorsa `AWS::DynamoDB::Table`.

   1. In **Valore identificatore**, immettere il valore effettivo della proprietà. Nel modello di esempio, `TableName` per la risorsa `GamesTable` è `Games`.

   1. Scegli **Successivo**.

1. Esaminare la pagina **Specifica dettagli** stack e scegliere **Avanti**.

1. Nella pagina **Panoramica importazione** esaminare le risorse importate, quindi scegliere **Importa risorse**. Questa operazione importerà il tipo di risorsa `AWS::DynamoDB::Table` nello stack.

*Risultati*: in questo esempio, è stata risolta la deviazione delle risorse attraverso un’operazione di importazione, senza interrompere i servizi. Puoi controllare lo stato di avanzamento di un'azione di importazione nella CloudFormation console nella scheda Eventi. Le risorse importate avranno uno stato `IMPORT_COMPLETE` seguito da uno stato `CREATE_COMPLETE` con **Importazione risorse completata** come motivo dello stato.

Attendi il CloudFormation completamento dell'operazione di aggiornamento dello stack. Al termine dell’operazione di aggiornamento dello stack, aggiornare il modello in modo che corrisponda allo stato effettivo di deviazione delle risorse. Ad esempio, `BillingMode` verrà impostato su `PAY_PER_REQUEST` e `ReadCapacityUnits` e `WriteCapacityUnits` saranno impostati su `0`.

------
#### [ Example JSON ]

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Description": "Import test",
    "Resources": {
         "ServiceTable":{
           "Type":"AWS::DynamoDB::Table",
           "Properties":{
              "TableName":"Service",
              "AttributeDefinitions":[
                 {
                    "AttributeName":"key",
                    "AttributeType":"S"
                 }
              ],
              "KeySchema":[
                 {
                    "AttributeName":"key",
                    "KeyType":"HASH"
                 }
              ],
              "BillingMode": "PROVISIONED",
              "ProvisionedThroughput":{
                 "ReadCapacityUnits":5,
                 "WriteCapacityUnits":1
              }
           }
        },
        "GamesTable": {
            "Type": "AWS::DynamoDB::Table",
            "DeletionPolicy": "Retain",
            "Properties": {
                "TableName": "Games",
                "AttributeDefinitions": [
                    {
                        "AttributeName": "key",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "key",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PAY_PER_REQUEST",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 0,
                    "WriteCapacityUnits": 0
                }
            }
        }
    }
}
```

------
#### [ Example YAML ]

```
AWSTemplateFormatVersion: 2010-09-09
Description: Import test
Resources:
  ServiceTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: Service
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PROVISIONED
      ProvisionedThroughput:
        ReadCapacityUnits: 5
        WriteCapacityUnits: 1
  GamesTable:
    Type: AWS::DynamoDB::Table
    DeletionPolicy: Retain
    Properties:
      TableName: Games
      AttributeDefinitions:
        - AttributeName: key
          AttributeType: S
      KeySchema:
        - AttributeName: key
          KeyType: HASH
      BillingMode: PAY_PER_REQUEST
      ProvisionedThroughput:
        ReadCapacityUnits: 0
        WriteCapacityUnits: 0
```

------