【问题标题】:Find all aws load balancers which has a particular instance查找具有特定实例的所有 aws 负载均衡器
【发布时间】:2019-06-25 16:40:04
【问题描述】:

我想获取具有特定实例的所有 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"
    ]
}

]

如何过滤此输出以仅返回具有实例 ID A 的 ELB 名称?

【问题讨论】:

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


    【解决方案1】:

    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"
            ]
        }
    ]
    

    参考文献

    http://jmespath.org/specification.html#contains

    【讨论】:

      【解决方案2】:

      我更喜欢的另一种方法是使用jq 进行过滤:

      aws elb describe-load-balancers | jq -r '.LoadBalancerDescriptions[] | select (.Instances[].InstanceId == "instance-id-A") | .LoadBalancerName'
      

      输出:

      样品LBName1
      样本LBName2

      【讨论】:

        猜你喜欢
        • 2020-06-24
        • 2018-12-16
        • 2018-03-22
        • 2023-04-04
        • 2017-03-21
        • 1970-01-01
        • 2015-05-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多