You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AWS CLI获取指定日期后创建且全步骤完成的EMR集群及步骤信息?

解决AWS EMR集群信息检索的命令错误与需求完善

一、修复步骤ID获取命令的语法错误

你原来的命令存在三处核心问题:--query参数引号未闭合、--output位置错误、xargs占位符用法不正确。修复后的命令如下:

aws emr list-clusters --created-after 2023-06-25 --query "Clusters[?Status.StateChangeReason.Code=='ALL_STEPS_COMPLETED'].Id" --output text | xargs -n1 -I {} aws emr list-steps --cluster-id {} --query "Steps[*].Id" --output text

错误点说明:

  • 原命令中--query的引号没有闭合,导致shell解析失败
  • --output text需放在list-clusters命令的末尾,而非中途打断命令结构
  • xargs需要通过-I {}指定占位符,才能正确将集群ID传递给list-steps命令
  • 将反引号ALL_STEPS_COMPLETED替换为单引号,避免shell将其解析为执行命令

二、整合所有需求信息的Shell脚本

若要一次性获取集群名称、ID、启动/结束时间、步骤ID、实例规格等全部信息,单独的CLI命令无法满足,建议使用以下Shell脚本(需提前安装jq用于JSON解析):

#!/bin/bash

# 可修改为包含时间的ISO格式,例如:2023-06-25T08:00:00Z
TARGET_DATE="2023-06-25"

# 获取符合条件的集群基础信息并逐行处理
aws emr list-clusters --created-after "$TARGET_DATE" --query "Clusters[?Status.StateChangeReason.Code=='ALL_STEPS_COMPLETED'].{Id:Id, Name:Name, Created:Status.Timeline.CreationDateTime, Ended:Status.Timeline.EndDateTime}" --output json | jq -c '.[]' | while read -r cluster_data; do
    # 解析集群基础字段
    cluster_id=$(echo "$cluster_data" | jq -r '.Id')
    cluster_name=$(echo "$cluster_data" | jq -r '.Name')
    created_time=$(echo "$cluster_data" | jq -r '.Created')
    ended_time=$(echo "$cluster_data" | jq -r '.Ended')

    # 获取该集群的所有步骤ID,用逗号分隔
    step_ids=$(aws emr list-steps --cluster-id "$cluster_id" --query "Steps[*].Id" --output text | tr '\t' ',')

    # 获取实例组的角色与实例规格
    instance_details=$(aws emr describe-cluster --cluster-id "$cluster_id" --query "Cluster.InstanceGroups[*].{Role:InstanceRole, Type:InstanceType}" --output json)

    # 格式化输出所有信息
    echo "=== 集群信息 ==="
    echo "名称: $cluster_name"
    echo "ID: $cluster_id"
    echo "启动时间: $created_time"
    echo "结束时间: $ended_time"
    echo "步骤ID列表: $step_ids"
    echo "实例规格:"
    echo "$instance_details" | jq -r '.[] | "\(.Role): \(.Type)"'
    echo -e "\n"
done

脚本功能说明:

  1. 日期支持:TARGET_DATE可设置为带时间的ISO格式(如2023-06-25T08:00:00Z),满足精确时间范围检索需求
  2. 结构化解析:用jq处理AWS CLI返回的JSON数据,轻松提取所需字段
  3. 完整信息覆盖:同时获取集群基础信息、步骤ID、实例组角色(主节点/核心节点/任务节点)及对应实例类型
  4. 可读性优化:输出格式简洁清晰,便于查看与后续处理

内容的提问来源于stack exchange,提问作者ablaze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:05:09