What is it?

Both the AWS CloudShell and AWS Cloud9 environments are curated and regularly updated. However you may find your self needing a specific utility or tool that has not been pre-installed OR a specific latest version of a tool that has been pre-installed (and that has not yet been updated).

Extensions for AWS managed shells is a(n experimental) script that allows AWS CloudShell users and AWS Cloud9 (with Amazon Linux 2) users to do two things: update the version of pre-installed utilities and install additional utilities. Feel free to add (via PR) additional utilities you may find useful. In addition to this the repository contains a Dockerfile that would allow you to build a self-contained image (FROM AL2).

The Extensions for AWS managed shells script installs and/or updates the following tools and utilities:

The script also installs and/or updates the following pre-requisites:

  • NodeJS
  • Pip

What's the version of the utilities included?

The whole purpose of the script is to install the latest version of existing pre-installed tools and to upgrade to the latest version the tools that are already installed (and that may be lagging behind a few releases).

How can I use it?

The script is designed to work for both the AWS CloudShell as well as for AWS Cloud9. Because the two environments have different charatheristics, the script usage pattern may vary.

Cloud9 is persistent by design so it's likely that you may need to run the script only after the first deployment or when you want to update the tools. Also, because the Cloud9 environment has inbound connectivity, the script installs additional tools (e.g. kind, VS Code server and possibly others) when it detects it's running in a Cloud9 shell. Note the script is only designed to work with the Amazon Linux 2 OS installed (for consistency, because that is the same OS powering AWS CloudShell).

CloudShell only persists up to 1GB of disk space for the $HOME folder. Given all the tools the script installs lands on a system folder, the user would need to run the script every time the CloudShell reconnects. Perhaps a good idea would be to persist a clone of the repo in the $HOME folder for a speedy launch. Someone may go the extra mail and force the script to run at every start of the CloudShell.

In addition to these main options, the repository includes an experimental Dockerfile that would allow you to build a portable container (built from the Amazon Linux 2 image). You can build the container with this command:

docker build -t extensions-for-aws-managed-shells:latest . 

You can then run it with the following command:

docker run -e NODE_PATH=/root/nvm/versions/node/v12.20.0/lib/node_modules -e PATH=/root/nvm/versions/node/v12.20.0/bin:$PATH --rm -it extensions-for-aws-managed-shells:latest 

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.