2017-03-21 3 views
1

J'ai plusieurs groupes de mise à l'échelle automatique qui doivent être supprimés. Par exemple: J'ai ASG awsLC1xyzLC2aLC3. Je les ai trouvés en utilisant AWS CLI avec la requête ci-dessous:Suppression de plusieurs groupes de mise à l'échelle automatique en une seule fois: AWS CLI

aws autoscaling describe-auto-scaling-groups --query "AutoScalingGroups[? contains(AutoScalingGroupName,'LC')].AutoScalingGroupName" --output text 

Il me donne une liste sur la console. Cependant delete-auto-scaling-group prend seulement 1 nom ASG (groupe de mise à l'échelle automatique) en paramètre.

Comment puis-je faire cela? Un moyen de l'automatiser en utilisant la programmation de bash?

Merci!

Répondre

3

La CLI ne prend pas en charge la suppression de plusieurs groupes d'abonné. Vous pouvez essayer un simple script bash:

$ for group in `aws autoscaling describe-launch-configurations --query "LaunchConfigurations[?contains(LaunchConfigurationName,'LC')].[LaunchConfigurationName]" --output text` 
> do 
> echo $group 
> done 

Une fois que vous vérifiez les groupes, les supprimer:

$ for group in `aws autoscaling describe-launch-configurations --query "LaunchConfigurations[?contains(LaunchConfigurationName,'LC')].[LaunchConfigurationName]" --output text` 
> do 
> aws autoscaling delete-auto-scaling-group --auto-scaling-group-name $group 
> done 

EDIT

Basé sur l'entrée de @JordonPhillips, vous pouvez utiliser l'option -I de xargs à venir avec un seul doublure:

aws autoscaling describe-launch-configurations --query "LaunchConfigurations[?contains(LaunchConfigurationName,'LC')].[LaunchConfigurationName]" --output text | xargs -I aws autoscaling delete-auto-scaling-group --auto-scaling-group-name 
+1

Vous pouvez également utiliser 'xargs' pour que cela fonctionne en tant que ligne simple –

+0

@JordonPhillips mais la commande n'accepte qu'un seul argument. Donc "xargs" ne sert à rien. – helloV

+0

Vous pouvez utiliser l'option '-I' pour que xargs exécute la commande une fois pour chaque entrée. –