如何通过AWS CLI获取每个ECS服务的任务ID列表
获取ECS服务对应的任务ID列表
describe-services确实只返回服务的基本信息和任务数量,拿不到具体任务ID。要获取任务ID,得用aws ecs list-tasks命令,以下是具体用法:
单个服务的任务ID查询
直接指定集群和服务名就能拿到该服务下所有运行中任务的ARN(包含ID):
aws ecs list-tasks --cluster <你的集群名> --service-name <你的服务名>
如果只想提取纯任务ID(去掉ARN前缀),用jq过滤更方便:
aws ecs list-tasks --cluster <你的集群名> --service-name <你的服务名> | jq -r '.taskArns[] | split("/")[-1]'
这里split("/")[-1]是从ARN里截取最后一段,也就是任务ID,-r确保输出不带引号。
批量查询多个服务的任务ID
如果要一次性查多个服务,写个简单循环就行:
CLUSTER="你的集群名称" SERVICES=("服务A" "服务B" "服务C") for SERVICE in "${SERVICES[@]}"; do echo "=== 服务 $SERVICE 的任务ID ===" aws ecs list-tasks --cluster $CLUSTER --service-name $SERVICE | jq -r '.taskArns[] | split("/")[-1]' echo "" done
额外需求:获取任务详细信息
要是除了ID还需要任务的具体配置、状态等数据,可以把list-tasks的结果传给describe-tasks:
# 先拿到任务ARN列表 TASK_ARNS=$(aws ecs list-tasks --cluster <你的集群名> --service-name <你的服务名> | jq -r '.taskArns | join(" ")') # 查询任务详情 aws ecs describe-tasks --cluster <你的集群名> --tasks $TASK_ARNS
内容的提问来源于stack exchange,提问作者kumar
相关产品推荐
相关产品推荐

