每日新见AWS,但我希望通过使用标记名称进行过滤来使用AWS CLI终止一组ec2实例。
如果我使用'total'
,我可以通过标记{key = value describe-instances
。对于filter
,我没有看到过滤方式。我认为这是可能的,因为我可以使用AWS控制台过滤和终止,但我希望通过CLI执行此操作。
答案 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)
只要预期的实例数量不多,就可以使用上述实例。