GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

donnemartin

saws – スーパーチャージAWSコマンドラインインターフェイス(CLI)

投稿日:

スーパーチャージAWSコマンドラインインターフェイス(CLI)。

SAWS

動機

AWS CLI

AWS CLIは、AW​​Sによるサービスを管理するための優れたリソースですが、以下の用途を覚えておくのは難しいです:

  • 70+のトップレベルコマンド
  • 2000+のサブコマンド
  • 無数のコマンド固有のオプション
  • インスタンスタグやバケットなどのリソース

SAWS:超過AWS CLI

SAWSは、次の点に重点を置いてAWS CLIをSAWSすることを目指しています。

  • 使いやすさの向上
  • 生産性の向上

フードの下では、 SAWSAWS CLIによって動作し、 同じコマンドコマンド構造をサポートしています

SAWSAWS CLI使用法:

aws <command> <subcommand> [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は入力時にスマートな自動補完SAWS提供します。 次のコマンドを入力すると、 ec2 のみ固有のすべてのサブコマンドを対話形式でリストして自動ec2ます。

aws ec2

AWSリソースの自動完成

AWS CLIが提供するデフォルトのコマンド、サブコマンド、およびオプションに加えて、 SAWSはAWSリソースの自動補完をサポートしています。 現在、バケット名、インスタンスID、インスタンスタグが含まれており、 開発中のリソースの追加サポートが追加されています。

S3バケット

s3apiオプション:

--bucket

使用例:

aws s3api get-bucket-acl --bucket

s3構文:

s3://

使用例:

aws s3 ls s3://

注:以下の例は、 ファジーリソース補完の使用方法を示しています。

EC2インスタンスID

ec2オプション:

--instance-ids

使用例:

aws ec2 describe-instances --instance-ids
aws ec2 ls --instance-ids

注: lsコマンドは、 カスタマイズ可能なショートカットの使用方法を示しています。

EC2インスタンスタグ

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は、 カスタマイズ可能なショートカットの使用方法を示しています。

TODO:その他のリソースを追加する

追加リソースのサポートをご希望の場合は、問題またはプルリクエストを送信してください。

カスタマイズ可能なショートカット

〜/ .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は入力したコマンドを追跡し、 ~/.saws-history保存します。 上下の矢印キーを使用して、コマンド履歴を繰り返し表示します。

文脈ヘルプ

SAWSは、コンテキストコマンドラインhelpとコンテキストWeb docs helpサポートしています。

コンテキストコマンドラインヘルプ

helpコマンドはAWS CLIを使用しており、コマンドラインでヘルプを出力します。

使用法:

aws <command> <subcommand> help

状況に応じたWebドキュメント

場合によっては、使用する必要がある特定のコマンド/サブコマンド/オプションの組み合わせが何であるかがあまりよく分からないことがあります。 そのような場合、 helpコマンドラインでいくつかの組み合わせをブラウズするのは、Webブラウザを使用してオンラインのAWS CLIドキュメントをブラウズするのと比べて面倒です。

SAWSは、 docsコマンドまたはF9キーをSAWSしてコンテキストWebドキュメントをサポートします。 SAWSは、現在入力されているコマンドとサブコマンドに固有のWebドキュメントを表示します。

使用法:

aws <command> <subcommand> docs

ツールバーオプション

SAWSは多くのツールバーオプションをサポートしています:

Windowsサポート

SAWSは、Windows 7およびWindows 10でテスト済みです。

Windowsでは、 .sawsrcファイルは%userprofile%ます。 例えば:

C:\Users\dmartin\.sawsrc

標準的なWindowsのコマンドプロンプトを使用することはできますが、 cmderまたはconemuの方が良いでしょう。

インストール

ピップの設置

SAWSPyPI上でホストされています。 次のコマンドは、 AWS CLIなどの依存関係とともにSAWSをインストールします

$ pip install saws

GitHubソースから最新のSAWSをインストールすることもできます。これには、まだPyPIにプッシュされていない変更を含めることができます:

$ pip install git+https://github.com/donnemartin/saws.git

あなたがvirtualenvにインストールしない場合は、 sudoで実行してください:

$ sudo pip install saws

インストールが完了したら、 SAWS起動しSAWS

$ saws

仮想環境とドッカーのインストール

依存関係や権限の潜在的な問題を避けるため、Pythonパッケージをvirtualenvにインストールすることをお勧めします。

SAWS virtualenvDockerのインストール手順を表示するには、ここをクリックしてください

Mac OS X 10.11のEl Capitanユーザー

Appleには既知の問題と、それに含まれるpythonパッケージの依存関係があります(詳細はhttps://github.com/pypa/pip/issues/3165を参照 )。 私たちはこの問題を解決する方法を調査していますが、その間にソーをインストールするには、以下を実行してください:

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

AWS資格と名前付きプロファイル

AWS CLIを使用して資格情報設定します

$ aws configure

SAWSで特定の名前付きプロファイルを使用する場合は、OS X、Linux、またはUnixで次のコマンドを実行します。

$ export AWS_DEFAULT_PROFILE=user1
$ saws

または1つのライナーとして:

$ AWS_DEFAULT_PROFILE=user1 saws

Windowsユーザーは次のコマンドを実行できます。

> set AWS_DEFAULT_PROFILE=user1
> saws

特定のプロファイルでSAWSを起動するためのコマンドラインオプションが開発中です。 AWS CLIのインストールと設定の詳細については、以下のドキュメントを参照してください。

サポートされているPythonのバージョン

  • Python 2.6
  • Python 2.7
  • Python 3.3
  • Python 3.4
  • ピピ

ライトテストでは、 SAWSもPython 3.5と互換性があるようです。

boto のサポートがないため、Pypy3はサポートされていません。

サポートされているプラ​​ットフォーム

  • Mac OS X
    • OS X 10.10でテスト済み
  • Linux、Unix
    • Ubuntu 14.04 LTSでテスト済み
  • Windows
    • Windows 7および10でテスト済み

開発者のインストール

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

貢献する

貢献は歓迎です!

以下の方法の詳細については、 寄付ガイドラインを確認してください。

  • 問題を提出する
  • プルリクエストを送信する

クレジット

連絡先情報

問題、質問、コメントなどについて私に連絡してください。

ライセンス

私はオープンソースライセンスの下であなたにこのリポジトリのコードとリソースを提供しています。 これは私の個人的なリポジトリなので、コードとリソースに受け取るライセンスは私の雇用者ではなく、私の雇用者(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.







-donnemartin
-, , , , , , , , , , , , , , , ,

執筆者: