ちょっと更新が滞っているので、ライトなネタをいくつか。

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しないとダメなのですかねえ。

 

TOP