Используйте grep для выполнения команды aws ecs «выполнить»

#bash #amazon-web-services #amazon-ecs

Вопрос:

Я хотел бы подключиться к своим контейнерам с помощью команды aws ecs выполнить контейнер

 aws ecs execute-command --cluster <cluster> --task <task_id> --container <container_name> --interactive --command "/bin/bash"
 

В настоящее время мне нужно перейти на панель управления aws и получить идентификатор задачи, но недавно я понял, что могу просто использовать

 aws ecs list-tasks --cluster <cluster> --family <container> | grep -e "arn"
 

** Обратите внимание, что мне все еще нужно получить фактический идентификатор из результата

Я хотел бы запустить второй и использовать выходные данные для вызова первого

Я пытался:

 aws ecs list-tasks --cluster <cluster>--family <family> | grep -e "arn" | aws ecs execute-command --cluster <cluster> --task $1 --container <container> --interactive --command "/bin/bash"
 

и

 aws ecs execute-command --cluster <cluster>--task $(aws ecs list-tasks --cluster <cluster> --family <task-family> | grep -e "arn" | awk '{print $1}')  --container <container-name> --interactive --command "/bin/bash"
 

есть какие-нибудь идеи ?

Комментарии:

1. docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html

Ответ №1:

Это некрасиво, но это сработало

 alias connect-to-app="aws ecs execute-command --cluster <cluster> --task "$(aws ecs list-tasks --cluster <cluster> --family <family> | grep -e "arn" | grep -o '/<cluster>/w*' | sed "s@/<cluster>/@@g")" --container <container> --interactive --command "/bin/bash""