Хотя AWS CLI — отличный ресурс для управления вашими сервисами на базе AWS, сложно запомнить использование :
SAWS
стремится дополнить интерфейс командной строки AWS функциями, ориентированными на:
Внутри SAWS
работает на базе интерфейса командной строки AWS и поддерживает те же команды и структуру команд .
Использование 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. В настоящее время включены имена сегментов, идентификаторы экземпляров и теги экземпляров, а также дополнительная поддержка большего количества ресурсов, находящихся в стадии разработки.
Вариант для 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
Список экземпляров 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
позволяет выполнять команды оболочки из приглашенияaws saws>
.
SAWS
отслеживает вводимые вами команды и сохраняет их в ~/.saws-history
. Используйте клавиши со стрелками вверх и вниз для просмотра истории команд.
SAWS
поддерживает контекстную help
по командной строке и контекстную веб- docs
.
Команда help
работает через интерфейс командной строки AWS и выводит справку в командной строке.
Использование:
aws help
Иногда вы не совсем уверены, какую конкретную комбинацию команда/подкоманда/опция вам нужно использовать. В таких случаях просмотр нескольких комбинаций с помощью командной строки help
оказывается затруднительным по сравнению с просмотром онлайн-документов AWS CLI через веб-браузер.
SAWS
поддерживает контекстные веб-документы с помощью команды docs
или клавиши F9
. SAWS
отобразит веб-документы, относящиеся к текущей введенной команде и подкоманде.
Использование:
aws docs
SAWS
поддерживает несколько вариантов панели инструментов:
F2
переключает подсветку синтаксиса выводаF3
включает нечеткое завершение ресурсов и ярлыков AWSF4
включает завершение ярлыковF5
обновляет ресурсы для автозаполненияF9
отображает контекстные веб-документыF10
или control d
выходит из SAWS
SAWS
был протестирован на Windows 7 и Windows 10.
В Windows файл .sawsrc можно найти в %userprofile%
. Например:
C:Usersdmartin.sawsrc
Хотя вы можете использовать стандартную командную строку Windows, вам, вероятно, будет удобнее работать с cmder или conemu.
SAWS
размещен на PyPI. Следующая команда установит SAWS
вместе с такими зависимостями, как AWS CLI:
$ pip install saws
Вы также можете установить последнюю версию SAWS
из исходного кода GitHub, которая может содержать изменения, еще не отправленные в PyPI:
$ pip install git+https://github.com/donnemartin/saws.git
Если вы не устанавливаете виртуальную среду, запустите с помощью sudo
:
$ sudo pip install saws
После установки запустите SAWS
:
$ saws
Рекомендуется устанавливать пакеты Python в виртуальную среду, чтобы избежать потенциальных проблем с зависимостями или разрешениями.
Чтобы просмотреть инструкции по установке SAWS
virtualenv
и Docker, нажмите здесь.
Существует известная проблема с Apple и включенными в нее зависимостями пакетов Python (подробнее: pypa/pip#3165). Мы изучаем способы решения этой проблемы, а пока для установки пил вы можете запустить:
$ 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 см. в следующей документации.
Легкое тестирование показывает, что SAWS
также совместим с Python 3.5.
Pypy3 не поддерживается из-за отсутствия поддержки со стороны boto.
Если вы заинтересованы в участии в 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
Запустите модульные тесты с tox в нескольких средах Python:
$ tox
Документация по исходному коду доступна на Readthedocs.org.
Для создания документов выполните следующее:
$ scripts/update_docs.sh
Вклады приветствуются!
Ознакомьтесь с Руководством по участию, чтобы узнать, как:
SAWS
под капотомSAWS
SAWS
и за несколько полезных служебных функций. Не стесняйтесь обращаться ко мне, чтобы обсудить любые проблемы, вопросы или комментарии.
Я предоставляю вам код и ресурсы из этого репозитория под лицензией с открытым исходным кодом. Поскольку это мой личный репозиторий, лицензия, которую вы получаете на мой код и ресурсы, принадлежит мне, а не моему работодателю (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.