60

在 Amazon 的 EC2 容器服务中创建任务定义后,如何删除或移除它?

4

5 回答 5

84

这是一个已知问题。一旦您取消注册一个任务定义,它就会进入 INACTIVE 状态,并使 ECS 控制台变得混乱。

如果你想投票修复它,Github 上有一个问题。只需竖起大拇指,它就会提高请求的优先级。

于 2016-01-27T20:45:35.120 回答
12

我最近发现了这个要点(非常感谢创建者的分享!)它将取消注册您特定区域的所有任务定义 - 也许您可以对其进行调整以跳过一些您想要保留的内容:https://gist.github .com/jen20/e1c25426cc0a4a9b53cbb3560a3f02d1

你需要有 jq 来运行它: brew install jq

我“硬编码”了我的区域,对我来说它是eu-central-1,所以一定要根据你的用例调整它:

#!/usr/bin/env bash
get_task_definition_arns() {
    aws ecs list-task-definitions --region eu-central-1 \
        | jq -M -r '.taskDefinitionArns | .[]'
}

delete_task_definition() {
    local arn=$1

    aws ecs deregister-task-definition \
        --region eu-central-1 \
        --task-definition "${arn}" > /dev/null
}

for arn in $(get_task_definition_arns)
do
    echo "Deregistering ${arn}..."
    delete_task_definition "${arn}"
done

然后当我运行它时,它开始删除它们: Deregistering arn:aws:ecs:REGION:YOUR_ACCOUNT_ID:task-definition/NAME:REVISION...

于 2020-08-01T11:16:18.810 回答
6

受Anna A回复启发的 Oneline 方法:

aws ecs list-task-definitions --region eu-central-1 \
  | jq -M -r '.taskDefinitionArns | .[]' \
  | xargs -I {} aws ecs deregister-task-definition \
        --region eu-central-1 \
        --task-definition {} \
  | jq -r '.taskDefinition.taskDefinitionArn'
于 2021-02-06T17:24:39.357 回答
6

AWS 控制台上没有删除任务定义的选项。

但是,您可以通过执行以下命令来取消注册(删除)任务定义:

aws ecs deregister-task-definition --task-definitiontask_defination_name:revision_no

编辑:在评论后编辑以加深理解

于 2020-09-01T20:47:18.087 回答
1

创建以下要点以使用 JS CLI 安全地查看、过滤和取消注册 AWS 任务定义和修订(一次最多 100 个)。

https://gist.github.com/shivam-nagar/aa79b02b74f616f8714d51e419bd10de

可以使用它来取消注册任务定义的所有修订。这将导致任务定义本身被标记为不活动。

于 2021-07-23T18:05:56.830 回答