AWS CLI 是什么?
官网文档:https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-welcome.html
AWS Command Line Interface (AWS CLI) 是一种开源工具,让您能够在命令行 Shell 中使用命令与 AWS 服务进行交互。
安装 AWS CLI
- 在Python虚拟环境中安装 AWS CLI
$ pip install awscli
Python虚拟环境相关,参考: https://www.jianshu.com/p/d66fce9a7bdc
查看当前版本
$ aws --version
升级到最新版
$ aws install awscli --upgrade
卸载
$ pip uninstall awscli
配置 AWS CLI
- 添加默认的配置文件
未使用过 AWS CLI,则必须先配置默认的 CLI 配置文件
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-east-2
Default output format [None]: json
- 为新角色添加配置文件(如其他 IAM 角色)
- 在 .aws/config 文件中声明新账号所在区域。
[default]
region=ap-northeast-1
[profile ohagi3]
region=ap-northeast-1
- 在 .aws/credentials 文件中配置其他 IAM 角色的密钥。
[default]
aws_access_key_id=*******
aws_secret_access_key=*******
[ohagi3]
aws_access_key_id=*******
aws_secret_access_key=*******
- 指定参数 --profile default 将命令附加到其他 IAM 角色
$ aws s3 ls --profile ohagi3
使用 AWS CLI
与 S3 结合使用
列出存储桶
$ aws s3 ls
列出某个存储桶中的内容
$ aws s3 ls s3://my-bucket
上传文件到s3存储桶
$ aws s3 cp my-file s3://my-bucket/my-folder
与 DynamoDB 结合使用
官方文档https://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/Tools.CLI.html
查看帮助
$ aws dynamodb help
显示表列表
$ aws dynamodb list-tables
往表中插入一条数据
$ aws dynamodb put-item \
--table-name Music \
--item \
'{"Artist": {"S": "No One You Know"}, "SongTitle": {"S": "Call Me Today"}, "AlbumTitle": {"S": "Somewhat Famous"}}' \
--return-consumed-capacity TOTAL
- 查询出Music表中所有数据
$ aws dynamodb scan --table-name Music
- 指定条件查询
例如:从 Music 表中,查询出 Artist = "No One You Know" 并且 SongTitle = "Call Me Today" 的数据。
key-conditions.json
{
"Artist": {
"AttributeValueList": [
{
"S": "No One You Know"
}
],
"ComparisonOperator": "EQ"
},
"SongTitle": {
"AttributeValueList": [
{
"S": "Call Me Today"
}
],
"ComparisonOperator": "EQ"
}
}
$ aws dynamodb query --table-name Music --key-conditions file://key-conditions.json
- 批量写入
例如:将文件request-items.josn中所有Item批量写入 Service 表中。
request-items.json
以下json数据中,
"Service" :是表名称,可变。
"PutRequest": 表示 此Item为写入操作,固定格式。
"Item" :一条数据的key,固定格式。
{
"Service": [
{
"PutRequest": {
"Item": {
"service_id":{"S": "id_1"},
"Artist": {"S": "No One You Know"},
"SongTitle": {"S": "Call Me Today"},
"AlbumTitle": {"S": "Somewhat Famous"}
}
}
},
{
"PutRequest": {
"Item": {
"service_id":{"S": "id_2"},
"Artist": {"S": "Acme Band"},
"SongTitle": {"S": "Happy Day"},
"AlbumTitle": {"S": "Songs About Life"}
}
}
},
{
"PutRequest": {
"Item": {
"service_id":{"S": "id_3"},
"Artist": {"S": "No One You Know"},
"SongTitle": {"S": "Scared of My Shadow"},
"AlbumTitle": {"S": "Blue Sky Blues"}
}
}
}
]
}
$ aws dynamodb batch-write-item --request-items file://request-items.json