#awsECSにデプロイするスクリプトを書くとき、waitコマンドがとても便利だった。デプロイする前にいくつかのECSタスクを実行し完了を待ってからデプロイしたい場合、ECSタスクのステータスをポーリングして完了したかどうかを監視する必要がある。run-taskは即座に終了し、タスクの実行自体は非同期に行われるからだ。したとき、waitコマンドを使うと簡単にポーリングを行うことができる。describe-tasksを定期的に実行してレスポンスからステータスを取得し、それが完了するまで待つ。--tasksオプションはECSタスクのARNを複数指定できるので、複数のタスクがすべて完了するのを待つことができる。run-taskのレスポンスから取得できる。実際にはこんな感じで書くと思う。${task_arn1}気をつける必要があるのは、ECSタスクが完了したかどうかは分かるものの、それが成功したのか失敗したのかは分からないということだ。waitの後でdescribe-tasksによって失敗したかどうかをチェックする必要があるとおもう。waitコマンドはタスクの完了だけでなくサービスのステータスの監視でも使えるし、またECS以外にもEC2などで使えるのでawscliを使ったスクリプトを書くときには今後もお世話になりそう。