2017-06-19 3 views
3

CLIを使用してECSでタスクを強制終了しようとしています。CLIを介したAWS ECSのストップペインティングタスク(引数oashutを引数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プログラムの出力/引数の入力補間ですが、私はそれを見て、その底に到達することはできません。

+0

クラスタ " - サービス名" my-service "| jq .taskArns [0] ' – 123

+1

' ARN'は特殊文字を持っていますか?次のように引用符でコマンド置換を試すことができます: 'aws ecs stop-task --cluster" my-cluster "--task" $(aws ecs list-tasks --cluster "my-cluster" --service-name " "aws ecs list-tasks - my-service" | jq .taskArns [0]) "" – Inian

+1

aws cliは本質的にjqが組み込まれているので、より簡単な方法でタスクをクエリできます。 -cluster "my-cluster" --service "my-service" --output text --query taskArns [0] ' – nathanpeck

答えて

2

AWS CLI基本的にので、あなたのタスクのARNを照会するためのより良い(単純な)方法はとなりに建てJQました:my-」--cluster `AWSのECSリスト・タスクの出力は何

aws ecs list-tasks --cluster "my-cluster" --service "my-service" --output text --query taskArns[0] 
関連する問題