AWS cli列出未使用的elb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS cli列出未使用的elb相关的知识,希望对你有一定的参考价值。

我几乎是AWS新手。我试图列出未附加到任何实例的负载余额。我正在尝试使用aws cli描述负载均衡器,但无法获得过滤掉elbs的选项。

请提供一些如何实现这一目标的建议。

答案

假设您使用合适的密钥设置了aws cli,这个长行的shell应该列出ELB并附加一个实例计数。如果它显示为零则没有附加实例

for i in `aws elb describe-load-balancers|sed -ne 's/"LoadBalancerName": "(.*)",/1/gp'`; do echo -n "$i "; aws elb describe-load-balancers --load-balancer-name $i|grep -c InstanceId;done

或者,这是一个boto3 python程序

import boto3
client=boto3.client('elb')
bals=client.describe_load_balancers()
for elb in bals['LoadBalancerDescriptions']:
  count=len(elb['Instances'])
  print "%s %d" % ( elb['LoadBalancerName'], count)
另一答案

我看到了上面的答案,并希望使用jq而不是BashBoto来制作答案。 以下示例将jq与AWS cli结合使用。

此示例解决了OP最初尝试执行的操作 -

列出未附加实例的ELB:

aws elb describe-load-balancers --output json |jq -r '.LoadBalancerDescriptions[] | select(.Instances==[]) | . as $l | [$l.LoadBalancerName] | @sh'

产量

“Blah10管理员” 'ELK-ELB-新' 'CJ-网络ELB'

此示例符合接受的答案 -

打印ELB名称和附加实例的数量:

aws elb describe-load-balancers --output json | jq -r '.LoadBalancerDescriptions[] | . as $l | (.Instances | length)  as $i | [$l.LoadBalancerName] + [$i] | @sh'

产量

'blah10-admin'0 'elk-lb-cim-0'1 'demo-pod-01-es'1 'elk-elb-nova'0

以上是关于AWS cli列出未使用的elb的主要内容,如果未能解决你的问题,请参考以下文章

如何通过忽略未使用的资源从 aws cli 创建 aws java lambda 函数?

使用 AWS(ELB、Kubernetes Nginx 和 ACM)配置 HSTS

实例上未列出增加的 ec2 卷

ini 使用nginx代理AWS ELB

从 cli 创建的 IAM 用户未显示在 AWS 控制台中

在 ELB 后面可访问的 AWS EB url