我正在尝试通过CLI杀死ECS中的任务。
我可以通过执行以下任务来获取任务名称:
aws ecs list-tasks --cluster "my-cluster" --service-name "my-service" | jq .taskArns[0]
Run Code Online (Sandbox Code Playgroud)
输出:
"arn:aws:ecs:REGION:ACCOUNT-ID:task/TASK-GUID"
Run Code Online (Sandbox Code Playgroud)
任务的完整ARN作为字符串(我具有JSON的全局默认输出)。
我可以通过执行以下命令来终止任务:
aws ecs stop-task --cluster "my-cluster" --task "task-arn"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其结合时:
aws ecs stop-task --cluster "my-cluster" --task $(aws ecs list-tasks --cluster "my-cluster" --service-name "my-service" | jq .taskArns[0])
Run Code Online (Sandbox Code Playgroud)
我得到:
调用StopTask操作时发生错误(InvalidParameterException):taskId长于36。
我知道这可能是bash程序输出/自变量输入插值,但是我已经向上看了,无法深入到其底部。