Crea un CloudFormation modello da risorse scansionate con il generatore IAc - AWS CloudFormation

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

Questo argomento spiega come creare un modello a partire da risorse che sono state scansionate utilizzando la funzionalità del generatore IAc.

Crea un modello dalle risorse scansionate (console)

Per creare un modello di pila a partire da risorse scansionate
  1. Apri la pagina del generatore IaC della console. CloudFormation

  2. Nella barra di navigazione nella parte superiore dello schermo, scegli Regione AWS che contiene le risorse scansionate.

  3. Nella sezione Modelli, scegli Crea modello.

  4. Scegli Inizia da un nuovo modello.

    1. Per Nome modello, fornisci un nome per il tuo modello.

    2. (Facoltativo) Configura la politica di eliminazione e la politica di aggiornamento e sostituzione.

    3. Scegli Avanti per aggiungere risorse scansionate al modello.

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

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

  7. Consulta l'elenco consigliato di risorse correlate. Le risorse correlate, come le EC2 istanze Amazon e i gruppi di sicurezza, sono interdipendenti e in genere appartengono allo stesso carico di lavoro. Seleziona le risorse correlate che desideri includere nel modello generato.

    Nota

    Ti suggeriamo di aggiungere tutte le risorse correlate a questo modello.

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

  9. Scegli Crea modello per uscire dalla pagina di revisione e creazione e creare il modello.

Crea un modello da risorse scansionate (AWS CLI)

Per creare un modello di pila a partire da risorse scansionate
  1. Utilizzate il list-resource-scan-resourcescomando per elencare le risorse trovate durante la scansione, specificando facoltativamente l'--resource-identifieropzione per limitare l'output. Per l'--resource-scan-idopzione, sostituite il campione ARN con quello effettivo. ARN

    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 dell'output, ScannedResourceconsulta AWS CloudFormation APIRiferimento.

  2. Utilizzate il cat comando per memorizzare i tipi di risorse e gli identificatori in un JSON file denominato resources.json nella vostra home directory. Di seguito è riportato un esempio JSON basato sull'output di esempio del passaggio precedente.

    $ cat > resources.json [ { "ResourceType": "AWS::EKS::Cluster", "ResourceIdentifier": { "ClusterName": "MyAppClusterName" } }, { "ResourceType": "AWS::AutoScaling::AutoScalingGroup", "ResourceIdentifier": { "AutoScalingGroupName": "MyAppASGName" } } ]
  3. Utilizzate il comando list-resource-scan-related-resources, insieme al resources.json file creato, per elencare le risorse relative alle risorse analizzate.

    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 JSON file creato nel passaggio precedente. Ti servirà per creare il tuo 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 dell'output, ScannedResourceconsulta la AWS CloudFormation APIRiferimento.

    Nota

    L'elenco di risorse di input non può superare la lunghezza di 100. Per elencare le risorse correlate per più di 100 risorse, esegui il list-resource-scan-related-resources comando in batch di 100 e consolida i risultati.

    Tieni presente che l'output può contenere risorse duplicate nell'elenco.

  4. Utilizzate il create-generated-templatecomando per creare un nuovo modello di stack, come segue, con queste modifiche:

    • Sostituisci con us-east-1 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 successo, questo comando restituisce quanto segue.

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