Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Créez un CloudFormation modèle à partir de ressources scannées avec le générateur IaC
Cette rubrique explique comment créer un modèle à partir de ressources scannées à l'aide de la fonction de génération IaC.
Création d'un modèle à partir de ressources numérisées (console)
Pour créer un modèle de pile à partir de ressources numérisées
-
Ouvrez la page du générateur iAC
de la CloudFormation console. -
Dans la barre de navigation en haut de l'écran, choisissez Région AWS qui contient les ressources numérisées.
-
Dans la section Modèles, choisissez Créer un modèle.
-
Choisissez Démarrer à partir d'un nouveau modèle.
-
Dans Nom du modèle, saisissez un nom pour votre modèle.
-
(Facultatif) Configurez votre politique de suppression et mettez à jour la politique de remplacement.
-
Choisissez Next pour ajouter des ressources numérisées au modèle.
-
-
Pour Ajouter des ressources numérisées, parcourez la liste des ressources numérisées et sélectionnez les ressources que vous souhaitez ajouter à votre modèle. Vous pouvez filtrer les ressources par identifiant de ressource, type de ressource ou balises. Les filtres sont mutuellement inclusifs.
-
Lorsque vous avez ajouté toutes les ressources nécessaires à votre modèle, choisissez Suivant pour quitter la page Ajouter des ressources numérisées et passer à la page Ajouter des ressources associées.
-
Consultez une liste recommandée de ressources connexes. Les ressources associées, telles que les EC2 instances Amazon et les groupes de sécurité, sont interdépendantes et appartiennent généralement à la même charge de travail. Sélectionnez les ressources connexes que vous souhaitez inclure dans le modèle généré.
Note
Nous vous suggérons d'ajouter toutes les ressources associées à ce modèle.
-
Passez en revue les détails du modèle, les ressources numérisées et les ressources associées.
-
Choisissez Créer un modèle pour quitter la page Révision et création et créer le modèle.
Créez un modèle à partir de ressources numérisées (AWS CLI)
Pour créer un modèle de pile à partir de ressources numérisées
-
Utilisez la list-resource-scan-resourcescommande pour répertorier les ressources trouvées lors de l'analyse, en spécifiant éventuellement l'
--resource-identifier
option permettant de limiter le résultat. Pour l'--resource-scan-id
option, remplacez l'échantillon ARN par l'échantillon réelARN.aws cloudformation list-resource-scan-resources \ --resource-scan-id
arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60
\ --resource-identifierMyApp
Voici un exemple de réponse, qui
ManagedByStack
indique si CloudFormation la ressource est déjà gérée. Copiez la sortie. Vous en aurez besoin à l'étape suivante.{ "Resources": [ { "ResourceType": "AWS::EKS::Cluster", "ResourceIdentifier": { "ClusterName": "MyAppClusterName" }, "ManagedByStack": false }, { "ResourceType": "AWS::AutoScaling::AutoScalingGroup", "ResourceIdentifier": { "AutoScalingGroupName": "MyAppASGName" }, "ManagedByStack": false } ] }
Pour une description des champs de la sortie, voir ScannedResourcedans AWS CloudFormation APIRéférence.
-
Utilisez la
cat
commande pour stocker les types de ressources et les identificateurs dans un JSON fichier nomméresources.json
dans votre répertoire personnel. L'exemple suivant est JSON basé sur l'exemple de sortie de l'étape précédente.$ cat > resources.json [ { "ResourceType": "AWS::EKS::Cluster", "ResourceIdentifier": { "ClusterName": "MyAppClusterName" } }, { "ResourceType": "AWS::AutoScaling::AutoScalingGroup", "ResourceIdentifier": { "AutoScalingGroupName": "MyAppASGName" } } ]
-
Utilisez la commande list-resource-scan-related-resources, ainsi que le
resources.json
fichier que vous avez créé, pour répertorier les ressources associées à vos ressources numérisées.aws cloudformation list-resource-scan-related-resources \ --resource-scan-id
arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60
\ --resourcesfile://resources.json
Voici un exemple de réponse, qui
ManagedByStack
indique si CloudFormation la ressource est déjà gérée. Ajoutez ces ressources au JSON fichier que vous avez créé à l'étape précédente. Vous en aurez besoin pour créer votre modèle.{ "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 } ] }Pour une description des champs de la sortie, voir ScannedResourcedans AWS CloudFormation APIRéférence.
Note
La liste de ressources en entrée ne peut pas dépasser une longueur de 100. Pour répertorier les ressources associées pour plus de 100 ressources, exécutez la list-resource-scan-related-resources commande par lots de 100 et consolidez les résultats.
Sachez que la sortie peut contenir des ressources dupliquées dans la liste.
-
Utilisez la create-generated-templatecommande pour créer un nouveau modèle de pile, comme suit, avec les modifications suivantes :
-
Remplacez par Région AWS qui contient les ressources numérisées.us-east-1
-
Remplacez
par le nom du modèle à créer.MyTemplate
aws cloudformation create-generated-template --region
us-east-1
\ --generated-template-nameMyTemplate
\ --resourcesfile://resources.json
Voici un exemple de fichier
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" } } ]En cas de succès, cette commande renvoie ce qui suit.
{ "Arn": "arn:aws:cloudformation:
region
:account-id
:generatedtemplate/7fc8512c-d8cb-4e02-b266-d39c48344e48
", "Name": "MyTemplate
" } -