在 Amazon 的 EC2容器服务中创建了任务定义之后,如何删除它?
一旦你注销了一个任务定义,它就会进入 INAIVE 状态,并且会把 ECS 控制台弄得乱七八糟。
如果你想投票修复它,有一个 在 Github 上发行。只要给它竖起大拇指,它就会提高请求的优先级。
我最近找到了这个要点(非常感谢创作者的分享!)这将注销您特定区域的所有任务定义-也许您可以调整它以跳过一些您想要保留的内容: https://gist.github.com/jen20/e1c25426cc0a4a9b53cbb3560a3f02d1
你需要 jq 来运行它: brew install jq
brew install jq
我“硬编码”了我的区域,对我来说是 eu-central-1,所以一定要根据你的用例调整它:
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...
Deregistering arn:aws:ecs:REGION:YOUR_ACCOUNT_ID:task-definition/NAME:REVISION...
在 AWS 控制台上没有删除任务定义的选项。
但是,您可以通过执行以下修订版本的命令号来取消注册(删除)任务定义:
aws ecs deregister-task-definition --task-definitiontask_defination_name:revision_no
受 安娜 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
可以使用它来取消注册任务定义的所有修订。这将导致任务定义本身被标记为非活动的。