Amazon Q Developer CLI 实测:终端里的 AI 助手能干多少活

Amazon Q Developer CLI 实测:终端里的 AI 助手能干多少活

折腾了一上午终端命令想不起来参数,突然想起来 Amazon Q Developer 有个 CLI 模式——直接在终端里问它。

试了一下发现比想象中好用。它不是那种"帮你搜 man page"的工具,而是真能理解上下文、执行多步操作、甚至帮你写完整 Shell 脚本的 AI 终端助手。

记录一下安装到实际干活的全过程。

安装

macOS:

brew install amazon-q

Linux(x86_64 / arm64):

# 下载安装包
curl -Lo q.deb https://desktop-release.codewhisperer.us-east-1.amazonaws.com/latest/Amazon%20Q.deb
sudo dpkg -i q.deb

# 或者用 snap
sudo snap install amazon-q

装完后初始化:

q login
# 会打开浏览器让你用 Builder ID 或 IAM Identity Center 登录

基本用法

直接在终端里输入 q chat 进入对话模式:

q chat

或者用行内模式(不进入对话,直接执行):

q "列出所有 us-east-1 的 EC2 实例,按创建时间倒序"

它会生成对应的 AWS CLI 命令:

aws ec2 describe-instances \
  --region us-east-1 \
  --query 'Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,State:State.Name,LaunchTime:LaunchTime}' \
  --output table \
  | sort -k4 -r

实战场景

场景一:排查 Lambda 超时问题

q "我的 Lambda 函数 data-processor 最近频繁超时,帮我排查"

Q Developer 会自动执行:

  1. 获取函数配置(检查 timeout 设置)
  2. 拉最近的 CloudWatch Logs(找到超时堆栈)
  3. 分析日志内容,给出根因判断

输出类似:

分析结果:
- 函数超时设置为 30 秒
- 最近 1 小时有 47 次超时
- 根因:DynamoDB BatchWriteItem 在高负载时延迟从 200ms 飙到 12s
- 建议:
  1. 增加函数超时到 60s(短期)
  2. 对 DynamoDB 表开启按需容量模式(根本解决)
  3. 实现指数退避重试逻辑

需要我帮你执行这些修复吗?

场景二:快速创建 S3 生命周期策略

q "帮我给 s3://my-data-lake/raw/ 设置生命周期:30天转IA,90天转Glacier,365天删除"

它直接生成并执行:

aws s3api put-bucket-lifecycle-configuration \
  --bucket my-data-lake \
  --lifecycle-configuration '{
    "Rules": [
      {
        "ID": "raw-data-lifecycle",
        "Filter": {"Prefix": "raw/"},
        "Status": "Enabled",
        "Transitions": [
          {"Days": 30, "StorageClass": "STANDARD_IA"},
          {"Days": 90, "StorageClass": "GLACIER"}
        ],
        "Expiration": {"Days": 365}
      }
    ]
  }'

场景三:写一个部署脚本

q "写一个 Bash 脚本:构建 Docker 镜像 → 推到 ECR → 更新 ECS 服务,支持回滚"

输出完整的部署脚本(300+ 行),包含:

  • 参数解析(--cluster--service--tag
  • ECR 登录和镜像推送
  • 创建新的 Task Definition revision
  • 滚动更新 ECS Service
  • 健康检查等待
  • 失败时自动回滚到上一个 revision

场景四:安全审计

q "检查我的 AWS 账号有哪些安全风险"

它会逐项检查:

  • 有没有没开 MFA 的 IAM 用户
  • 有没有过期没轮换的 Access Key
  • S3 Bucket 有没有公开的
  • Security Group 有没有开放 0.0.0.0/0 的 22/3389 端口
  • CloudTrail 是否开启

和 Inline Completion 的区别

Amazon Q Developer 在 IDE 里是代码补全(类似 Tab 补全),在终端里是完全不同的模式

能力 IDE 补全 CLI 模式
交互方式 被动(你写代码它补全) 主动(你描述需求它执行)
上下文 当前文件 整个 AWS 账号状态
输出 代码片段 命令 + 执行 + 分析
适合场景 写代码 运维/排查/自动化

权限配置

Q Developer CLI 用的是你本地配置的 AWS credentials。建议:

# 确认当前身份
aws sts get-caller-identity

# 如果用 SSO
aws sso login --profile my-profile
q --profile my-profile chat

它不会越权操作——如果你的 IAM 角色没有某个服务的权限,Q Developer 也执行不了。

注意事项

  1. 不要在生产环境盲目执行:Q Developer 建议的命令先 review 再执行,特别是 deleteterminate 类操作
  2. 敏感信息:对话内容会发送到 AWS 服务端处理(用 Builder ID 时走美东区域)
  3. Token 限制:复杂任务可能需要多轮对话,单次上下文有长度限制
  4. 网络依赖:必须联网才能用,离线场景不可用

参考链接

posted @ 2026-06-11 11:35  亚马逊云开发者  阅读(4)  评论(0)    收藏  举报