継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

AWS CLI のコマンド実行を補助する「aws-shell」の紹介

タダです.

AWS CLI 使っていて予測変換機能やパラメータをドキュメントを都度確認せずとも実行できたら楽だなと思っていたのですが, AWS Labsを漁っていたところ「aws-shell」というツールを見つけましたので今回の記事ではこのツールについて紹介します.なお,このツールは現時点で開発者プレビューのツールとなりますのでその点は注意ください.

The aws-shell is currently in developer preview. We welcome feedback, feature requests, and bug reports. There may be backwards incompatible changes made in order to respond to customer feedback as we continue to iterate on the aws-shell.

aws-shell の概要

aws-shell」は,AWS CLI のコマンド入力をインタラクティブに支援してくれるツールです.

github.com

普段僕は,コマンドを入力するときはドキュメントを確認しつつ入力しています.ただこのツールは画像のように「どんなコマンドがあるか」「どんなパラメータがあるか」をターミナルに表示しながらナビゲート(インタラクティブ)してくれるところが特徴的です.

f:id:sadayoshi_tada:20190809180939p:plain

また,過去の実行したコマンドをナビしてくれたり,パラメータを提案してくれたりもします.便利な機能ですよね.

f:id:sadayoshi_tada:20190809185435p:plain

f:id:sadayoshi_tada:20190809185600p:plain

ツールの導入方法

導入方法は簡単でpip install aws-shellのみで導入できてしまいます.なお,実行環境の Python には以下の制約があるため注意が必要です.また,当然 AWS CLIは導入しておくのはお忘れなく.

The aws-shell works on the same python versions supported by the AWS CLI:

2.6.5 and greater

2.7.x and greater

3.3.x and greater

3.4.x and greater

AWS CLI の導入のドキュメント

docs.aws.amazon.com

ツール導入後はaws-shellと打てば起動完了です.

$ aws-shell
aws>

aws-shell 利用方法

aws-shell」を導入したら実際に使ってみましょう.AWS CLI との違いはawsコマンドを入力が不要という点です.例えば,S3 関連コマンドを実行したい場合はいきなりs3 lsといった形で実行可能です.あとはツールが補完してくれるコマンドやオプションに沿ってコマンドを入力すればよいのですが,その他のツールの利用方法を以下でまとめます.

profile の切り替え

AWS CLIではコマンド実行時にアカウントや権限を分けたい場合は--profile オプションをつけて実行しますが「aws-shell」では以下のコマンドを使うことで切り替え可能です.

※profile の切り替えは2パターンある
【パターン1】
$ aws-shell --profile <profile名>

【パターン2】
aws> .profile <profile名>

※現状の profile の確認コマンド
aws> .profile
Current shell profile: admin

Liunx コマンドの利用

Linux コマンドを一緒に使いたい場合や Linux コマンド単体で実行したい場合があると思います.基本的には!catのように「!」をコマンドの前につけます.一部のコマンドは.cd(ディレクトリ移動コマンド),.exit/.quit(「aws-shell」終了のコマンド),.edit(エディタ起動コマンド)は定義されたコマンドもあります.なお,パイプやリダイレクト時は「!」は不要のようです.

aws> !ls /tmp/
foo.txt                                    bar.txt
aws> dynamodb list-tables --output text | head -n 1
TABLENAMES     First
aws> dynamodb list-tables --output text > /tmp/foo.txt

コマンド履歴の確認

過去に実行したコマンドを確認したい場合は,~/.aws/shell/historyファイルに格納されています.

aws> !cat ~/.aws/shell/history
# 2019-08-09 17:58:50.770101
+ec2 describe-regions

# 2019-08-09 17:59:00.594925
+s3 ls

aws-shell を終了する

aws-shell」を終了したい場合は.exitまたはF10,CTRL-Dを実行します.

aws> .exit
$

その他のツールオプション

aws-shell」にはツールオプションが用意されていて,現状以下の利用が可能です.

F2 toggles between fuzzy and substring matching

F3 toggles between VI and Emacs key bindings

F4 toggles between single and multi column auto completions

F5 shows and hides the help documentation pane

F9 toggles focus between the cli and documentation pane

F10 or Ctrl-D exits the aws-shell

まとめ

AWS CLI 補助ツールの「aws-shell」の概要,導入方法とツールの利用例を紹介しました.AWS CLI を使うときにドキュメントを都度確認したりすることに煩雑さを感じる方は本ツールを使ってみてはいかがでしょうか? 僕も普段使いでも使っていって改善点などあればフィードバックを行なってよりよくしていくようリクエスト出していきたいと思います!

関連記事

AWS CLI ツールを紹介した他記事もよければ! sadayoshi-tada.hatenablog.com