mcpField
A
aws-cli

aws-cli

github.com/chaterm云与 DevOps5956 次安装34 周前更新
代码仓库

关于 aws-cli

面向 AWS 服务的命令行操作技能,提供 EC2、S3、IAM、Lambda、EKS 等服务的常用命令与排查方法。适合通过 AWS CLI 管理云资源和执行日常运维任务的开发者与运维人员。

主要功能

  1. 01配置凭证与命令行配置
  2. 02查询及管理 EC2 实例和安全组
  3. 03操作 S3 桶与文件
  4. 04管理 IAM 用户和访问密钥
  5. 05查询、调用 Lambda 并查看日志
  6. 06查看 EKS 集群并更新 kubeconfig

适用场景

  1. 01筛选并批量停止运行中的 EC2 实例
  2. 02上传或下载 S3 文件并生成预签名 URL
  3. 03调用 Lambda 并查询 CloudWatch 日志
  4. 04检查 EKS 集群并配置 kubeconfig

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/chaterm/terminal-skills --skill aws-cli

安装后在 Claude Code 中输入/aws-cli确认已加载。

详细介绍

来自项目 README

AWS CLI 操作

概述

EC2、S3、IAM、Lambda 等 AWS 服务的命令行操作技能。

配置与认证

# 配置凭证
aws configure
aws configure --profile myprofile

# 查看配置
aws configure list
aws configure list --profile myprofile

# 配置文件位置
~/.aws/credentials
~/.aws/config

# 使用环境变量
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_DEFAULT_REGION=us-east-1

# 使用 profile
export AWS_PROFILE=myprofile
aws s3 ls --profile myprofile

# 获取当前身份
aws sts get-caller-identity

EC2 实例

实例管理
# 列出实例
aws ec2 describe-instances
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running"
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]' --output table

# 启动/停止实例
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 reboot-instances --instance-ids i-1234567890abcdef0

# 终止实例
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0

# 创建实例
aws ec2 run-instances \
    --image-id ami-12345678 \
    --instance-type t3.micro \
    --key-name my-key \
    --security-group-ids sg-12345678 \
    --subnet-id subnet-12345678 \
    --count 1
安全组
# 列出安全组
aws ec2 describe-security-groups
aws ec2 describe-security-groups --group-ids sg-12345678

# 创建安全组
aws ec2 create-security-group \
    --group-name my-sg \
    --description "My security group" \
    --vpc-id vpc-12345678

# 添加入站规则
aws ec2 authorize-security-group-ingress \
    --group-id sg-12345678 \
    --protocol tcp \
    --port 22 \
    --cidr 0.0.0.0/0

# 删除规则
aws ec2 revoke-security-group-ingress \
    --group-id sg-12345678 \
    --protocol tcp \
    --port 22 \
    --cidr 0.0.0.0/0

S3 存储

基础操作
# 列出桶
aws s3 ls

# 列出对象
aws s3 ls s3://bucket-name/
aws s3 ls s3://bucket-name/prefix/ --recursive

# 创建桶
aws s3 mb s3://bucket-name
aws s3 mb s3://bucket-name --region us-west-2

# 删除桶
aws s3 rb s3://bucket-name
aws s3 rb s3://bucket-name --force    # 包括内容
文件操作
# 上传文件
aws s3 cp file.txt s3://bucket-name/
aws s3 cp file.txt s3://bucket-name/path/file.txt

# 下载文件
aws s3 cp s3://bucket-name/file.txt ./
aws s3 cp s3://bucket-name/path/ ./ --recursive

# 同步目录
aws s3 sync ./local-dir s3://bucket-name/prefix/
aws s3 sync s3://bucket-name/prefix/ ./local-dir
aws s3 sync ./local-dir s3://bucket-name/ --delete    # 删除目标多余文件

# 删除对象
aws s3 rm s3://bucket-name/file.txt
aws s3 rm s3://bucket-name/prefix/ --recursive

# 移动/重命名
aws s3 mv s3://bucket-name/old.txt s3://bucket-name/new.txt
高级操作
# 预签名 URL
aws s3 presign s3://bucket-name/file.txt --expires-in 3600

# 设置公开访问
aws s3api put-object-acl --bucket bucket-name --key file.txt --acl public-read

# 查看桶策略
aws s3api get-bucket-policy --bucket bucket-name

# 设置生命周期
aws s3api put-bucket-lifecycle-configuration \
    --bucket bucket-name \
    --lifecycle-configuration file://lifecycle.json

IAM 管理

# 列出用户
aws iam list-users

# 创建用户
aws iam create-user --user-name myuser

# 创建访问密钥
aws iam create-access-key --user-name myuser

# 附加策略
aws iam attach-user-policy \
    --user-name myuser \
    --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

# 列出角色
aws iam list-roles

# 获取角色
aws iam get-role --role-name myrole

Lambda 函数

# 列出函数
aws lambda list-functions

# 调用函数
aws lambda invoke \
    --function-name my-function \
    --payload '{"key": "value"}' \
    output.json

# 查看函数配置
aws lambda get-function --function-name my-function

# 更新函数代码
aws lambda update-function-code \
    --function-name my-function \
    --zip-file fileb://function.zip

# 查看日志
aws logs filter-log-events \
    --log-group-name /aws/lambda/my-function \
    --start-time $(date -d '1 hour ago' +%s)000

EKS 集群

# 列出集群
aws eks list-clusters

# 获取集群信息
aws eks describe-cluster --name my-cluster

# 更新 kubeconfig
aws eks update-kubeconfig --name my-cluster --region us-east-1

# 列出节点组
aws eks list-nodegroups --cluster-name my-cluster

常见场景

场景 1:批量操作实例
# 获取所有运行中实例 ID
aws ec2 describe-instances \
    --filters "Name=instance-state-name,Values=running" \
    --query 'Reservations[*].Instances[*].InstanceId' \
    --output text

# 批量停止
aws ec2 stop-instances --instance-ids $(aws ec2 describe-instances \
    --filters "Name=tag:Environment,Values=dev" \
    --query 'Reservations[*].Instances[*].InstanceId' \
    --output text)
场景 2:S3 大文件传输
# 多部分上传(自动)
aws s3 cp large-file.zip s3://bucket-name/ \
    --storage-class STANDARD_IA

# 配置传输加速
aws s3api put-bucket-accelerate-configuration \
    --bucket bucket-name \
    --accelerate-configuration Status=Enabled
场景 3:查询 CloudWatch 日志
# 查询日志
aws logs filter-log-events \
    --log-group-name /aws/lambda/my-function \
    --filter-pattern "ERROR" \
    --start-time $(date -d '1 hour ago' +%s)000

# 实时跟踪
aws logs tail /aws/lambda/my-function --follow

故障排查

问题排查方法
认证失败aws sts get-caller-identity
权限不足检查 IAM 策略
区域错误检查 --region 参数
超时检查网络、增加超时设置
# 调试模式
aws s3 ls --debug

# 检查配置
aws configure list

评论

支持 Markdown