Me gustaría obtener una lista de definiciones de tareas desde las que puedo crear una lista a través de AWS CLI. Aquí hay una lista parcial del comando;

aws ecs list-task-definitions --region eu-west-1

{
    "taskDefinitionArns": [
        "arn:aws:ecs:eu-west-1:543573289192:task-definition/audience-view-dev-api:4", 
        "arn:aws:ecs:eu-west-1:543573289192:task-definition/audience-view-dev-groups:4", 
        "arn:aws:ecs:eu-west-1:543573289192:task-definition/audience-view-dev-groups:5", 
        "arn:aws:ecs:eu-west-1:543573289192:task-definition/audience-view-dev-mock-api:1", 
        "arn:aws:ecs:eu-west-1:543573289192:task-definition/audience-view-dev-mock-responder:1"
    ]
}

De esto me gustaría mostrar solo;

audience-view-dev-api
audience-view-dev-groups
audience-view-dev-groups
audience-view-dev-mock-api
audience-view-dev-mock-responder

Creo que si canalizo esto a jq, ¿puedo obtener lo que busco? Estoy probando varias combinaciones de; aws ecs list-task-definitions --region eu-west-1 | jq -r '.taskDefinitionArns[].<something_here>' fue en vano

4
eekfonky 19 oct. 2017 a las 17:51

3 respuestas

La mejor respuesta

Para obtener valores únicos:

aws ecs list-task-definitions | jq -r '.taskDefinitionArns[] | match(".*/([^:]+):[0-9]+$").captures[0].string' | sort | uniq
1
Robert Columbia 20 jul. 2018 a las 16:31

Prueba esto:

$ aws ecs list-task-definitions --region eu-west-1 \
  | jq -Mr '.taskDefinitionArns[] | split(":")[5] | split("/")[1]'

Expandida:

  .taskDefinitionArns[]     # for each taskDefinitionArns
| split(":")[5]             # take entry [5] after splitting by :
| split("/")[1]             # take entry [1] after splitting by /
4
jq170727 19 oct. 2017 a las 15:15

Con la función jq match :

aws ecs list-task-definitions --region eu-west-1 \
| jq -r '.taskDefinitionArns[] | match(".*/([^:]+):[0-9]+$").captures[0].string'
  • ".*/([^:]+):[0-9]+$" - patrón de expresiones regulares para que coincida con la secuencia entre / y los últimos : caracteres

La salida:

audience-view-dev-api
audience-view-dev-groups
audience-view-dev-groups
audience-view-dev-mock-api
audience-view-dev-mock-responder

https://stedolan.github.io/jq/manual/v1.5/#match(val),match(regex;flags)

3
RomanPerekhrest 19 oct. 2017 a las 15:37