AWS SDK for Rubyのv2は残念ながらまだ開発途上のようでちょいちょい足りない機能がある。
なぜかElastiCacheの構築スクリプトを書いていたらWaiterが実装されていないことに気づいた。
Monkey PatchingできないかSDKのコードを確認したがJSONからAPIなどを生成するようなことをしていて、ちょい面倒そうだったので素直に雑なコードを書いた。
# "client" is instance of AWS::ElastiCache::Client
def wait_available(client, id)
loop do
status = client.describe_cache_clusters(cache_cluster_id: id)
.cache_clusters
.first
.cache_cluster_status
break if status == 'available'
sleep 10
end
end