【问题标题】:AWS CLI command negative conditionAWS CLI 命令否定条件
【发布时间】:2023-03-29 20:02:01
【问题描述】:

我想获取没有所需标签的实例列表。

我可以运行以下命令来获取与以下标签匹配的实例:

aws ec2 describe-instances --output table --filters 'Name=tag:bu,Values=hr' 'Name=tag:product,Values=payroll' 'Name=tag:environment,Values=development' --query 'Reservations[*].Instances[*].[Tags[?Key==Name] | [0].Value,InstanceId,State.Name]'

如何获取上面命令中没有标签的实例列表。

谢谢。

菲利克斯

【问题讨论】:

  • 您能说明一下您的要求吗?例如,您是在寻找没有 buproductenvironment 标签条目的实例,还是标签的那些特定值?如果一个实例有一个这些标签但没有其他标签呢?
  • 我想列出没有所有这 3 个标签的实例。
  • 当您说“所有这 3 个标签”时,您的意思是它具有 buproductenvironment 的任何值的标签,还是它还需要具有这些特定的标签?每个标签的值(hrpayrolldevelopment)?
  • 这三个标签应该有具体的标签:bu: hr, product: payroll, environment: development

标签: amazon-web-services aws-cli


【解决方案1】:

您可以将resourcegroupstaggingapi 中的get-resources 方法与jq 命令结合使用:

aws resourcegroupstaggingapi get-resources --tags-per-page 100 --resource-type-filters ec2:instance | jq '.ResourceTagMappingList[] | select((contains({Tags: [{Key: "bu"}]}) or contains({Tags: [{Key: "product"}]}) or contains({Tags: [{Key: "environment"}]})) | not) | .ResourceARN'

此命令返回不具有以下标签的 EC2 实例的 ARN:bu、product、environment

【讨论】:

  • 此命令不返回任何内容
  • 如果它没有返回任何东西是因为没有匹配过滤器的实例。尝试用其他标签更改它以测试它
  • 不,这 3 个标签有 100 个实例。
  • 该命令返回没有这 3 个标签中的任何一个的实例。根据问题,这是您需要的
猜你喜欢
  • 1970-01-01
  • 2015-12-24
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多