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 将服务链接角色传递给自动缩放组?