

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

# Nidificazione di uno stack esistente
<a name="resource-import-nested-stacks"></a>

Utilizzare la funzionalità `resource import` per nidificare uno stack esistente all’interno di un altro stack esistente. Gli stack nidificati sono componenti comuni che l’utente dichiara e vi fa riferimento all’interno di altri modelli. In questo modo, è possibile evitare di copiare e incollare le stesse configurazioni nei modelli e semplificare gli aggiornamenti dello stack. Se si dispone di un modello per un componente comune, è possibile utilizzare la risorsa `AWS::CloudFormation::Stack` per fare riferimento a questo modello da un altro modello. Per ulteriori informazioni sugli stack nidificati, consulta [Dividi un modello in pezzi riutilizzabili usando stack nidificati](using-cfn-nested-stacks.md).

CloudFormation supporta solo un livello di nidificazione. `resource import` Ciò significa che non è possibile importare uno stack in uno stack figlio o importare uno stack con figli.

Se non hai mai effettuato l’importazione, ti consigliamo di esaminare prima le informazioni introduttive nella sezione [Importazione AWS manuale delle risorse in uno CloudFormation stack](import-resources-manually.md).

## Convalida dell’importazione dello stack nidificato
<a name="resource-import-nested-stacks-validation"></a>

Durante un'operazione di importazione di stack annidati, CloudFormation esegue le seguenti convalide.
+ La definizione `AWS::CloudFormation::Stack` nidificata nel modello di stack padre corrisponde al modello dello stack nidificato effettivo.
+ I tag per la definizione `AWS::CloudFormation::Stack` nidificata nel modello di stack padre corrispondono ai tag per la risorsa stack nidificata effettiva.

## Annidate uno stack esistente utilizzando il Console di gestione AWS
<a name="resource-import-nested-stacks-console"></a>

1. Aggiungi la `AWS::CloudFormation::Stack` risorsa al modello dello stack principale con un. `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html) Nel seguente modello di stack padre di esempio, `MyNestedStack` è la destinazione dell’importazione.

   **JSON**

   ```
   {
     "AWSTemplateFormatVersion" : "2010-09-09",
     "Resources" : {
       "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
       "MyNestedStack" : {
         "Type" : "AWS::CloudFormation::Stack",
         "DeletionPolicy": "Retain",
         "Properties" : {
         "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template",
           "Parameters" : {
             "InstanceType" : "t1.micro",
             "KeyName" : "mykey"
           }
         }
       }
     }
   }
   ```

   **YAML**

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     ServiceTable:
       Type: AWS::DynamoDB::Table
       Properties:
         TableName: Service
         AttributeDefinitions:
           - AttributeName: key
             AttributeType: S
         KeySchema:
           - AttributeName: key
             KeyType: HASH
         ProvisionedThroughput:
           ReadCapacityUnits: 5
           WriteCapacityUnits: 1
     MyNestedStack:
       Type: AWS::CloudFormation::Stack
       DeletionPolicy: Retain
       Properties:
         TemplateURL: >-
           https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
         Parameters:
           InstanceType: t1.micro
           KeyName: mykey
   ```

1. Apri la CloudFormation console.

1. Nella pagina **Stack** con lo stack padre selezionato, 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. Leggere la pagina **Panoramica importazione** per un elenco di elementi da fornire durante questa operazione. Quindi, seleziona **Successivo**.

1. Nella pagina **Specifica modello**, fornire il modello padre aggiornato utilizzando uno dei metodi descritti di seguito, quindi scegliere **Successivo**.
   + 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.

1. Nella pagina **Identifica risorse**, identifica la risorsa `AWS::CloudFormation::Stack`.

   1. In **Proprietà identificatore**, scegliere il tipo di identificatore di risorsa. Ad esempio, una risorsa `AWS::CloudFormation::Stack` può essere identificata utilizzando la proprietà `StackId`.

   1. In **Valore identificatore**, digita l’ARN dello stack che stai importando. Ad esempio, `arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10`.  
![\[La pagina relativa all’identificazione delle risorse nella console.\]](http://docs.aws.amazon.com/it_it/AWSCloudFormation/latest/UserGuide/images/resource-import-stackid.png)

   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 *MyParentStack* pagina **Revisione**, conferma che sia stata importata la risorsa corretta, 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.

1. Per lo stack padre 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)
**Nota**  
Non è necessario eseguire il rilevamento della deviazione nello stack padre dopo questa operazione di importazione perché la risorsa `AWS::CloudFormation::Stack` era già gestita da CloudFormation.

## Annidate uno stack esistente utilizzando il AWS CLI
<a name="resource-import-nested-stacks-cli"></a>

1. Aggiungi la `AWS::CloudFormation::Stack` risorsa al modello dello stack principale con un. `Retain` [DeletionPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html) Nel seguente modello padre di esempio, `MyNestedStack` è la destinazione dell’importazione.

   **JSON**

   ```
   {
     "AWSTemplateFormatVersion" : "2010-09-09",
     "Resources" : {
       "ServiceTable":{
              "Type":"AWS::DynamoDB::Table",
              "Properties":{
                 "TableName":"Service",
                 "AttributeDefinitions":[
                    {
                       "AttributeName":"key",
                       "AttributeType":"S"
                    }
                 ],
                 "KeySchema":[
                    {
                       "AttributeName":"key",
                       "KeyType":"HASH"
                    }
                 ],
                 "ProvisionedThroughput":{
                    "ReadCapacityUnits":5,
                    "WriteCapacityUnits":1
                 }
              }
           },
       "MyNestedStack" : {
         "Type" : "AWS::CloudFormation::Stack",
         "DeletionPolicy": "Retain",
         "Properties" : {
         "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template",
           "Parameters" : {
             "InstanceType" : "t1.micro",
             "KeyName" : "mykey"
           }
         }
       }
     }
   }
   ```

   **YAML**

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Resources:
     ServiceTable:
       Type: AWS::DynamoDB::Table
       Properties:
         TableName: Service
         AttributeDefinitions:
           - AttributeName: key
             AttributeType: S
         KeySchema:
           - AttributeName: key
             KeyType: HASH
         ProvisionedThroughput:
           ReadCapacityUnits: 5
           WriteCapacityUnits: 1
     MyNestedStack:
       Type: AWS::CloudFormation::Stack
       DeletionPolicy: Retain
       Properties:
         TemplateURL: >-
           https://s3.amazonaws.com/cloudformation-templates-us-east-2/EC2ChooseAMI.template
         Parameters:
           InstanceType: t1.micro
           KeyName: mykey
   ```

1. Componi una stringa JSON come mostrato nell’esempio seguente, con queste modifiche: 
   + Sostituisci *MyNestedStack* con l'ID logico della risorsa di destinazione come specificato nel modello.
   + Sostituisci *arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10* con l'ARN dello stack che desideri importare.

   ```
   [{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"MyNestedStack","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-east-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"}}]
   ```

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

   Ad esempio, per importare`MyNestedStack`, potreste creare un *ResourcesToImport.txt* file che contenga la seguente configurazione.

   **JSON**

   ```
   [
     {
         "ResourceType":"AWS::CloudFormation::Stack",
         "LogicalResourceId":"MyNestedStack",
         "ResourceIdentifier": {
           "StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"
         }
     }
   ]
   ```

   **YAML**

   ```
   ResourceType: AWS::CloudFormation::Stack
     LogicalResourceId: MyNestedStack
     ResourceIdentifier:
       StackId: >-
         arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10
   ```

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 MyParentStack --change-set-name ImportChangeSet \
       --change-set-type IMPORT \
       --template-body file://TemplateToImport.json \
       --resources-to-import '[{"ResourceType":"AWS::CloudFormation::Stack","LogicalResourceId":"MyNestedStack","ResourceIdentifier":{"StackId":"arn:aws:cloudformation:us-west-2:12345678910:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10"}}]'
   ```
**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, puoi 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
   ```

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

   ```
   {
       "Id": "arn:aws:cloudformation:us-west-2:12345678910:changeSet/ImportChangeSet/8ad75b3f-665f-46f6-a200-0b4727a9442e",
       "StackId": "arn:aws:cloudformation:us-west-2:12345678910:stack/MyParentStack/4e345b70-1281-11ef-b027-027366d8e82b"
   }
   ```

1. Esaminare il set di modifiche per assicurarsi che venga importato lo stack corretto.

   ```
   aws cloudformation describe-change-set --change-set-name ImportChangeSet
   ```

1. Per avviare il set di modifiche e importare lo stack nello stack padre di origine, utilizza il seguente comando **execute-change-set** e sostituisci il testo segnaposto. Tutti i [tag a livello di stack](cfn-console-create-stack.md#configure-stack-options) vengono applicati alle risorse importate in questo momento. Al completamento dell’operazione di importazione `(IMPORT_COMPLETE)`, lo stack viene nidificato correttamente.

   ```
   aws cloudformation execute-change-set --change-set-name ImportChangeSet
   ```
**Nota**  
Non è necessario eseguire il rilevamento della deviazione nello stack padre dopo questa operazione di importazione perché la risorsa `AWS::CloudFormation::Stack` è già gestita da CloudFormation.