aws
docs
https://docs.aws.amazon.com/zh_cn/
awscli文档
https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-welcome.html
s3 文档
https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli_s3_code_examples.html
aws boto3 doc
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/retries.html
https://github.com/aws/amazon-ec2-instance-selector
https://github.com/aws/aws-cli
自建容器管理agent, 由aws管理
https://github.com/aws/amazon-ecs-agent
https://github.com/aws/aws-lambda-base-images
https://github.com/aws/efs-utils
https://github.com/aws/aws-lambda-python-runtime-interface-client
https://github.com/aws/aws-lambda-go
https://github.com/aws/aws-sdk-go
https://github.com/aws/elastic-load-balancing-tools
sdk 示例
https://github.com/awsdocs/aws-doc-sdk-examples/tree/main
eks
https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/what-is-eks.html
awscli
install
mac
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
# choices.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>choiceAttribute</key>
<string>customLocation</string>
<key>attributeSetting</key>
<string>/Users/a20240729/app</string>
<key>choiceIdentifier</key>
<string>default</string>
</dict>
</array>
</plist>
# 安装包
installer -pkg AWSCLIV2.pkg \
-target CurrentUserHomeDirectory \
-applyChoiceChangesXML choices.xml
cd ~/bin
ln -s /Users/a20240729/app/aws-cli/aws .
ln -s /Users/a20240729/app/aws-cli/aws_completer .linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
[wait@ser6 aws]$ /home/wait/bin/aws --version
aws-cli/2.15.38 Python/3.11.8 Linux/5.14.0-202.el9.x86_64 exe/x86_64.centos.9 prompt/off
# 更新
sudo ./aws/install --bin-dir /usr/local/bin --install-dir /usr/local/aws-cli --update
# 自定义安装
./aws/install -i /usr/local/aws-cli -b /usr/local/bin通用选项
--region # 指定区域 ap-southeast-1
--profile <string> # 配置文件
--output <string> # 输出格式 json yaml text table
--endpoint-url <string> # 某些命令需要指定端点账号配置
# 配置 aws key
[wait@ser6 aws]$ aws configure
AWS Access Key ID [None]: AKIASI4INPHHLU4T1111
AWS Secret Access Key [None]: xxxxxxxxxxxxxx1
Default region name [None]: ap-southeast-1
Default output format [None]:
aws configure --profile uat # 添加一个账号和区域
aws iam list-access-keys # 查看本区域的 iam 信息
aws configure list # 查看默认区域的访问配置
aws configure list --profile uat # 查看指定区域的配置
alias aws_user2='aws --profile user2' # 创建一个别名方便切换多用户
aws configure list --profile uats3 cli
常用操作
show
aws s3 ls # 列出当前桶
aws s3 ls s3://mybucket
aws s3 ls s3://mybucket/xxx # 指定前缀
aws s3 ls s3://mybucket --recursive # 递归显示
# 友好显示
aws s3 ls s3://mybucket --recursive --human-readable --summarize
# 指定接入点
aws s3 ls s3://arn:aws:s3:us-west-2:123456781111:accesspoint/myaccesspoint/
# 搜索文件前缀
aws --profile uat s3 ls s3://mybucket/id-card/1173020 --human-readable --summarizebucket管理
aws s3 mb s3://mybucket # create bucket
aws s3 mb s3://mybucket --region us-west-1
aws s3 rb s3://mybucket # 删除存储桶 - 必须为空
aws s3 rb s3://mybucket --force # 强制删除 - 包括内部对象文件管理
常用操作
# 上传单个文件
aws s3 cp test.txt s3://mybucket/test2.txt
# 上传文件夹 - 注意要完整目录
aws --profile uat s3 cp dir2 s3://mybucket/dir2/ --recursive
# 下载单个文件
aws s3 cp s3://mybucket/test.txt test2.txt
# 递归下载
aws s3 cp s3://mybucket . --recursive
# 删除
aws s3 rm s3://mybucket/test2.txt
aws s3 rm s3://mybucket --recursive
aws s3 rm s3://mybucket/ --recursive --exclude "*.jpg"
aws s3 rm s3://mybucket/ --recursive --exclude "another/*"通用选项
--recursive # 递归
--exclude "*.jpg" # 排除
--include "*.log" # 必须包含
--acl public-read-write # 设置 acl不常用操作
# 上传并设置过期时间
aws s3 cp test.txt s3://mybucket/test2.txt --expires 2014-10-01T20:30:00Z
# 同步, 并删除所有不匹配的文件
aws s3 sync . s3://mybucket --delete
# 从一个桶复制到另外一个桶
aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt
aws s3 cp s3://mybucket/test.txt s3://mybucket2/ # 保留原名称
aws s3 cp s3://mybucket/ s3://mybucket2/ --recursive
# 将标准输入上传
aws s3 cp - s3://mybucket/stream.txt
# 标准输出下载
aws s3 cp s3://mybucket/stream.txt -
# 从标准输入 上传大文件, 需要设置分片大小, 否则当上传达到默认分段限制为 10,000 时, 上传可能会失败
aws s3 cp - s3://mybucket/stream.txt --expected-size 54760833024
# 指定接入点
aws s3 cp mydoc.txt s3://arn:aws:s3:us-west-2:1234567123456:accesspoint/myaccesspoint/mykey