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プログラムの出力/引数の入力補間ですが、私はそれを見て、その底に到達することはできません。
クラスタ " - サービス名" my-service "| jq .taskArns [0] ' – 123
' 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
aws cliは本質的にjqが組み込まれているので、より簡単な方法でタスクをクエリできます。 -cluster "my-cluster" --service "my-service" --output text --query taskArns [0] ' – nathanpeck