

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

# Creazione di uno stack da risorse esistenti
<a name="resource-import-new-stack"></a>

Questo argomento mostra come creare uno stack a partire da AWS risorse esistenti 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:
+ disporre di un modello che descrive tutte le risorse che desideri nel nuovo stack; salvare il modello in locale o in un bucket Amazon S3. 
+ 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-new-stack-example-template)
+ [Crea uno stack dalle risorse esistenti utilizzando il Console di gestione AWS](#resource-import-new-stack-console)
+ [Crea uno stack dalle risorse esistenti utilizzando il AWS CLI](#resource-import-new-stack-cli)

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

In questa procedura dettagliata, supponiamo che tu stia utilizzando il seguente modello di esempio, chiamato`TemplateToImport.json`, che specifica due tabelle DynamoDB che sono state create all'esterno di. CloudFormation `ServiceTable`e `GamesTable` sono gli obiettivi dell'importazione. 

**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",
            "DeletionPolicy": "Retain",
            "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
                }
            }
        }
    }
}
```

## Crea uno stack dalle risorse esistenti utilizzando il Console di gestione AWS
<a name="resource-import-new-stack-console"></a>

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 **Crea stack**, quindi scegli **Con risorse esistenti (risorse di importazione)**.  
![\[L’opzione Crea stack da risorse esistenti nella console.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/images/create-stack-with-existing-resources.png)

1. Leggi la pagina **Panoramica importazione** per un elenco di elementi da fornire durante questa operazione. Quindi, seleziona **Successivo**.

1. Nella pagina **Specifica modello**, fornisci il modello utilizzando uno dei metodi descritti di seguito, quindi scegli **Successivo**.
   + Scegli **URL Amazon S3**, quindi specificare 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**, modifica i parametri, quindi scegli **Successivo**. Questo crea automaticamente un set di modifiche.
**Importante**  
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**, conferma che vengano importate le risorse corrette, quindi scegli Importa risorse.** In questo modo si esegue automaticamente il set di modifiche creato nell’ultimo passaggio.

   Per il nuovo stack viene visualizzato il riquadro **Eventi** della pagina **Dettagli 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. In questa spiegazione passo per passo, vengono corrette le configurazioni dei modelli in modo che corrispondano alle configurazioni effettive.

   1. [Ripristina l’operazione di importazione](resource-import-revert.md#resource-import-revert-console) per le risorse interessate.

   1. Aggiungi nuovamente le destinazioni di importazione al modello, assicurandoti che le configurazioni del modello corrispondano alle configurazioni effettive.

   1. Ripeti i passaggi 2-8 utilizzando il modello modificato per importare nuovamente le risorse.

## Crea uno stack a partire da risorse esistenti utilizzando il AWS CLI
<a name="resource-import-new-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 delle risorse attuali del modello e dei relativi identificatori univoci nel seguente formato della stringa JSON.

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

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

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

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

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"}},{"ResourceType":"AWS::DynamoDB::Table","LogicalResourceId":"ServiceTable","ResourceIdentifier":{"TableName":"Service"}}]'
   ```
**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. 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, consulta [Rilevamento della deviazione su singole risorse di stack](detect-drift-resource.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. In questa spiegazione passo per passo, vengono corrette le configurazioni dei modelli in modo che corrispondano alle configurazioni effettive.

   1. [Ripristina l’operazione di importazione](resource-import-revert.md#resource-import-revert-cli) per le risorse interessate.

   1. Aggiungi nuovamente le destinazioni di importazione al modello, assicurandoti che le configurazioni del modello corrispondano alle configurazioni effettive.

   1. Ripeti i passaggi 3-6 utilizzando il modello modificato per importare nuovamente le risorse.