Sim*_*mon 7 bash command-line-interface amazon-web-services
我正在尝试通过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程序输出/自变量输入插值,但是我已经向上看了,无法深入到其底部。
AWS cli本质上内置了jq,因此使用以下更好(更简单)的方式来查询任务arn:
aws ecs list-tasks --cluster "my-cluster" --service "my-service" --output text --query taskArns[0]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1083 次 |
最近记录: |