aws

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 uat

s3 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 --summarize

bucket管理

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
最后更新于