Hoe verwijder je een AWS ECS-taakdefinitie?

Als je eenmaal een taakdefinitie hebt gemaakt in Amazon’s EC2 Container Service, hoe verwijder je deze dan?


Antwoord 1, autoriteit 100%

Het is een bekend probleem. Zodra u een taakdefinitie uitschrijft, gaat deze naar de status INACTIEF en vervuilt de ECS-console.

Als je ervoor wilt stemmen dat het wordt opgelost, is er een probleem op Github. Geef het gewoon een duim omhoog en het zal de prioriteit van het verzoek verhogen.


Antwoord 2, autoriteit 13%

Ik heb onlangs deze kern gevonden (met dank aan de maker voor het delen!) waarmee alle taakdefinities voor uw specifieke regio worden gederegistreerd – misschien kunt u deze aanpassen om er een paar over te slaan die u wilt behouden: https://gist.github.com/jen20/e1c25426cc0a4a9b53cbb3560a3f02d1

Je moet jq hebben om het uit te voeren:
brew install jq

Ik heb mijn regio “hardgecodeerd”, voor mij is het eu-central-1, dus zorg ervoor dat je het aanpast aan jouw gebruik:

#!/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

Als ik het vervolgens start, worden ze verwijderd:
Deregistering arn:aws:ecs:REGION:YOUR_ACCOUNT_ID:task-definition/NAME:REVISION...


Antwoord 3, autoriteit 8%

Oneline-aanpak geïnspireerd door Anna Areply:

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'

Antwoord 4, autoriteit 8%

Er is geen optie om een ​​taakdefinitie op de AWS-console te verwijderen.

Maar u kunt een taakdefinitie deregistreren (verwijderen) door het volgende commando aantal revisies dat u heeft uit te voeren:

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

Bewerken: Bewerkt na opmerkingen voor meer begrip

Other episodes