Post

This is not just another AWS Shell. It's The Force that will be with you, always.

Abstract

We all use the standard aws cli for operations from our local/remote machines, scripting, etc. However, using it requires knowledge of command syntax, staying updated with newly added APIs, periodically checking documentation, and referring to examples.

Intentionally entering an incorrect parameter name can cause errors, so it’s essential to be careful. If you’re unsure about which parameters are supported, referring to the online documentation is crucial. However, this may take up some extra time.

Fortunately, there is a more robust alternative known as the aws-shell. This alternative offers an improved experience with added functionalities. Let’s go through the features it supports.

AWS-shell

Install

Installation is simple: brew install aws-shell or pip install aws-shell

Auto-suggestions

Now, there is no need to type aws every time. After launching aws-shell just enter command and all supported params will be listed - scroll them and choose value you are interested in, or type more command characters - scrolled list will be updated to entered match: img.png

Fuzzy-search support

Type command with autosuggestion. Tool supports Fuzzy-search - it checks your input not only for exact match of parameter, command, but also for any match. You can turn on/off this feature to have exact match in suggestion F2. Here is an example of fuzzy search using the keyword user. Whenever this keyword is present in a parameter name, all parameters containing it will be displayed: img.png

Switch to documentation

After selecting a command, you can view its documentation at the bottom of the screen. To switch from the command prompt to the documentation, simply press the F9 key. Once in the documentation, you can scroll and read as needed. To return to the command prompt, press F9 once again. img.png

Select profiles

If you have multiple AWS profiles configured in your setup, you can conveniently switch between them using the same tool without having to exit, set any environment variables and start tool again. Simple switching between profiles: img.png

Shorthand syntax

Automatically filling the shorthand syntax - this is another useful feature, you can start typing the name of parameter and aws-shell will automatically fill the most closes used one.

img.png

The features mentioned above are just a few of the capabilities offered by the aws-shell. To explore additional features - install it and starting to using.

Same shell on AWS console

As you may already know, when accessing the AWS console through a web browser, you also have the option to execute commands using a shell that is displayed directly in your browser. This can be extremely useful if you are working on a machine without access to your local toolbox. The UI-based shell console was initially introduced in Google Cloud Platform, but has since been added to AWS as well as AWS CloudShell. Here are its features:

  • preinstalled aws cli, python, nodejs
  • 1 GB free storage
  • ~ directory files are persisted between sessions

img.png

More than that you can have access to similar aws-shell functionality without any additional installation, just start it with following arguments: aws --cli-auto-prompt

img.png

Check out that wonderful panels at the bottom that are rendering documentation and output payload structure (even before executing the command).

Conclusions:

This is an incredibly user-friendly command-line tool that I have been using for a while now and thoroughly enjoying its benefits. With readily accessible documentation, command completion, and options selection, it has made my AWS operations much smoother.

Moreover, having it embedded into the AWS UI console shell is fantastic. Check it out.

This post is licensed under CC BY 4.0 by the author.