3
我试图通过CLI终止ECS中的任务。通过CLI在AWS ECS上停止任务(程序输出为参数输入bash)
我可以通过执行获取任务名称:
aws ecs list-tasks --cluster "my-cluster" --service-name "my-service" | jq .taskArns[0]
,输出:
任务作为一个字符串的全部ARN(我有一个全球性的默认输出JSON)。
我可以通过执行杀人任务:
aws ecs stop-task --cluster "my-cluster" --task "task-arn"
然而,当我试着结合起来:
aws ecs stop-task --cluster "my-cluster" --task $(aws ecs list-tasks --cluster "my-cluster" --service-name "my-service" | jq .taskArns[0])
我得到:
发生错误(抛出:InvalidParameterException)时调用StopTask操作:taskId长于36.
我知道这可能是bash程序输出/参数输入插值,但我已经查看了它,并且无法到达它的底部。
什么是'AWS ECS列表任务的输出--cluster“我的 - 集群“--service-name”my-service“| jq .taskArns [0]' – 123
'ARN'是否有任何特殊字符?你可以尝试在引号中的命令替换如下:'aws ecs stop-task --cluster“my-cluster”--task“$(aws ecs list-tasks --cluster”my-cluster“--service-name”我的服务“| jq .taskArns [0])” ' – Inian
另请注意,aws cli基本上内置jq,所以更好(更简单)的方式来查询您的任务arn将与:'aws ecs list-tasks- -cluster“my-cluster”--service“my-service”--output text --query taskArns [0]' – nathanpeck