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を作った」