一旦您在亚马逊的EC2容器服务中创建了任务定义,您如何删除或删除它?
答案 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控制台中使用。