首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grep执行aws ecs‘ecs’命令

使用grep执行aws ecs‘ecs’命令
EN

Stack Overflow用户
提问于 2021-07-09 17:46:45
回答 2查看 417关注 0票数 0

我想用aws ecs执行容器命令连接到我的容器。

代码语言:javascript
复制
aws ecs execute-command --cluster <cluster> --task <task_id> --container <container_name> --interactive --command "/bin/bash"

目前,我需要进入我的aws仪表板并获取任务id,但最近我意识到我可以只使用

代码语言:javascript
复制
aws ecs list-tasks --cluster <cluster> --family <container> | grep -e "arn"

**注:我仍然需要从结果中获取实际身份

我想运行第二个输出并使用输出调用第一个输出。

我试过:

代码语言:javascript
复制
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"

代码语言:javascript
复制
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"

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2022-10-27 10:30:07

您可以使用jq来解析结果,而不是grep。例如:

  1. 列出集群中的可用任务,返回一个json响应:
代码语言:javascript
复制
aws ecs list-tasks --cluster "$cluster" --region "$region"
  1. 使用jq提取第一个任务arn
代码语言:javascript
复制
jq -r .taskArns[0]
  1. 运行execute-command,使用xargs将管道输出作为arg:
代码语言:javascript
复制
xargs aws ecs execute-command --cluster "$cluster" --region "$region" --container "$container" --command "/bin/bash" --interactive --task

合在一起:

代码语言:javascript
复制
aws ecs list-tasks --cluster "$cluster" --region "$region" | \
  jq -r .taskArns[0] | \
  xargs aws ecs execute-command --cluster "$cluster" --region "$region" --container "$container" --command "/bin/bash" --interactive --task

为了便于使用,我建议将它放入bash脚本中,但是如果您想要一个一行脚本,就可以做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2021-07-09 19:07:23

这很难看,但起作用了

代码语言:javascript
复制
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"\"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68320915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档