こんにちは、cloudpack山口 です。

Thorを使ってRubyで俺俺CLIツールを作ることが多いのですが、毎度毎度似たような処理(credentialsを受け取るオプション、それを使って各サービスのクライアントインスタンスを作ったりetc.)を書いていて不毛だなーと思ったのでGemにしました。

使い方は非常に簡単で、普通にThorを継承したクラスを作って include Thor::Aws するだけです。

これだけで、そのCLIに --access-key-id--secret-access-key--region--profile オプションが追加されます。これらはオプションを受け取った時だけ機能するので、指定しない場合は環境変数やIAM Roleのcredentialsが使用されます。

また、そのCLIに処理を実装するときに #ec2 というプライベートメソッドから Aws::EC2::Resource クラスのインスタンスを呼べるようになります。 #rds#s3 なども同様です。


上記の俺俺CLIを実行するとこんな感じ。

ご利用ください!

元記事はこちらです。
thor-aws というGemを作った