如何删除AWS ECS任务定义?

时间:2016-01-27 18:29:47

标签: amazon-web-services containers amazon-ecs

一旦您在亚马逊的EC2容器服务中创建了任务定义,您如何删除或删除它?

6 个答案:

答案 0 :(得分:29)

它是known issue。取消注册任务定义后,它将进入INACTIVE状态并使ECS控制台变得混乱。

答案 1 :(得分:2)

灵感来自 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'

答案 2 :(得分:1)

我最近发现了这个要点(非常感谢创建者分享!),该要点将取消注册您特定区域的所有任务定义-也许您可以对其进行修改以跳过一些您想保留的任务:{{3} }

您需要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...

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:0)

您可以使用以下命令取消注册(删除)任务定义:aws ecs deregister-task-definition --task-definition task_defination_name:revision_no

答案 5 :(得分:-1)

现在已在AWS CLI中实施:https://docs.aws.amazon.com/cli/latest/reference/ecs/deregister-task-definition.html

aws ecs deregister-task-definition --task-definition {def-name:revision|ARN}

但它尚未在AWS控制台中使用。