【问题标题】:Can you do AND/OR type queries with the AWS CLI?您可以使用 AWS CLI 执行 AND/OR 类型查询吗?
【发布时间】:2022-02-04 22:33:36
【问题描述】:

我想在 AWS CLI 查询中使用 AND OR 样式的位运算符。

具体来说,我想找到我们所有的负载均衡器:

  1. 面向互联网(Scheme == "internet=facing")
  2. 使用 https(协议 == "HTTPS")
  3. 不仅限于 TLS1.2 (PolicyNames != "ELBSecurityPolicy-TLS-1-2-2017-01")

如果我只针对其中一个条件进行基本查询,它会起作用:

aws elb describe-load-balancers --query "LoadBalancerDescriptions[].ListenerDescriptions[?PolicyNames!='ELBSecurityPolicy-TLS-1-2-2017-01']"

如果我尝试再添加一个标准,它会失败:

aws elb describe-load-balancers --query "LoadBalancerDescriptions[].ListenerDescriptions[?PolicyNames!='ELBSecurityPolicy-TLS-1-2-2017-01'], LoadBalancerDescriptions[].ListenerDescriptions[?Scheme=='internet-facing']"

最终,我希望它输出名称、DNS,理想情况下,输出它所绑定的 CFT,但仅限于不限于 TLS1.2 的面向互联网的 HTTPS 端口

【问题讨论】:

    标签: amazon-web-services command-line-interface command-line-arguments bitwise-operators


    【解决方案1】:

    我想我明白了:

    aws elb describe-load-balancers --query "LoadBalancerDescriptions[?Scheme=='internet-facing'].[LoadBalancerName, DNSName, ListenerDescriptions[?PolicyNames!='ELBSecurityPolicy-TLS-1-2-2017-01'], ListenerDescriptions[*].Listener[?Protocol=='HTTPS']]"
    

    仍然不确定通过 CLI 命令将其链接到 CFT 的最佳方法,但越来越接近了。 :-)

    【讨论】:

      【解决方案2】:

      您还可以使用管道运算符| 来模拟布尔 AND,如下所示:

      aws ec2 describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `aws-elasticbeanstalk`) == `true`]|[0:5].[ImageId,Name]' --output text
      

      我从here得到这个例子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-13
        • 2018-08-04
        • 2015-03-25
        相关资源
        最近更新 更多