Amazon web services AWSCLI中的OR逻辑滤波

Amazon web services AWSCLI中的OR逻辑滤波,amazon-web-services,aws-cli,Amazon Web Services,Aws Cli,我正在尝试从AWS(使用AWSCLI)获取一个带有tag:env=stage或tag:backup=true的实例列表 我有一个标记为backup=true的实例 我有5个标记为env=stage的实例 我希望得到一份6个项目的清单 示例: # returns no instances since its doing AND logic which is fine aws ec2 describe-instances \ --filters "Name=tag:env,Va

我正在尝试从AWS(使用AWSCLI)获取一个带有tag:env=stage或tag:backup=true的实例列表

  • 我有一个标记为backup=true的实例
  • 我有5个标记为env=stage的实例
  • 我希望得到一份6个项目的清单
示例:

# returns no instances since its doing AND logic which is fine
aws ec2 describe-instances \
    --filters "Name=tag:env,Values=stage" "Name=tag:backup,Values=true" \
    --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value,InstanceId][][]' | tr -d '[]"'

# returns only the last condition ( 1 instance )
aws ec2 describe-instances \
    --filters "Name=tag:env,Values=stage" \
    --filters "Name=tag:backup,Values=true" \
    --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value,InstanceId][][]' | tr -d '[]"'

# returns only the last condition ( 5 instances )
aws ec2 describe-instances \
    --filters "Name=tag:backup,Values=true" \
    --filters "Name=tag:env,Values=stage" \
    --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value,InstanceId][][]' | tr -d '[]"'

做两个单独的API调用怎么样?我做了一些实验,虽然可以通过用空格分隔它们来提供多个过滤器(
--filters“Name=tag:backup,Values=true”“Name=tag:env,Values=stage”
),但它们似乎执行and而不是OR。我建议返回所有结果(无过滤器),然后自己过滤结果集。在Python这样的语言中,这将更加容易。