【问题标题】:aws cli elb / elbv2 - How to filter load balancers by DNSName?aws cli elb / elbv2 - 如何按 DNSName 过滤负载均衡器?
【发布时间】:2019-01-06 03:33:18
【问题描述】:

我需要找出负载平衡器的 arn。我拥有的唯一信息是 DNS 名称。

从 DNS 名称中提取 区域 似乎很容易,因为它是其中的一部分:

MyElbName.us-west-2.elb.amazonaws.com

但过滤不起作用:

# aws elbv2 describe-load-balancers --filters "Name=DNSName,Values=MyElbName-1190680708.us-west-2.elb.amazonaws.com" 用法:aws [选项] [ ...] [参数] 要查看帮助文本,您可以运行: 帮助 帮助 帮助 未知选项:--filters, Name=DNSName,Values=MyElbName-1190680708.us-west-2.elb.amazonaws.com --region "us-west-2" #

--filters 选项是否可能在 elbv2 命名空间中不可用?我在elb 命名空间中遇到了同样的问题,但是在elb 中,连 region 都不可用。

【问题讨论】:

  • 在尝试使过滤工作之前,您能否在控制台中看到所需的负载均衡器?您将只能查看属于您自己的 AWS 账户的负载均衡器。另外,请注意此命令没有--filter 选项。见:describe-load-balancers — AWS CLI Command Reference
  • 感谢@JohnRotenstein。是的,如果我使用 elbv2 并指定我的区域,我可以在控制台中看到负载均衡器。 - 感谢您提供有关该参数缺乏可用性的信息;我没有在任何地方找到信息。我可能需要按 jq 左右过滤...

标签: amazon-web-services aws-sdk amazon-elb


【解决方案1】:

您可以使用查询和 jmespath

aws elbv2 describe-load-balancers --query 'LoadBalancers[*].[LoadBalancerName,DNSName,LoadBalancerArn]' --output text

【讨论】:

    【解决方案2】:

    describe-load-balancers 没有 --filters 选项。你可以使用jq:

    aws elbv2 describe-load-balancers | \
       jq '.LoadBalancers[] | 
           select(.DNSName == "your-dns-name.elb.amazonaws.com") | 
           .LoadBalancerArn'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2014-12-18
      • 2016-07-17
      • 2017-11-02
      • 2018-04-14
      相关资源
      最近更新 更多