查找具有特定实例的所有 aws 负载均衡器
Find all aws load balancers which has a particular instance
我想获取所有具有特定实例的 aws 负载均衡器的名称。
我可以使用以下命令列出 ELB 中的实例
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[*].InstanceId}[*]. {ELB:ID,InstanceId:InstanceId[*]}" --output=json
示例输出:
[
{
"ELB": "my_name",
"InstanceId": [
"instance-id-A",
"instance-id-B",
]
},
{
"ELB": "my_name2",
"InstanceId": [
"instance-id-B",
"instance-id-C"
]
},
{
"ELB": "my_name3",
"InstanceId": [
"instance-id-A",
"instance-id-C"
]
}
]
如何将此输出过滤为仅 return 具有实例 ID A 的 ELB 名称?
contains
命令将为您提供所需的内容
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[*].InstanceId}[?contains(to_string(@),'instance-id-A')]"
提供输出:
[
{
"ID": "lb_name",
"InstanceId": [
"i-1234567890"
]
}
]
参考文献
另一种我更喜欢的方法,因为我认为它更易于使用,是使用 jq
进行过滤:
aws elb describe-load-balancers | jq -r '.LoadBalancerDescriptions[] | select (.Instances[].InstanceId == "instance-id-A") | .LoadBalancerName'
输出:
SampleLBName1
SampleLBName2
我想获取所有具有特定实例的 aws 负载均衡器的名称。
我可以使用以下命令列出 ELB 中的实例
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[*].InstanceId}[*]. {ELB:ID,InstanceId:InstanceId[*]}" --output=json
示例输出:
[
{
"ELB": "my_name",
"InstanceId": [
"instance-id-A",
"instance-id-B",
]
},
{
"ELB": "my_name2",
"InstanceId": [
"instance-id-B",
"instance-id-C"
]
},
{
"ELB": "my_name3",
"InstanceId": [
"instance-id-A",
"instance-id-C"
]
}
]
如何将此输出过滤为仅 return 具有实例 ID A 的 ELB 名称?
contains
命令将为您提供所需的内容
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[*].InstanceId}[?contains(to_string(@),'instance-id-A')]"
提供输出:
[
{
"ID": "lb_name",
"InstanceId": [
"i-1234567890"
]
}
]
参考文献
另一种我更喜欢的方法,因为我认为它更易于使用,是使用 jq
进行过滤:
aws elb describe-load-balancers | jq -r '.LoadBalancerDescriptions[] | select (.Instances[].InstanceId == "instance-id-A") | .LoadBalancerName'
输出:
SampleLBName1
SampleLBName2