如何确定两个环境之间的 awscli 包错误

如何确定两个环境之间的 awscli 包错误

在我的本地机器上,在基于 Ubuntu 16.04 的 Docker 容器中,我可以看到已安装的版本awscli

root@c4383af6f9d5:/# aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.8.0-58-generic botocore/1.4.70

在这个 Docker 镜像中,一切都运行正常,aws命令行工具也按预期工作。

另外,在同样基于 Ubuntu 16.04 的 AWS EC2 实例上,执行与构建上述 Docker 镜像相同的配置脚本时,我遇到了一个问题。

一、aws-cli的版本

ubuntu@awsIP:~$ aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1020-aws botocore/1.4.70

其次,运行aws s3 ls命令来测试连接性(aws configure使用适当的凭据运行后)会出现错误:

ubuntu@awsIP:~$ aws s3 ls s3://some-team-folder-name

'AWSHTTPSConnection' object has no attribute 'ssl_context'

我一直在尝试理解这个错误,并发现了一些Ubuntu 错误报告,但到目前为止还没有任何内容可以解释如何修复它。此错误仅发生在 AWS 机器上。在awscli我的笔记本电脑上使用相同版本的 ,我没有看到它,也无法弄清楚它可能是其他软件包版本的问题。

奇怪的是,当我这样做的时候apt-get update && apt-get install awscli,我看到

awscli is already the newest version (1.11.13-1ubuntu1~16.04.0).

但是我上面链接的错误报告听起来好像新版本(1.11.44)应该已经在 repos 中发布了(大约在 2017 年 2 月)。

答案1

这不是一个好的解决方法,但我发现,使用sudo pip install --upgrade awscli,我可以获得比操作系统存储库中可用的版本更新的版本,并且升级解决了该问题。

但更希望得到一个能够解释发生了什么以及如何通过适当的系统包修改来解决它的解决方案。

答案2

awscli我刚刚遇到了同样的问题。我通过输入检查了安装的版本aws --version,并收到以下信息:

aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-98-generic botocore/1.4.70

我回到了AWS 文档看看它是否能澄清事情,它提到:

AWS CLI 会定期更新以添加对新服务和命令的支持。要更新到最新版本的 AWS CLI,请再次运行安装命令。

$ pip install awscli --upgrade --user

我运行了该命令,然后再次检查了版本awscli并打印出:

aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-98-generic botocore/1.4.70

由于所有版本都是相同的,所以我认为升级没有成功,但是我尝试运行我的脚本,现在一切正常。

因此,如果其他人遇到此问题,只需运行升级命令即可解决它。

相关内容