仅从 aws-cli 的响应中获取任务 ID 或属性 json

Get only the task id or attribute from aws-cli's response json

我可以通过这个命令获取任务id

$aws ecs list-tasks --cluster mycluster

{
    "taskArns": [
        "arn:aws:ecs:ap-northeast-1:142324134231:task/mycluster/44645ae88f294ed9af3f4d809b3f1721",
        "arn:aws:ecs:ap-northeast-1:142324134231:task/mycluster/73af9f9645d2412bba1344bf0e362fd5"
    ]
}

然后我复制并粘贴任务 ID 和执行命令。

aws ecs execute-command \
    --cluster mycluster \
    --task 44645ae88f294ed9af3f4d809b3f1721 \
    --container DjangoContainer \
    --interactive \
    --command "/bin/bash"

有没有办法自动执行此操作?

是shell脚本的问题还是aws-cli中有这样的功能?

(例如(假的))

$aws ecs list-tasks --cluster mycluster --show-taskonly
44645ae88f294ed9af3f4d809b3f1721

所以,我目前的想法是使用php正则表达式从响应中获取id,并编写新命令。

不过听起来并不酷。

有什么好的做法吗?

要仅获取 ID,您可以使用 --query:

aws ecs list-tasks --cluster JAJP1LFGTN075  --query "taskArns" --output text