ちょっと更新が滞っているので、ライトなネタをいくつか。
Waiters
AWS CLI 1.6.0で追加された機能で、オプションに指定したステータスとなったらプロンプトを返してくれる。つまり、ある処理が終わって状態が遷移するまで待たせることができる。
これで、sleep&retryの実装不要!と思ったけど、ちょっと不安が。これって下手にスクリプトにしてバグったら永遠に終了しないのでは?
Waitersをtimeoutさせる
検索していたらLinuxにはこんな便利なコマンドがあることを発見。起動中のEC2インスタンスを使って試してみると。
$ timeout 5 aws ec2 wait instance-running --instance-ids $INSTANCEID $ echo $? 0
これだとプロンプトがすぐに返ってくるのでよくわらない。ではそのままinstance-stoppedをwaitしてみると。
$ timeout 5 aws ec2 wait instance-stopped --instance-ids $INSTANCEID $ echo $? 124
5秒してエラーになった。これでいつかは終わるスクリプトにできそうだ。Return Codeはよくわからないけど、エラー判定もできるし良い感じ。
バックアップの自動化案件が増えてきたので、AMIのステータスもwaitして欲しい。Exponential Backoffしないとダメなのですかねえ。