

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

# Crea un CloudFormation modello da risorse scansionate con il generatore IAc
<a name="iac-generator-create-template-from-scanned-resources"></a>

In questo argomento viene descritto come creare un modello da risorse che sono state scansionate utilizzando la funzionalità del generatore IaC. 

## Creazione di un modello da risorse scansionate (console)
<a name="create-template-from-scanned-resources-console"></a>

**Creazione di un modello di stack da risorse scansionate**

1. Apri la [pagina del generatore IAc](https://console.aws.amazon.com/cloudformation/home?#iac-generator) della console. CloudFormation 

1. Nella barra di navigazione, nella parte superiore della schermata, seleziona la Regione AWS che contiene le risorse analizzate.

1. Nella sezione **Modelli**, scegli **Crea modello**. 

1. Scegli **Inizia da un nuovo modello**.

   1. In **Nome modello**, digita un nome per il modello.

   1. (Facoltativo) Configura la **Policy di eliminazione** e la **Policy di aggiornamento e sostituzione**.

   1. Scegli **Avanti** per aggiungere risorse scansionate al modello.

1. Per **Aggiungi risorse scansionate**, sfoglia l’elenco delle risorse scansionate e seleziona quelle che desideri aggiungere al modello. Puoi filtrare le risorse per identificatore di risorsa, tipo di risorsa o tag. I filtri sono mutualmente inclusivi.

1. Dopo aver aggiunto tutte le risorse necessarie al modello, scegli **Avanti** per uscire dalla pagina **Aggiungi risorse scansionate** e passare alla pagina **Aggiungi risorse correlate**.

1. Consulta l’elenco consigliato di risorse correlate. Le risorse correlate, come le istanze e i gruppi di sicurezza di Amazon EC2, sono interdipendenti e in genere appartengono allo stesso carico di lavoro. Seleziona le risorse correlate da includere nel modello generato.
**Nota**  
Ti suggeriamo di aggiungere tutte le risorse correlate a questo modello.

1. Esamina i dettagli del modello, le risorse scansionate e le risorse correlate. 

1. Scegli **Crea modello** per uscire dalla pagina **Revisione e creazione** e creare il modello.

## Creazione di un modello da risorse scansionate (AWS CLI)
<a name="create-template-from-scanned-resources-cli"></a>

**Creazione di un modello di stack da risorse scansionate**

1. Utilizzate il [list-resource-scan-resources](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-resource-scan-resources.html)comando per elencare le risorse trovate durante la scansione, specificando facoltativamente l'`--resource-identifier`opzione per limitare l'output. Per l’opzione `--resource-scan-id`, sostituisci l’ARN di esempio con quello effettivo.

   ```
   aws cloudformation list-resource-scan-resources \
     --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60 \
     --resource-identifier MyApp
   ```

   Di seguito è riportato un esempio di risposta, in cui `ManagedByStack` indica se CloudFormation gestisce già la risorsa. Copia l’output. Servirà per la fase successiva.

   ```
   {
       "Resources": [
           {
               "ResourceType": "AWS::EKS::Cluster",
               "ResourceIdentifier": {
                   "ClusterName": "MyAppClusterName"
               },
               "ManagedByStack": false
           },
           {
               "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
               "ResourceIdentifier": {
                   "AutoScalingGroupName": "MyAppASGName"
               },
               "ManagedByStack": false
           }
       ]
   }
   ```

   Per una descrizione dei campi nell'output, consulta [ScannedResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ScannedResource.html)l'*AWS CloudFormation API Reference*.

1. Usa il comando `cat` per memorizzare i tipi di risorse e gli identificatori in un file JSON denominato `resources.json` nella tua home directory. Di seguito è riportato un JSON di esempio basato sull’output di esempio precedente.

   ```
   $ cat > resources.json
   [
       {
           "ResourceType": "AWS::EKS::Cluster",
           "ResourceIdentifier": {
               "ClusterName": "MyAppClusterName"
           }
       },
       {
           "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
           "ResourceIdentifier": {
               "AutoScalingGroupName": "MyAppASGName"
           }
       }
   ]
   ```

1. Usa il comando [list-resource-scan-related-resources](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-resource-scan-related-resources.html), insieme al `resources.json` file che hai creato, per elencare le risorse relative alle risorse scansionate.

   ```
   aws cloudformation list-resource-scan-related-resources \
     --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60 \
     --resources file://resources.json
   ```

   Di seguito è riportato un esempio di risposta, in cui `ManagedByStack` indica se CloudFormation gestisce già la risorsa. Aggiungi queste risorse al file JSON creato nella fase precedente. Sarà necessario per creare il modello.

   ```
   {
       "RelatedResources": [
           {
               "ResourceType": "AWS::EKS::Nodegroup",
               "ResourceIdentifier": {
                   "NodegroupName": "MyAppNodegroupName"
               },
               "ManagedByStack": false
           },
           {
               "ResourceType": "AWS::IAM::Role",
               "ResourceIdentifier": {
                   "RoleId": "arn:aws::iam::account-id:role/MyAppIAMRole"
               },
               "ManagedByStack": false
           }
       ]
   }
   ```

   Per una descrizione dei campi nell'output, consulta [ScannedResource](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ScannedResource.html)l'*AWS CloudFormation API Reference*.
**Nota**  
L’elenco di risorse di input non può superare il valore 100. Per elencare le risorse correlate per più di 100 risorse, esegui il comando **list-resource-scan-related-resources** in batch da 100 e consolida i risultati.  
Tieni presente che l’output può contenere risorse duplicate nell’elenco.

1. Utilizzate il [create-generated-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-generated-template.html)comando per creare un nuovo modello di stack, come segue, con queste modifiche:
   + Sostituisci `us-east-1` con quello Regione AWS che contiene le risorse scansionate.
   + Sostituisci `MyTemplate` con il nome del modello da creare.

   ```
   aws cloudformation create-generated-template --region us-east-1 \
    --generated-template-name MyTemplate \
     --resources file://resources.json
   ```

   Di seguito è riportato un esempio del file `resources.json`.

   ```
   [
       {
           "ResourceType": "AWS::EKS::Cluster",
           "LogicalResourceId":"MyCluster",
           "ResourceIdentifier": {
               "ClusterName": "MyAppClusterName"
           }
       },
       {
           "ResourceType": "AWS::AutoScaling::AutoScalingGroup",
           "LogicalResourceId":"MyASG",
           "ResourceIdentifier": {
               "AutoScalingGroupName": "MyAppASGName"
           }
       },
       {
           "ResourceType": "AWS::EKS::Nodegroup",
           "LogicalResourceId":"MyNodegroup",
           "ResourceIdentifier": {
               "NodegroupName": "MyAppNodegroupName"
           }
       },
       {
           "ResourceType": "AWS::IAM::Role",
           "LogicalResourceId":"MyRole",
           "ResourceIdentifier": {
               "RoleId": "arn:aws::iam::account-id:role/MyAppIAMRole"
           }
       }
   ]
   ```

   In caso di esito positivo, il comando restituisce la risposta seguente.

   ```
   {
     "Arn":
       "arn:aws:cloudformation:region:account-id:generatedtemplate/7fc8512c-d8cb-4e02-b266-d39c48344e48",
     "Name": "MyTemplate"
   }
   ```