AWS CLI は AWS を利用したサービスを管理するための優れたリソースですが、以下の使用法を覚えるのは困難です。
SAWS
以下に焦点を当てた機能で AWS CLI を強化することを目指しています。
SAWS
内部的にAWS CLI を利用しており、同じコマンドとコマンド構造をサポートしています。
SAWS
およびAWS CLI
の使用:
aws [parameters] [options]
SAWS
機能:
SAWS
、Mac、Linux、Unix、および Windows で利用できます。
~/.sawsrc ファイルを更新することで、構文強調表示のためにどのテーマを読み込むかを制御できます。
# Visual theme. Possible values: manni, igor, xcode, vim, autumn, vs, rrt,
# native, perldoc, borland, tango, emacs, friendly, monokai, paraiso-dark,
# colorful, murphy, bw, pastie, paraiso-light, trac, default, fruity
theme = vim
SAWS
、入力時にスマートなオートコンプリートを提供します。次のコマンドを入力すると、 ec2
にのみ固有のすべてのサブコマンドが対話形式で一覧表示され、オートコンプリートされます。
aws ec2
AWS CLI が提供するデフォルトのコマンド、サブコマンド、オプションに加えて、 SAWS
AWS リソースの自動補完をサポートしています。現在、バケット名、インスタンス ID、およびインスタンス タグが含まれており、開発中のより多くのリソースに対する追加サポートが含まれています。
s3api
のオプション:
--bucket
使用例:
aws s3api get-bucket-acl --bucket
s3
の構文:
s3://
使用例:
aws s3 ls s3://
注: 以下の例は、ファジー リソース補完の使用を示しています。
ec2
のオプション:
--instance-ids
使用例:
aws ec2 describe-instances --instance-ids
aws ec2 ls --instance-ids
注: ls
コマンドは、カスタマイズ可能なショートカットの使用方法を示しています。
ec2
のオプション:
--ec2-tag-key
--ec2-tag-value
使用例:
aws ec2 ls --ec2-tag-key
aws ec2 ls --ec2-tag-value
タグは、 *
文字を使用したワイルドカードをサポートします。
注: ls
、 --ec2-tag-value
、および--ec2-tag-key
カスタマイズ可能なショートカットの使用法を示しています。
追加リソースのサポートが必要な場合は、お気軽に問題またはプル リクエストを送信してください。
~/.saws.shortcuts ファイルには、変更できるショートカットが含まれています。すぐに使えるいくつかの便利なショートカットがあらかじめ設定されています。ショートカットとファジー補完を組み合わせて、キーストロークをさらに減らすことができます。以下にいくつかの例を示します。
すべての EC2 インスタンスを一覧表示します。
aws ec2 ls
実行中のすべての EC2 インスタンスを一覧表示します。
aws ec2 ls --ec2-state running # fuzzy shortcut: aws ecstate
一致するタグを持つすべての EC2 インスタンスをリストします (ワイルドカード*
をサポートします)。
aws ec2 ls --ec2-tag-key # fuzzy shortcut: aws ectagk
aws ec2 ls --ec2-tag-value # fuzzy shortcut: aws ectagv
一致する ID を持つ EC2 インスタンスをリストします。
aws ec2 ls --instance-ids # fuzzy shortcut: aws eclsi
すべての DynamoDB テーブルをリストします。
aws dynamodb ls # fuzzy shortcut: aws dls
すべての EMR クラスターをリストします。
aws emr ls # fuzzy shortcut: aws emls
ニーズに合わせて ~/.saws.shortcuts ファイル内のショートカットを追加/削除/変更します。
ご自由に送信してください:
AWS リソースとショートカットのあいまい補完を切り替えるには、 F3
キーを使用します。
EC2 インスタンスを開始および停止するためのあいまいなショートカットの例:
aws ecstop
aws ecstart
注: ファジー補完は現在、AWS リソースとショートカットでのみ機能します。
SAWS
Fish スタイルの自動提案をサポートしています。 right arrow
キーを使用して提案を完了します。
SAWS
、 saws>
プロンプトからシェル コマンドを実行できます。
SAWS
入力されたコマンドを追跡し、 ~/.saws-history
に保存します。上矢印キーと下矢印キーを使用して、コマンド履歴を循環します。
SAWS
コンテキストに応じたコマンド ラインhelp
とコンテキストに応じた Web docs
をサポートします。
help
コマンドは AWS CLI を利用しており、コマンドライン内にヘルプを出力します。
使用法:
aws help
場合によっては、どの特定のコマンド/サブコマンド/オプションの組み合わせを使用する必要があるのかがよくわからない場合があります。このような場合、 help
コマンドラインをいくつか組み合わせて参照するのは、ウェブブラウザーでオンラインの AWS CLI ドキュメントを参照するのと比べて面倒です。
SAWS
、 docs
コマンドまたはF9
キーを使用したコンテキスト Web ドキュメントをサポートします。 SAWS
現在入力されているコマンドおよびサブコマンドに固有の Web ドキュメントを表示します。
使用法:
aws docs
SAWS
次のような多数のツールバー オプションをサポートしています。
F2
出力構文の強調表示を切り替えますF3
AWS リソースとショートカットの曖昧な補完を切り替えますF4
ショートカットの完了を切り替えますF5
リソースを更新してオートコンプリートを行うF9
押すとコンテキストに応じた Web ドキュメントが表示されますF10
またはcontrol d
SAWS
終了しますSAWS
Windows 7 と Windows 10 でテストされています。
Windows では、.sawsrc ファイルは%userprofile%
にあります。例えば:
C:Usersdmartin.sawsrc
標準の Windows コマンド プロンプトを使用することもできますが、cmder または conemu を使用したほうがより良いエクスペリエンスを得ることができるでしょう。
SAWS
は PyPI でホストされています。次のコマンドは、AWS CLI などの依存関係とともにSAWS
インストールします。
$ pip install saws
まだ PyPI にプッシュされていない変更を含む可能性がある GitHub ソースから最新のSAWS
インストールすることもできます。
$ pip install git+https://github.com/donnemartin/saws.git
virtualenv にインストールしていない場合は、 sudo
を使用して実行します。
$ sudo pip install saws
インストールしたら、 SAWS
を起動します。
$ saws
依存関係や権限に関する潜在的な問題を回避するために、Python パッケージを virtualenv にインストールすることをお勧めします。
SAWS
virtualenv
と Docker のインストール手順を表示するには、ここをクリックしてください。
Apple とそれに含まれる Python パッケージの依存関係には既知の問題があります (詳細は pypa/pip#3165 を参照してください)。この問題を解決する方法を調査中ですが、それまでの間、saw をインストールするには、次のコマンドを実行できます。
$ sudo pip install saws --upgrade --ignore-installed six
AWS CLI を使用して認証情報を設定します。
$ aws configure
SAWS
で特定の名前付きプロファイルを使用する場合は、OS X、Linux、または Unix で次のコマンドを実行します。
$ export AWS_DEFAULT_PROFILE=user1
$ saws
またはワンライナーとして:
$ AWS_DEFAULT_PROFILE=user1 saws
Windows ユーザーは次のコマンドを実行できます。
> set AWS_DEFAULT_PROFILE=user1
> saws
特定のプロファイルでSAWS
起動するためのコマンド ライン オプションは開発中です。 AWS CLI のインストールおよび設定方法の詳細については、次のドキュメントを参照してください。
簡単なテストによると、 SAWS
Python 3.5 とも互換性があるようです。
boto からのサポートがないため、Pypy3 はサポートされていません。
SAWS
に貢献することに興味がある場合は、次のコマンドを実行します。
$ git clone https://github.com/donnemartin/saws.git
$ pip install -e .
$ pip install -r requirements-dev.txt
$ saws
継続的インテグレーションの詳細は、Travis CI で入手できます。
依存関係管理の詳細は、Gemnasium で入手できます。
アクティブな Python 環境で単体テストを実行します。
$ python tests/run_tests.py
複数の Python 環境で tox を使用して単体テストを実行します。
$ tox
ソース コードのドキュメントは Readthedocs.org で入手できます。
次のコマンドを実行してドキュメントを構築します。
$ scripts/update_docs.sh
貢献は大歓迎です!
以下の方法の詳細については、貢献ガイドラインを確認してください。
SAWS
内部で強化するための AWS による AWS CLISAWS
の作成を簡素化するための jonathanslenders による Python Prompt ToolkitSAWS
の作成にインスピレーションを与え、いくつかの便利なユーティリティ機能を提供する j-bennet の Wharfee 問題、質問、コメントがございましたら、お気軽にご連絡ください。
このリポジトリ内のコードとリソースは、オープン ソース ライセンスに基づいて提供されています。これは私の個人的なリポジトリであるため、私のコードとリソースに対するライセンスは私からのものであり、私の雇用主 (Facebook) からのものではありません。
Copyright 2015 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.