查找aws ecs最新任务和使用的镜像

Find aws ecs latest task and image used

我想找出用于 ECS 容器服务的最新任务和图像。我尝试使用 AWS ECS cli,能够列出 services/tasks 运行 但无法找出 运行 最新的任务 ID 和用于该任务的图像。有人可以帮助 AWS CLI 或 Boto 脚本找出最新的任务和使用的图像。

你能做这样的事情吗(未测试)?

aws ecs describe-services \
--service <name> \
--query "reverse(sort_by(services, &CreatedAt)).taskDefinition[0] 

想法是按反向创建日期列出集群中的服务,并获得返回的第一个 taskDefinition

我的帐户中没有活动服务,因此目前无法对此进行测试,但逻辑应该成立

已接受的答案对我不起作用,我需要获取最新的任务定义 ARN。

常规 aws cli 命令

提供输出为:

     aws ecs list-task-definitions --status active
{
    "taskDefinitionArns": [
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:8",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:9",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:10",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:11",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:12",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:13",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/diag:14",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kafka:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo-dev:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo-dev:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo-dev:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/mongo:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/sqlserver:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:8",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:9",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:10",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:11",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:12",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:13",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:14",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:15",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:16",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:17",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:18",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:19",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:20",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:21",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/web-api:22",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/apm:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/apm:15",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/apm:17",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/apm:18",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/elasticsearch:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/filebeat:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/filebeat:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/filebeat:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/hadoop-single:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/hadoop-single:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/hadoop-single:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/hadoop-single:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/hadoop-single:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:8",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:9",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:10",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:11",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:12",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:13",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/kibana:14",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:1",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:2",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:3",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:4",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:5",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:6",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:7",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:8",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:9",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:10",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:11",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:12",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:13",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:14",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:15",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:16",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:17",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:18",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:19",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:20",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:21",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/logstash:23",
        "arn:aws:ecs:eu-north-1:nnnnnnnnnnnn:task-definition/metricbeat:1"
    ]
}

即使过滤器 --status active 也无济于事,因为它默认处于启用状态。

所以深入挖掘让我得到了这个命令,它提供了干净的最新工作 aws 任务定义版本 arn:

aws ecs describe-services --cluster ecs-cluster --service task1 \
--query "services[].taskDefinition" | jq -r ".[0]"

arn:aws:ecs:eu-central-1:nnnnnnnnnnnn:task-definition/task1:22

今天,我需要做这个但是在没有服务的任务中。而且,令我惊讶的是命令:

aws ecs describe-task-definition --task-definition task-definition-name

return 带有最后一个任务定义的 json。

所以,我做这个是为了取名 json:

aws ecs describe-task-definition --task-definition task-definition-name | jq '.[] | .taskDefinitionArn'