bash - 从名称获取 AWS EMR 集群 ID

标签 bash amazon-web-services groovy

AWS CLI 命令 aws emr list-clusters返回以下 json。有没有办法通过 bash 或 groovy 使用 Name 来获取 Id?我不能只使用 ID,因为我正在删除集群并仅使用相同的名称重建它们。所以我知道集群的名称是“my-cluster”,我想以某种方式使用它来获取集群的 ID。最终情况是我实际上想要集群的主公共(public) 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"
        }
    ]
    }

最佳答案

您可以使用 query参数来实现你正在尝试的东西。该命令如下所示:

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

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

关于bash - 从名称获取 AWS EMR 集群 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529819/

相关文章:

amazon-web-services - 如何在不打开 ssh 管道的情况下在 Amazon EC2 上运行脚本?

grails - 通过Groovy/Grails检测平台(Window或Linux)

linux - Bash循环遍历包括隐藏文件的目录

sql - 如何从 bash 脚本中执行 SQL?

linux - 用于安排多个作业的 Bash 脚本

amazon-web-services - EKS 集群中的多账户节点

.net - 使用 AWS ECS 从 Linux 容器上运行的 .NET Core 应用程序访问具有集成安全性的 SQL Server

git - 从命令行添加换行符到 'git commit -m'

java - Gradle的CopySpec过滤器方法签名与给定的示例有何关系?

groovy - 如何向常规字符串添加前缀?