从名称

时间:2018-01-30 20:17:31

标签: bash amazon-web-services groovy

AWS CLI命令aws emr list-clusters返回以下json。有没有办法通过bash或groovy我可以使用Name来获取Id?我不能只使用Id,因为我正在删除集群并使用相同的名称重建它们。所以我知道集群的名称是“my-cluster”,我想以某种方式使用它来获取集群的Id。最后的情况是我实际上想要群集的公共DNS。

    {
        "Clusters": [
        {
            "Status": {
                "Timeline": {
                "ReadyDateTime": 1433200405.353,
                "CreationDateTime": 1433199926.596
            },
            "State": "WAITING",
            "StateChangeReason": {
                "Message": "Waiting after step completed"
                }
            },
            "NormalizedInstanceHours": 6,
            "Id": "j-3SD91U2E1L2QX",
            "Name": "my-cluster"
        },
        {
            "Status": {
                "Timeline": {
                    "ReadyDateTime": 1433200405.353,
                    "CreationDateTime": 1433199926.596
            },
            "State": "WAITING",
            "StateChangeReason": {
                "Message": "Waiting after step completed"
            }
        },
        "NormalizedInstanceHours": 6,
        "Id": "j-3S281UEK8L2LW",
        "Name": "my-cluster2"
        }
    ]
    }

1 个答案:

答案 0 :(得分:5)

您可以使用query参数来实现您的目标。该命令如下所示:

aws emr list-clusters --query 'Clusters[?Name==`my-cluster`].Id' --output text

您可以找到query参数here的完整文档。