AWS-CLI:如何过滤自动缩放组

Posted

技术标签:

【中文标题】AWS-CLI:如何过滤自动缩放组【英文标题】:AWS-CLI: How do I filter autoscalinggroups 【发布时间】:2022-01-11 19:54:05 【问题描述】:

找不到使用过滤器的示例https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-auto-scaling-groups.html#options

【问题讨论】:

你要过滤什么? 标签:eks:nodegroup-name, Value=cassandra 【参考方案1】:

尝试使用以下命令:

aws autoscaling describe-auto-scaling-groups --query 'AutoScalingGroups[?contains(Tags[?Key==`eks:nodegroup-name`].Value, `cassandra`)]' --region [AWS_REGION]

或者,如果您只想要 ASG 名称,您可以使用以下方法对其进行过滤:

aws autoscaling describe-auto-scaling-groups --query 'AutoScalingGroups[?contains(Tags[?Key==`eks:nodegroup-name`].Value, `cassandra`)].[AutoScalingGroupName]' --region [AWS_REGION]

参考:

Filtering AWS CLI output

【讨论】:

感谢@omar 进一步阅读后我也可以使用过滤器选项,aws autoscaling describe-auto-scaling-groups --filters "Name=tag:eks:nodegroup-name,Values=cassandra"【参考方案2】:

尝试类似:

aws ec2 describe-instances --filters "Name=tag:Name,Values=xxx" "Name=tag:env,Values=dev"

more

更新:我相信根据您提供的错误消息,您需要tag:tag-key:,如上例所示:The filter criteria isn't valid. Valid filter types for the Name attribute of filters are: tag-key, tag-value and tag:<key>。令人困惑的部分是你的标签有:(冒号)字符(more),要么需要转义,要么不使用或替换。

aws autoscaling describe-auto-scaling-groups --filters "Name=tag:\"eks:nodegroup-name\",Values=cassandra"

【讨论】:

aws autoscaling describe-auto-scaling-groups --filters "Name=eks:nodegroup-name,Values=cassandra" An error occurred (ValidationError) when calling the DescribeAutoScalingGroups operation: The filter criteria isn't valid. Valid filter types for the Name attribute of filters are: tag-key, tag-value and tag:<key>

以上是关于AWS-CLI:如何过滤自动缩放组的主要内容,如果未能解决你的问题,请参考以下文章

如何自动缩放一组控件的字体大小?

AWS - 如何使用 CDK/CloudFormation 将服务链接角色传递给自动缩放组?

Elastic Beanstalk 自动缩放组生命周期挂钩

如何将我的自动缩放组连接到我的 ecs 集群?

如何使用 elasticbeanstalk 设置自动缩放组健康检查类型

如何在自动缩放组中添加 aws new elb