在Linux Mint/macOS系统上安装和使用AWS CLI
本文介绍在Linux Mint/macOS系统上安装、配置和使用AWS CLI的方法。
在Linux Mint/macOS上安装AWS CLI的方法
有几种方法可以在Linux Mint/macOS系统上安装AWS CLI。在本指南中,我们将介绍以下方法。
方法1:使用PIP在Linux Mint、macOS上安装AWS CLI
这是在Linux Mint、macOS上安装AWS CLI最常见、最简单的方法:
pip:90.2或更高。
setuptools:36.2.0或更高版本。
满足要求后,您可以使用以下命令在virtualenv中安装AWS CLI:
python3 -m pip install awscli
##或
python -m pip install awscli
如果您没有使用virtualenv,那么您可以使用以下命令进行全局安装:
sudo python3 -m pip install awscli
##或
sudo python -m pip install awscli
示例执行输出:
您还可以为特定用户安装CLI:
python3 -m pip install --user awscli
##或
python -m pip install --user awscli
您也可以升级到最新的可用版本:
python3 -m pip install --upgrade awscli
##或
python -m pip install --upgrade awscli
在macOS上安装期间,您可能会遇到关于El Capitan中distutils附带的six版本的错误。要解决此问题,请使用--ignore-installed选项,如下所示:
sudo python -m pip install awscli --ignore-installed six
方法2:使用捆绑安装程序安装AWS CLI
您可以使用捆绑安装程序从Linux Mint、macOS上的命令行安装AWS CLI。您需要安装Python和python-venv软件包。然后,使用以下命令获取最新版本的AWS CLI:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
或者,您可以使用以下命令提取特定版本,例如1.16.312:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.312.zip" -o "awscli-bundle.zip"
提取文件:
unzip awscli-bundle.zip
现在运行捆绑安装程序:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
安装程序将在/usr/local/aws中安装AWS CLI,并在/usr/local/bin目录中创建符号链接AWS。-b选项用于创建一个符号链接,允许用户通过从任何目录输入AWS来运行AWS CLI。
此安装将使用默认的Python版本来运行。如果您有另一个Python安装,例如Python3,您可以在安装过程中使用以下命令指定它:
sudo /usr/bin/python3 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
使用下面的命令来识别Python的位置:
which python3
##或
which python
示例执行输出:
在Linux Mint/macOS上配置AWS CLI的方法
安装完成后,使用以下命令验证已安装的版本:
$ aws --version
aws-cli/1.27.82 Python/3.10.6 Linux/5.15.0-43-generic botocore/1.29.82
在使用AWS CLI之前,我们需要配置AWS凭据。下面进行配置命令、环境变量、共享凭据文件、配置文件、IAM角色。
a.使用配置命令
其中最简单的方法是运行以下命令:
$ aws configure
AWS Access Key ID: MY_ACCESS_KEY
AWS Secret Access Key: MY_SECRET_KEY
Default region name [us-west-2]: eu-west-1
Default output format [None]: json
b.使用环境变量
您还可以使用环境变量配置,如下所示:
export AWS_ACCESS_KEY_ID=<access_key>
export AWS_SECRET_ACCESS_KEY=<secret_key>
c.使用共享凭据文件
这种方法包括创建一个INI格式的文件,如下所示:
mkdir ~/.aws
创建文件:
$ vim ~/.aws/credentials
[default]
aws_access_key_id=MYACCESSKEY
aws_secret_access_key=MYSECRETKEY
[testing]
aws_access_key_id=MYACCESKEY
aws_secret_access_key=MYSECRETKEY
适当地替换所有变量。您还可以将共享凭据文件放置在与上面指定的位置不同的位置,并使用以下命令导出路径:
export AWS_SHARED_CREDENTIALS_FILE=/path/to/shared_credentials_file
d.使用配置文件
这种方法几乎类似于共享凭据方法:
mkdir ~/.aws
创建INI格式的文件:
$ vim ~/.aws/config
[default]
aws_access_key_id=<default access key>
aws_secret_access_key=<default secret key>
# Optional, to define default region for this profile.
region=us-west-1
[profile testing]
aws_access_key_id=<testing access key>
aws_secret_access_key=<testing secret key>
region=us-west-2
如果文件使用了不同的路径,请将其导出:
export AWS_CONFIG_FILE=/path/to/config_file
对于共享凭据文件和配置文件,我们都指定了多个配置文件。然后,您可以指定与--profile选项一起使用的首选配置文件。如果未指定,则将使用默认配置文件。
e.使用IAM角色
如果您在EC2实例上使用AWS CLI,强烈建议使用此方法。IAM角色是在实例上自动安装凭据的好方法。
如果您正在使用IAM角色,AWS CLI将自动查找并使用它们。此外,许多其他变量可以使用环境变量、配置文件条目或两者进行配置。
在Linux Mint/macOS上使用AWS CLI的方法
一旦进行了配置,您就可以在Linux Mint、macOS上使用AWS CLI与AWS资源进行交互。AWS CLI命令具有以下语法:
aws <command> <subcommand> [options and parameters]
意思为:
aws<命令><子命令>[选项和参数]
例如,要管理EC2实例,请使用以下命令:
列出实例:
aws ec2 describe-instances
样本输出:
为了避免长输出,可以进行筛选以获取实例ID:
$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
[
"i-069533e79cd6fcfbb"
]
然后,您可以终止/删除所需的实例:
aws ec2 terminate-instances --instance-ids i-069533e79cd6fcfbb
样本输出:
要停止/启动实例,请使用:
##启动
aws ec2 start-instances --instance-ids i-069533e79cd6fcfbb
##停止
aws ec2 stop-instances --instance-ids i-069533e79cd6fcfbb
列出S3存储桶,命令为:
aws s3 ls
您还可以查看S3存储桶中的文件。例如:
$ aws s3 ls s3://mybucket
会返回LastWriteTime及Length Name。
您可以在单个文件夹级别的命令中执行递归上载和下载。例如:
$ aws s3 cp myfolder s3://mybucket/myfolder --recursive
upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt
您还可以在本地文件夹和S3存储桶之间同步文件。例如:
$ aws s3 sync myfolder s3://mybucket/myfolder --exclude *.tmp
upload: myfolder/newfile.txt to s3://mybucket/myfolder/newfile.txt
到这里,使用AWS CLI的方法就讲完了,您可以随时使用CLI工具在AWS平台上自动化部署。