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 un modello CloudFormation da risorse scansionate con il generatore IaC
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)
Creazione di un modello di stack da risorse scansionate
-
Apri la pagina del generatore IaC
della console CloudFormation. -
Nella barra di navigazione, nella parte superiore della schermata, seleziona la Regione AWS che contiene le risorse analizzate.
-
Nella sezione Modelli, scegli Crea modello.
-
Scegli Inizia da un nuovo modello.
-
In Nome modello, digita un nome per il modello.
-
(Facoltativo) Configura la Policy di eliminazione e la Policy di aggiornamento e sostituzione.
-
Scegli Avanti per aggiungere risorse scansionate al modello.
-
-
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.
-
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.
-
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.
-
Esamina i dettagli del modello, le risorse scansionate e le risorse correlate.
-
Scegli Crea modello per uscire dalla pagina Revisione e creazione e creare il modello.
Creazione di un modello da risorse scansionate (AWS CLI)
Creazione di un modello di stack da risorse scansionate
-
Utilizza il comando list-resource-scan-resources per elencare le risorse trovate durante la scansione, specificando facoltativamente l’opzione
--resource-identifierper 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-idarn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60\ --resource-identifierMyAppDi seguito è riportato un esempio di risposta, in cui
ManagedByStackindica 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 nella Documentazione di riferimento alla AWS CloudFormation API.
-
Usa il comando
catper memorizzare i tipi di risorse e gli identificatori in un file JSON denominatoresources.jsonnella 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" } } ] -
Utilizza il comando list-resource-scan-related-resources insieme al file
resources.jsoncreato, per elencare le risorse correlate alle risorse analizzate.aws cloudformation list-resource-scan-related-resources \ --resource-scan-idarn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60\ --resourcesfile://resources.jsonDi seguito è riportato un esempio di risposta, in cui
ManagedByStackindica 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 nella Documentazione di riferimento alla AWS CloudFormation API.
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.
-
Per creare un nuovo modello di stack, utilizza il comando create-generated-template, come segue, con queste modifiche:
-
Sostituisci
con la Regione AWS che contiene le risorse scansionate.us-east-1 -
Sostituisci
con il nome del modello da creare.MyTemplate
aws cloudformation create-generated-template --regionus-east-1\ --generated-template-nameMyTemplate\ --resourcesfile://resources.jsonDi 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" } -