

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

# Importazione di risorse esistenti in uno stack
<a name="resource-import-existing-stack"></a>

Questo argomento mostra come importare AWS risorse esistenti in uno stack esistente descrivendole in un modello. Per cercare invece le risorse esistenti e generare automaticamente un modello da utilizzare per importare risorse esistenti CloudFormation o replicare le risorse in un nuovo account, consulta. [Generazione di modelli da risorse esistenti con il generatore IaC](generate-IaC.md)

**Prerequisiti**

Prima di iniziare, devi:
+ Un modello che descrive l’intero stack, incluse le risorse che fanno già parte dello stack e le risorse da importare. Salva il modello in locale o in un bucket Amazon S3. 

  **Per ottenere una copia del modello di uno stack in esecuzione**

  1. Apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformation/](https://console.aws.amazon.com/cloudformation/).

  1. Dagli elenchi di stack, scegli lo stack da cui recuperare il modello.

  1. Nel riquadro dei dettagli dello stack, scegli la scheda **Modello**, quindi scegli **Copia negli appunti**.

  1. Incolla il codice in un editor di testo per iniziare ad aggiungere altre risorse al modello.
+ Per ogni risorsa che desideri importare, includi:
  + le proprietà e i valori delle proprietà che definiscono la configurazione corrente della risorsa;
  + l’identificativo univoco per la risorsa, ad esempio il nome della risorsa. Per ulteriori informazioni, consulta [Identificatori di risorse](import-resources-manually.md#resource-import-identifiers-unique-ids).
  + gli [Attributi della DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html).

**Topics**
+ [Modello di esempio](#resource-import-existing-stack-example-template)
+ [Importa una risorsa esistente in uno stack utilizzando il Console di gestione AWS](#resource-import-existing-stack-console)
+ [Importa una risorsa esistente in una pila utilizzando il AWS CLI](#resource-import-existing-stack-cli)

## Modello di esempio
<a name="resource-import-existing-stack-example-template"></a>

In questa procedura guidata, supponiamo che tu stia utilizzando il seguente modello di esempio, chiamato `TemplateToImport.json`, che specifica due tabelle DynamoDB. `ServiceTable` è attualmente parte dello stack e `GamesTable` è la tabella che desideri importare.

**Nota**  
Questo modello è inteso solo come esempio. Per utilizzarlo per scopi di test, sostituisci le risorse di esempio con le risorse del tuo account. 

```
{
    "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"
                    }
                ],
                "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"
                    }
                ],
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 1
                }
            }
        }
    }
}
```

## Importa una risorsa esistente in uno stack utilizzando il Console di gestione AWS
<a name="resource-import-existing-stack-console"></a>

**Nota**  
La CloudFormation console non supporta l'uso della funzione intrinseca `Fn::Transform` durante l'importazione di risorse. È possibile utilizzare il AWS CLI per importare risorse che utilizzano la funzione. `Fn::Transform`

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**, scegli lo stack in cui importare le risorse.

1. Scegli **Operazioni stack**, quindi scegli **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. Rivedi la pagina **Panoramica importazione**, quindi scegli **Successivo**.

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

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**, scegli il tipo di identificatore di risorsa. Ad esempio, la risorsa `AWS::DynamoDB::Table` può essere identificata utilizzando la proprietà `TableName`.

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

   1. Scegli **Successivo**.

1. Nella pagina **Specifica dettagli stack**, aggiorna i parametri, quindi scegli **Successivo**. Questo crea automaticamente un set di modifiche.
**Nota**  
L’operazione di importazione ha esito negativo se si modificano i parametri esistenti che iniziano un’operazione di creazione, aggiornamento o eliminazione.

1. **Nella *stack-name* pagina **Revisione**, esamina le risorse da importare, quindi scegli Importa risorse.** In questo modo si esegue automaticamente il set di modifiche creato nell’ultimo passaggio. Tutti i tag a livello di stack vengono applicati alle risorse importate in questo momento. Per ulteriori informazioni, consulta [Configurazione delle opzioni dello stack](cfn-console-create-stack.md#configure-stack-options).

   Viene visualizzata la pagina **Eventi** per lo stack.  
![\[La scheda Eventi nella console.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/images/import-events.png)

1. (Facoltativo) Esegui il rilevamento della deviazione nello stack per assicurarti che il modello e la configurazione effettiva delle risorse importate corrispondano. Per ulteriori informazioni sul rilevamento delle deviazioni, consulta [Rileva la deriva su un'intera CloudFormation pila](detect-drift-stack.md).

1. (Facoltativo) Se le risorse importate non corrispondono alle configurazioni dei modelli previste, correggi le configurazioni dei modelli o aggiorna direttamente le risorse. Per ulteriori informazioni sull’importazione delle risorse con deviazioni, consulta [Risoluzione della deviazione con un’operazione di importazione](resource-import-resolve-drift.md).

## Importa una risorsa esistente in una pila utilizzando il AWS CLI
<a name="resource-import-existing-stack-cli"></a>

1. Per scoprire quali proprietà identificano ogni tipo di risorsa nel modello, esegui il comando **get-template-summary**, specificando l’URL S3 del modello. Ad esempio, la risorsa `AWS::DynamoDB::Table` può essere identificata utilizzando la proprietà `TableName`. Per la risorsa `GamesTable` nel modello di esempio, il valore di `TableName` è `Games`. Queste informazioni ti serviranno nella fase successiva.

   ```
   aws cloudformation get-template-summary \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json
   ```

   Per ulteriori informazioni, consulta [Identificatori di risorse](import-resources-manually.md#resource-import-identifiers-unique-ids).

1. Componi un elenco di risorse attuali da importare e di relativi identificatori univoci nel seguente formato della stringa JSON.

   ```
   [{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]
   ```

   In alternativa, puoi specificare i parametri formattati JSON in un file di configurazione. 

   Ad esempio, per importare`GamesTable`, è possibile creare un *ResourcesToImport.txt* file che contenga la seguente configurazione.

   ```
   [
     {
         "ResourceType":"AWS::DynamoDB::Table",
         "LogicalResourceId":"GamesTable",
         "ResourceIdentifier": {
           "TableName":"Games"
         }
     }
   ]
   ```

1. Per creare un set di modifiche, utilizza il seguente comando **create-change-set** e sostituisci il testo segnaposto. Per l’opzione `--change-set-type`, specifica il valore di **IMPORT**. Per l’opzione `--resources-to-import`, sostituisci la stringa JSON di esempio con la stringa JSON effettiva che hai appena creato.

   ```
   aws cloudformation create-change-set \
       --stack-name TargetStack --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-url https://amzn-s3-demo-bucket.s3.us-west-2.amazonaws.com/TemplateToImport.json \
       --resources-to-import '[{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"GamesTable","ResourceIdentifier":{"TableName":"Games"}}]'
   ```
**Nota**  
`--resources-to-import` non supporta YAML in linea. I requisiti per l’escape delle virgolette nella stringa JSON variano in base al terminale. Per ulteriori informazioni, consulta [Utilizzo di virgolette all’interno di stringhe](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html#cli-usage-parameters-quoting-strings-containing) nella *Guida per l’utente di AWS Command Line Interface *.

   In alternativa, è possibile anche utilizzare l’URL del file come input per l’opzione `--resources-to-import`, come mostrato nell’esempio seguente.

   ```
   --resources-to-import file://ResourcesToImport.txt
   ```

1. Esamina il set di modifiche per assicurarti che vengano importate le risorse corrette.

   ```
   aws cloudformation describe-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. Per avviare il set di modifiche e importare le risorse, utilizza il seguente comando **execute-change-set** e sostituisci il testo segnaposto. Tutti i tag a livello di stack vengono applicati alle risorse importate in questo momento. Per ulteriori informazioni, consulta [Configurazione delle opzioni dello stack](cfn-console-create-stack.md#configure-stack-options). Al completamento dell’operazione `(IMPORT_COMPLETE)`, le risorse vengono importate correttamente.

   ```
   aws cloudformation execute-change-set \
       --change-set-name ImportChangeSet --stack-name TargetStack
   ```

1. (Facoltativo) Esegui il rilevamento della deviazione sullo stack `IMPORT_COMPLETE` per assicurarti che il modello e la configurazione effettiva delle risorse importate corrispondano. Per ulteriori informazioni sul rilevamento delle deviazioni, consulta [Rileva la deriva su un'intera CloudFormation pila](detect-drift-stack.md).

   1. Esegui il rilevamento della deriva sullo stack specificato.

      ```
      aws cloudformation detect-stack-drift --stack-name TargetStack
      ```

      Se eseguito correttamente, il comando restituirà il seguente output di esempio.

      ```
      { "Stack-Drift-Detection-Id" : "624af370-311a-11e8-b6b7-500cexample" }
      ```

   1. Visualizza lo stato di avanzamento di un’operazione di rilevamento della deriva per l’ID di rilevamento della deriva dello stack specificato.

      ```
      aws cloudformation describe-stack-drift-detection-status \
          --stack-drift-detection-id 624af370-311a-11e8-b6b7-500cexample
      ```

   1. Visualizza le informazioni di deviazione per le risorse la cui deviazione è stata controllata all’interno dello stack specificato.

      ```
      aws cloudformation describe-stack-resource-drifts --stack-name TargetStack
      ```

1. (Facoltativo) Se le risorse importate non corrispondono alle configurazioni dei modelli previste, correggi le configurazioni dei modelli o aggiorna direttamente le risorse. Per ulteriori informazioni sull’importazione delle risorse con deviazioni, consulta [Risoluzione della deviazione con un’operazione di importazione](resource-import-resolve-drift.md).