AWS cli 列出未使用的 elb
AWS cli List unused elb
我对 AWS 还很陌生。我试图列出未附加到任何实例的负载平衡。我正在尝试使用 aws cli 描述负载均衡器,但无法获得过滤 elbs 的选项。
请就如何实现这一目标提供一些建议。
假设您设置了带有合适密钥的 aws cli,这一长行 shell 应该会列出 ELB 以及附加到它们的实例数。如果它说零则没有实例附加
for i in `aws elb describe-load-balancers|sed -ne 's/"LoadBalancerName": "\(.*\)",//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
而不是 Bash
或 Boto
.
来制作答案
以下示例使用 jq
和 AWS cli。
这个例子解决了 OP 最初试图做的事情 --
列出未附加实例的 ELB:
aws elb describe-load-balancers --output json |jq -r '.LoadBalancerDescriptions[] | select(.Instances==[]) | . as $l | [$l.LoadBalancerName] | @sh'
输出
'blah10-admin'
'elk-elb-nova'
'cj-web-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 还很陌生。我试图列出未附加到任何实例的负载平衡。我正在尝试使用 aws cli 描述负载均衡器,但无法获得过滤 elbs 的选项。
请就如何实现这一目标提供一些建议。
假设您设置了带有合适密钥的 aws cli,这一长行 shell 应该会列出 ELB 以及附加到它们的实例数。如果它说零则没有实例附加
for i in `aws elb describe-load-balancers|sed -ne 's/"LoadBalancerName": "\(.*\)",//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
而不是 Bash
或 Boto
.
来制作答案
以下示例使用 jq
和 AWS cli。
这个例子解决了 OP 最初试图做的事情 --
列出未附加实例的 ELB:
aws elb describe-load-balancers --output json |jq -r '.LoadBalancerDescriptions[] | select(.Instances==[]) | . as $l | [$l.LoadBalancerName] | @sh'
输出
'blah10-admin'
'elk-elb-nova'
'cj-web-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