phineのブログ

awscliの入力を楽にする方法

AWS (Amazon Web Services) ユーザーの多くが、awscli を使っていることでしょう。しかし、awscli はサブコマンドやオプションが多く、なかなか覚えられません。その結果、ヘルプを何度も見返すことになり、非効率に感じることがあります。そこで、awscli を便利にする2つの方法を紹介します。

  • コマンド補完
  • SAWS: A Supercharged AWS CLI

私は macOS High Sierra を使用していますが、今回ご紹介する方法は LinuxWindows でもほぼ同様に使えます。

コマンド補完

シェルコマンドを入力する場合に、TAB キーを押して部分的に入力されたコマンドを補完できるようにする方法です。ここでは Bash での設定方法を説明します*1

まず、aws_completer のパスを確認します。awscli がインストールされていれば aws_completer もインストールされているはずです。

$ which aws_completer
/usr/local/bin/aws_completer

次に、~/.bashrc に以下の1行を追加します。aws_completer のパスは、実際のパスに合わせてください。

complete -C '/usr/local/bin/aws_completer' aws

.bashrc を読み直して、上記の設定が機能しているか確認してみましょう。

$ source ~/.bashrc
$ aws s3 ← ここで TAB を2回押してみます
cp ls mb mv presign rb rm sync website

aws s3 のサブコマンド候補がリストアップされるようになりました。 同様に、オプションも自動補完されます。

$ aws s3 ls --←ここで TAB を2回押してみます
--ca-bundle --color --human-readable --no-verify-ssl --profile --region --version
--cli-connect-timeout --debug --no-paginate --output --query --request-payer
--cli-read-timeout --endpoint-url --no-sign-request --page-size --recursive --summarize

これで help コマンドを使う回数がいくらか減らせるのではないでしょうか。

SAWS: A Supercharged AWS CLI

SAWS は awscli をラップして、便利機能を提供してくれるツールです。コマンドの自動補完だけではなく、AWS リソースの補完まで行ってくれる他、コマンドや出力結果の色付け、ショートカット機能など、豊富な機能を持っています。

インストール

通常は、以下のコマンドでインストールできます。

$ sudo pip install saws

しかし、2018年4月16日現在、Mac OS X 環境下では既知の問題があり、追加オプションをつけてインストールを行う必要があります。

$ sudo pip install saws --upgrade --ignore-installed six

使い方

シェルプロンプトから "saws" を実行します。

$ saws
No resource cache found
Refreshing resources...
  Refreshing instance ids...
  Refreshing instance tag keys...
  Refreshing instance tag values...
  Refreshing bucket names...
  Refreshing bucket uris...
Done refreshing
Version: 0.4.3
Theme: vim
saws>

"saws>" プロンプトが表示されますので、そこから awscli を実行します。
補完されたり、色付けされたりする様子は、GitHub のページの紹介がわかりやすいかったので、以下で引用しています。

f:id:phine:20180416224425g:plain
出典:https://github.com/donnemartin/saws

サブコマンドやオプションだけではなく、AWS リソースの補完ができるのはとても便利です。

まとめ

awscli の入力を楽にする2つの方法を紹介しました。aws_completer は標準的な方法と言えるでしょうが、SAWS を使うとより便利になります。
SAWS には、ここでは紹介していない便利な機能が他にもありますので、詳しくは GitHub のページ(英語)を参照するなどして、実際に触ってみてください。

*1:ZSHtcsh を使用している場合にはこちらのページを参照してください。