8

When I attempt to use aws-shell to check my s3 bucket list I get this error: enter image description here

my environment is [cloudshell-user@ip-10-0-***~]$ aws --version

aws-cli/2.2.43 Python/3.8.8 Linux/4.14.252-195.483.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off

Is anything wrong with any of my Envir. verions? Pls advice

2 Answers 2

9

See below for recommended approach -or- keep reading for a fix for aws-shell.

aws-shell requires awscli version 1 to function correctly, otherwise you'll receive the cli_binary_format error. To work around this you can do the following in the cloudshell environment.

  1. Install awscli version 1 and aws-shell:

pip3 install --user -U awscli aws-shell boto3 --use-feature=2020-resolver --no-cache-dir

  1. Update your PATH to cause the awscli version 1 to be the default:

export PATH=/home/cloudshell-user/.local/bin/:$PATH

However, the better solution would be to use awscli version 2 and enable the auto prompt feature as described here https://github.com/aws/aws-cli/issues/5664

aws configure set cli_auto_prompt on

or

export AWS_CLI_AUTO_PROMPT=on

Then awscli version 2 will behave similarly to aws-shell, providing completion hints etc.

Sign up to request clarification or add additional context in comments.

Comments

1

A really late reply but for those who come here, the issue is that somewhere boto3 adds AWS_DATA_PATH into the env. This confuses aws cli and causes the issue, I just created a copy of the env and removed the AWS_DATA_PATH. problem sorted.

env = os.environ
# Remove injected invalid awsdatapath
env.pop('AWS_DATA_PATH')

os.execvpe('aws',['aws', 's3', 'ls',env)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.