使用AWS CLI通过标记终止EC2实例上的集合

时间:2017-02-06 20:02:40

标签: amazon-web-services amazon-ec2

每日新见AWS,但我希望通过使用标记名称进行过滤来使用AWS CLI终止一组ec2实例。

如果我使用'total',我可以通过标记{key = value describe-instances。对于filter,我没有看到过滤方式。我认为这是可能的,因为我可以使用AWS控制台过滤和终止,但我希望通过CLI执行此操作。

3 个答案:

答案 0 :(得分:3)

terminate-instances命令仅获取实例ID列表。您需要先编写一个脚本来运行describe-instances命令并捕获实例ID,然后将这些ID传递给terminate-instances命令。

答案 1 :(得分:1)

我创建了以下脚本(.sh),它对我有用:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters 'Name=tag-value,Values=MYTAG' --output text |
grep stopped |
awk '{print $2}' |
while read line;
do aws ec2 terminate-instances --instance-ids $line
done

答案 2 :(得分:1)

最新的AWS CLI使您无需使用任何脚本或jq:

aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --filters "Name=tag:tagkey,Values=tagvalue" --output text)

只要预期的实例数量不多,就可以使用上述实例。