如何删除 AWS ECS 任务定义?
How do you delete an AWS ECS Task Definition?
在 Amazon 的 EC2 容器服务中创建任务定义后,如何删除或删除它?
这是一个 known issue。一旦您 de-register 任务定义,它就会进入 INACTIVE 状态并使 ECS 控制台变得混乱。
如果你想投票支持它被修复,有一个issue on Github。只需点个赞,它就会提升请求的优先级。
我最近发现了这个要点(非常感谢创建者的分享!)它将取消注册您特定区域的所有任务定义 - 也许您可以调整它以跳过一些您想保留的内容: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=
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...
AWS 控制台上没有删除任务定义的选项。
但是,您可以通过执行以下命令来注销(删除)任务定义:您拥有的修订数量:
aws ecs deregister-task-definition --task-definitiontask_defination_name:revision_no
编辑:评论后编辑以加深理解
受 Anna A 启发的在线方法回复:
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'
按照要点创建,以使用 JS CLI 安全地批量审查、过滤和取消注册 AWS 任务定义和修订(一次最多 100 个)。
https://gist.github.com/shivam-nagar/aa79b02b74f616f8714d51e419bd10de
可以使用它来注销任务定义的所有修订。这将导致任务定义本身标记为不活动。
在 Amazon 的 EC2 容器服务中创建任务定义后,如何删除或删除它?
这是一个 known issue。一旦您 de-register 任务定义,它就会进入 INACTIVE 状态并使 ECS 控制台变得混乱。
如果你想投票支持它被修复,有一个issue on Github。只需点个赞,它就会提升请求的优先级。
我最近发现了这个要点(非常感谢创建者的分享!)它将取消注册您特定区域的所有任务定义 - 也许您可以调整它以跳过一些您想保留的内容: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=
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...
AWS 控制台上没有删除任务定义的选项。
但是,您可以通过执行以下命令来注销(删除)任务定义:您拥有的修订数量:
aws ecs deregister-task-definition --task-definitiontask_defination_name:revision_no
编辑:评论后编辑以加深理解
受 Anna A 启发的在线方法回复:
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'
按照要点创建,以使用 JS CLI 安全地批量审查、过滤和取消注册 AWS 任务定义和修订(一次最多 100 个)。
https://gist.github.com/shivam-nagar/aa79b02b74f616f8714d51e419bd10de
可以使用它来注销任务定义的所有修订。这将导致任务定义本身标记为不活动。