awscliv2 2.3.1

Creator: bradpython12

Last updated:

Add to Cart

Description:

awscliv2 2.3.1

AWS CLI v2 for Python



Wrapper for AWS CLI v2.

AWS CLI v2 for Python

Features
Before you start
Installation
Usage

From command line
Docker fallback
Extra commands
As a Python module


Development
How to help
Versioning
Latest changes



Features

No dependency hell, like with original awscli
Can install and update awscliv2 binaries
Provides access to all AWS services
Has Python interface awscliv2.api.AWSAPI

Before you start

This is not an official AWS CLI v2 application, rant there
Check the source code of this app, as you are working with sensitive data
By default this app uses amazon/aws-cli Docker image
To use binaries for your OS, run awsv2 --install
Cross-check the source code again, probably I want to
steal your credentials!

Installation
python -m pip install awscliv2

You can add an alias to your ~/.bashrc or ~/.zshrc to use it as a regular AWS CLI v2
alias aws='awsv2'

Usage
From command line
Install AWS CLI v2:
# do not worry if this fails, you can still use awsv2 if you have docker installed
awsv2 --install

Configure default profile if needed:
AWS_ACCESS_KEY_ID='my-access-key'
AWS_SECRET_ACCESS_KEY='my-secret-key'

# --configure <profile_name> <aws_access_key_id> <aws_secret_access_key> [<aws_session_token>]
awsv2 --configure default ${AWS_ACCESS_KEY_ID} ${AWS_SECRET_ACCESS_KEY}
awsv2 configure set region us-west-1

Use AWS CLI as usual:
# alias for
# docker run --rm -i -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli $@
awsv2 s3 ls

# or as a python module
python -m awscliv2 s3 ls

Also, you can check scripts/example.sh
Docker fallback
Unless you run awsv2 --install once, application will use amazon/aws-cli Docker image. The image is not ideal, and it uses root user, so fix downloaded file permissions manually. Or just run awsv2 --install
Update it with docker pull amazon/aws-cli.
Container uses two volumes:

$HOME/.aws -> /root/.aws - credentials and config store
$(cwd) -> /aws - Docker image workdir

Extra commands
awscliv2 contains a few commands to make your life easier, especially in CI or any non-TTY environment.

awsv2 -U/--update/--install - Install AWS CLI v2
awsv2 --configure <profile_name> <aws_access_key_id> <aws_secret_access_key> [<aws_session_token>] [<region>] - set profile in ~/.aws/credentials
awsv2 --assume-role <profile_name> <source_profile> <role_arn> - create a new profile with assume role credentials
awsv2 -V/--version - Output awscliv2 and AWS CLI v2 versions

As a Python module
Basic usage
from awscliv2.api import AWSAPI
from awscliv2.exceptions import AWSCLIError

aws_api = AWSAPI()

try:
output = aws_api.execute(["s3", "ls"])
except AWSCLIError as e:
print(f"Something went wrong: {e}")
else:
print(output)

Install binaries for your OS from Python
from awscliv2.installers import install_multiplatform

install_multiplatform()

You can also set credentials or assume roles
from awscliv2.api import AWSAPI

aws_api = AWSAPI()

aws_api.set_credentials(
profile_name="my_profile",
aws_access_key_id="access_key",
aws_secret_access_key="secret_key",
region="us-east-1",
)
aws_api.assume_role(
profile_name="my_profile",
source_profile="source_profile",
role_arn="role_arn",
)

Development

Install poetry
Run poetry install
Use black formatter in your IDE

How to help

Ping AWS team to release an official PyPI package
Share your experience in issues

Versioning
awscliv2 version follows PEP 440.
Latest changes
Full changelog can be found in Releases.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.