ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AWS上使用Claude开发到落地:从EC2到Lambda的完整实践

AWS上使用Claude开发到落地:从EC2到Lambda的完整实践 在实际的 AWS 上使用 Claude 做开发远不止“打开一个网页对话”这么简单。开发者需要同时处理两条技术线一条是 Claude 的模型访问能力包括账号、API Key、模型 ID、配额和限流另一条是 AWS 的云资源管理包括 EC2、安全组、IAM、Lambda 和账单。两条线如果只搞定其中一条项目都很难从本地原型走到真正落地。这篇文章围绕“在 AWS 上用 Claude 从开发到落地”整理了一条可复现的完整链路先在 EC2 上准备开发环境再安装配置 Claude Code 作为 AI 编码助手用它辅助开发一个调用 Claude 模型的文本摘要接口随后把应用部署回 AWS并补充验证、排错和成本控制方法。文章不会假设你已经熟悉全部服务。每个环节会先说明目的再给命令最后给检查点。读者可以按顺序操作也可以在遇到报错时直接跳到对应排查章节。1. 先想清楚“在 AWS 上用 Claude”的三种形态1.1 三种形态的区别与选型很多文章把“使用 Claude”混为一谈但实际工作中至少存在三种差别很大的形态形态一Claude Code 作为开发工具。Claude Code 是 Anthropic 提供的命令行 AI 编码工具运行在终端里可以帮你读代码、改 Bug、写测试、做代码审查。在这种形态里Claude 不参与生产流量只提升研发效率。它应该被安装到开发机上最常见的就是开发人员自己的电脑或一台 AWS EC2 实例。形态二应用代码直接调用 Claude API。你的业务服务在运行时把用户请求转发给 Anthropic 的接口拿回模型结果后再返回给用户。这种形态需要考虑 API Key 管理、超时、限流和错误处理。形态三通过 Amazon Bedrock 调用 Claude 模型。Bedrock 是 AWS 托管的模型服务Claude 系列模型可以通过 Bedrock 的接口调用。相比直接调用 Anthropic API这种方式的身份体系由 AWS IAM 管理计费也走 AWS 账单适合已经有 AWS 账号体系、需要在同一个云环境里做权限管控的生产项目。三种形态并不互斥。一个完整项目里完全可以先安装 Claude Code 辅助开发业务代码里再通过 Bedrock 调用 Claude部署在 AWS Lambda 上运行。1.2 为什么选择“EC2 开发 API/Bedrock 接入 AWS 部署”作为主线AWS 上可用的开发环境很多Cloud9、CodeBuild、EC2、Lambda 都能写代码但 EC2 仍然是最适合做这套教程的环境。原因有两个Claude Code 安装后是一个命令行工具依赖 Node.js。EC2 上可以干净地安装 Node.js、Python、Git 等工具环境之间不会互相污染。同一台 EC2 既可以用作开发机也可以作为后续部署测试的临时服务器。如果文章只讲 Lambda不少读者会卡在本地没有 CLI 环境的问题上如果只讲 EC2又缺少更省成本的落地形态。所以本文先把开发放在 EC2 上最后再给出 Lambda 的改造思路。1.3 本文要实现的最小闭环整个项目的流程可以概括为下面这条链路创建一台 Ubuntu EC2 实例配置安全组和 SSH。在 EC2 上安装 Node.js、npm 和 Claude Code。配置 Claude Code 的认证信息确认命令行工具能正常启动。用 Flask 写一个文本摘要 HTTP API应用通过 Anthropic API 或 Bedrock 调用 Claude。本地跑通后把应用部署到 EC2 或改造成 Lambda 函数。用 curl 验证接口检查返回结果和日志。最后看账单和资源占用避免遗留资源扣费。这样既覆盖了“开发”也覆盖了“落地”中间涉及的报错和排查点也可以集中讲清楚。2. 准备 AWS 环境账号、主机、网络和权限2.1 创建 EC2 实例的关键参数登录 AWS 控制台后进入 EC2 页面点击“启动实例”。初学者建议按下面的参数选择配置项推荐值说明名称claude-ec2-dev方便识别资源避免账单里出现一堆匿名实例Amazon Machine ImageAMIUbuntu Server 22.04 LTS软件源丰富Claude Code、Python、Node.js 安装资料多实例类型t3.micro 或 t3.small学习场景够用生产场景按内存和 CPU 需求调整密钥对新建并下载 .pem 文件丢失后只能重建实例无法找回网络设置允许 SSH 流量来源选择“我的 IP”不要设置为 0.0.0.0/0否则容易招致爆破配置存储20 GB gp3默认值通常够用如果计划装大模型工具可以加大到 50 GB这里要特别提醒t3.micro 在免费套餐有效期内可能包含一定免费额度但免费套餐资格与账号注册时间、地域有关。如果账号已经没有免费额度实例会按小时计费。创建实例前先把区域选好比如亚太地区某个可用区然后持续在同一个区域操作否则后续找资源和排查账单都会混乱。2.2 安全组、SSH 和密钥连接实例创建完成后SSH 连接前需要给密钥文件设置正确权限否则 SSH 会拒绝使用chmod 400 your-key.pem ssh -i your-key.pem ubuntu你的实例公网IPUbuntu 的默认用户名是ubuntu公网 IP 可以在 EC2 控制台实例列表里找到。连接成功后先更新系统sudo apt update sudo apt upgrade -y这一步是为了让后续安装 Node.js、pip 时不会遇到旧的软件源问题。如果 SSH 连接超时优先检查安全组的入站规则里是否只允许了 22 端口以及来源 IP 是否填写正确。很多“实例无法连接”的问题并不是系统坏了而是安全组没有放行。2.3 为模型访问准备密钥或 IAM 权限在进入 Claude Code 安装前先确认你准备用哪种方式访问 Claude因为后续配置不同。如果直接使用 Anthropic API需要先在 Anthropic 控制台创建 API Key。API Key 是一个以sk-ant-开头的字符串创建后只显示一次要立即保存。注意不要把 API Key 提交到 Git 仓库或写在公共代码里。如果使用 Amazon Bedrock则需要做两件事在 Bedrock 控制台“模型访问”页面里勾选需要用到的 Claude 模型并申请开通。为当前使用的用户或角色配置 IAM 权限至少包括bedrock:InvokeModel权限。两种方式的区别可以整理成下面的表格对比项Anthropic APIAmazon Bedrock身份认证API KeyAWS IAM计费账号Anthropic 独立账单AWS 账单模型 ID 维护由 Anthropic 侧发布由 AWS 侧同步适合场景快速接入、已有 Anthropic 账号企业统一权限、AWS 安全审计如果两个账号都没有也可以先注册 Anthropic 账号创建 API Key。某些地区或新用户账号可能受服务开放范围限制落地前以官方支持情况为准。2.4 环境检查清单在安装任何工具之前先确认当前机器已经具备以下环境Ubuntu 22.04 或相近的 Linux 发行版Python 3.10 或更高版本Node.js 18 或更高版本npm 9 或更高版本GitAWS CLI如果后续要用 Bedrock 或部署 Lambda用一段命令集中检查python3 --version node --version npm --version git --version aws --version3. 在 AWS EC2 上安装 Claude Code3.1 安装 Node.js 和 npmClaude Code 基于 Node.js 运行直接使用 apt 安装的 Node.js 版本往往偏旧推荐用 nvm 安装 LTS 版本curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh nvm install --lts node -v npm -v如果重新登录 session 后发现node命令不存在检查.bashrc或.zshrc里是否加载了 nvm 环境alias nvm command -v nvm注意安装工具的报错有 80% 来自环境变量没有生效。重新打开终端或者手动执行source ~/.bashrc通常能解决“命令找不到”的问题。3.2 全局安装 Claude Code安装 Claude Code 的命令是npm install -g anthropic-ai/claude-code claude --version如果全局安装成功claude命令应该可以直接执行。如果执行后提示找不到命令先确认 npm 的全局安装目录是否在 PATH 中npm config get prefix如果 prefix 指向的是/usr/local通常没有路径问题。如果 prefix 指向~/.npm-global需要在环境变量中加入对应目录。3.3 登录或配置 API KeyClaude Code 启动后有几种认证方式。最简单的方式是直接运行claude首次启动会引导你登录 Anthropic 账号完成浏览器授权后即可进入对话界面。如果你更希望用 API Key 控制调用也可以设置环境变量export ANTHROPIC_API_KEYsk-ant-你的key claude为了让配置在重启后依然生效可以把环境变量写入用户配置echo export ANTHROPIC_API_KEYsk-ant-你的key ~/.bashrc source ~/.bashrc这种方式的优点是脚本化更稳定缺点是 API Key 会以明文形式存在服务器上生产环境建议使用 AWS Secrets Manager 或系统密钥管理工具保存。3.4 备选安装路径VS Code 扩展与桌面版如果你不想在纯终端里工作也可以走两条备选路径在 VS Code 中搜索 Claude Code 扩展安装后通过图形界面调用。这种方式适合熟悉 IDE 的开发者但扩展仍依赖同一个命令行工具如果基础安装有问题扩展一样会报错。Claude Code 也有桌面客户端形态。桌面版适合本机日常使用但在远程 EC2 上使用命令行版本更轻量也更容易配合 CI/CD 脚本。实际项目的选择标准是看代码、改代码、查日志时终端工具通常够用需要可视化查看 diff 时IDE 扩展更直观。4. Claude Code 安装报错和启动问题排查4.1 “claude 不是内部或外部命令”或“无法将 claude 识别为 cmdlet”怎么处理这是搜索引擎里出现频率最高的两个报错分别出现在 Windows 环境和中文字符环境下。本质原因只有一个claude可执行文件不在当前终端的命令查找路径 PATH 中。在 Linux 上先检查全局安装是否成功npm list -g anthropic-ai/claude-code npm bin -g如果包已经安装但命令不在/usr/local/bin或~/.npm-global/bin手动添加路径export PATH$PATH:$(npm bin -g)在 Windows 的 PowerShell 或 CMD 下出现“不是内部或外部命令”时先查看 npm 全局包路径npm config get prefix然后把这个路径下的目录加入系统环境变量 PATH。另一种快速解法是不依赖全局安装直接用 npx 启动npx anthropic-ai/claude-code这样可以绕过 PATH 配置问题缺点是每次调用会先检查包版本启动稍慢。4.2 PowerShell 执行策略或权限问题Windows 下即使 PATH 正确PowerShell 也可能因为执行策略限制而拒绝运行脚本。报错通常会包含“无法加载文件因为在此系统上禁止运行脚本”等关键字。常见处理方式是修改当前用户的执行策略Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser修改后重新打开 PowerShell。如果公司环境不允许调整执行策略就不要纠结全局命令直接使用 npx 方式npx anthropic-ai/claude-code4.3 账号与订阅相关提示启动 Claude Code 或使用 Claude 过程中可能出现两类账号提示一类是“Claude is not available to new users right now”或“Your organization has disabled Claude subscription access for Claude Code”。这类提示意味着当前账号没有 Claude Code 的使用权限或者组织策略禁止成员使用订阅功能。处理顺序是确认账号是否完成 Claude 登录。确认是否持有 Claude 订阅或 API 可用额度。确认组织后台是否关闭了 Claude Code 功能。如果以上都没有问题改用 ANTHROPIC_API_KEY 认证方式再试。如果使用 Bedrock 通道则需要检查 IAM 角色的权限是否包含 Bedrock 模型调用。注意不要反复重装软件来尝试解决账号权限问题。这类提示通常和账号状态相关而不是安装文件损坏。4.4 网络超时和请求失败Claude Code 启动后需要和模型服务端通信。如果你看到超时、连接失败或长时间无响应先检查网络环境curl -I https://api.anthropic.com在 AWS EC2 上还需要检查安全组的出站规则。大部分情况出站是默认允许的但如果企业账号启用了出站白名单就需要确认目标域名和端口是否被放行。调试时可以用带超时的请求定位问题curl --max-time 10 -I https://api.anthropic.com如果 curl 正常但 Claude Code 仍然超时再看环境变量是否正确配置模型 ID 是否有效以及是否触发了限流。限流通常表现为 HTTP 429 或模型返回“rate limit”相关错误。5. 用 Claude Code 开发一个最小 AI 应用5.1 需求与功能设计为了让教程形成完整闭环这里实现一个“文本摘要 API”。外部请求向服务发送一段文本服务调用 Claude 模型后返回三句话摘要。功能拆解后有三部分HTTP 接口层接收 POST 请求和 JSON 参数。模型调用层支持 Anthropic API 和 Bedrock 两种通道。异常处理层文本为空时返回 400调用失败时返回 500 并记录日志。为什么选择文本摘要而不是聊天机器人因为摘要功能对输入输出边界清晰适合演示接口设计而聊天机器人涉及会话状态管理、上下文记忆、流式输出环节更多容易模糊主线。5.2 项目结构在 EC2 上创建项目目录mkdir claude-demo cd claude-demo项目结构建议保持最小claude-demo/ ├── app.py ├── requirements.txt └── README.md如果后续要部署到 Lambda可以再把模型调用函数拆到claude_client.py中方便 Lambda 入口直接引用。5.3 依赖和代码创建requirements.txtflask3.0.0 anthropic0.25.4 boto31.34.0版本号只是示例落地前以官方最新版本为准。boto3只在采用 Bedrock 通道时需要。创建app.pyimport json import os import anthropic import boto3 from flask import Flask, request, jsonify app Flask(__name__) provider os.getenv(CLAUDE_PROVIDER, anthropic).lower() if provider bedrock: bedrock_runtime boto3.client( bedrock-runtime, region_nameos.getenv(AWS_REGION, us-east-1) ) BEDROCK_MODEL_ID os.getenv( BEDROCK_MODEL_ID, anthropic.claude-3-5-sonnet-20241022-v2:0 ) else: anthropic_client anthropic.Anthropic() ANTHROPIC_MODEL_ID os.getenv( ANTHROPIC_MODEL_ID, claude-3-5-sonnet-20241022 ) def summarize(text: str) - str: if provider bedrock: body { anthropic_version: bedrock-2023-05-31, max_tokens: 1024, messages: [ { role: user, content: f请用三句话总结下面内容\n\n{text}, } ], } response bedrock_runtime.invoke_model( modelIdBEDROCK_MODEL_ID, contentTypeapplication/json, acceptapplication/json, bodyjson.dumps(body), ) result json.loads(response[body].read()) return .join( block.get(text, ) for block in result.get(content, []) ) message anthropic_client.messages.create( modelANTHROPIC_MODEL_ID, max_tokens1024, messages[ { role: user, content: f请用三句话总结下面内容\n\n{text}, } ], ) return .join(block.text for block in message.content) app.post(/summarize) def summarize_handler(): data request.get_json(silentTrue) if not data or not data.get(text): return jsonify({error: text is required}), 400 try: summary summarize(data[text]) return jsonify({summary: summary}) except Exception as exc: app.logger.exception(summarize failed) return jsonify({error: str(exc)}), 500 if __name__ __main__: app.run(host0.0.0.0, port8000)这段代码看起来很长但逻辑只有三层。CLAUDE_PROVIDER环境变量决定走 Anthropic API 还是 Bedrocksummarize函数完成模型调用HTTP 层负责解析请求和返回错误。模型 ID 在示例中写的是 Claude 3.5 Sonnet实际使用时以 Anthropic 或 Bedrock 控制台展示的最新模型 ID 为准。5.4 用 Claude Code 辅助编码和审查代码写完后在项目目录里启动 Claude Codecd claude-demo claude在对话界面中可以输入如下指令请检查 app.py 的错误处理逻辑指出可能的问题并给出修改建议。Claude Code 会读取项目文件返回审查意见。这里的关键不是让它直接生成一版你能用的完整代码而是要学会验证它给出的建议。建议按三个步骤使用先让它列出问题清单。逐个确认问题是否真实存在。确认后再让它给出修改后的代码片段。例如代码中的request.get_json(silentTrue)在收到非 JSON 请求时不会抛异常这是刻意设计的。但如果 Claude 建议你去掉silentTrue你就需要判断你是想返回 400 还是想直接让 Flask 框架返回 HTML 错误页带着这个判断去接受建议Claude Code 才会成为可靠的辅助工具。5.5 本地启动和验证先创建虚拟环境并安装依赖python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt如果用 Anthropic API设置密钥后启动export CLAUDE_PROVIDERanthropic export ANTHROPIC_API_KEYsk-ant-你的key python app.py服务会监听 8000 端口。打开另一个 SSH 终端执行curl -X POST http://127.0.0.1:8000/summarize \ -H Content-Type: application/json \ -d {text: AWS 提供了计算、存储、数据库、机器学习等丰富的云服务用户可以根据需要灵活地选择和组合这些服务从而降低运维成本并加快业务迭代速度。}正常响应类似{ summary: AWS 提供多样云服务。用户可按需组合。这能降低运维成本并加速迭代。 }如果返回 500先看终端日志。常见原因是 API Key 无效、模型 ID 不存在、没有开通 Bedrock 模型访问权限或者当前账号地区不支持该模型。6. 部署到 AWS从 EC2 到 Lambda6.1 方案选型应用在本地跑通后需要决定部署形态。这里比较多的是 EC2 常驻服务和 Lambda 按量函数。对比项EC2 常驻服务Lambda 函数启动方式systemd 管理 Python 服务API Gateway 或函数 URL 触发运维成本需要管理主机、补丁、系统启动托管执行不需要维护服务器冷启动无冷启动首次请求可能有延迟成本模型按实例运行时长计费按调用次数和运行时长计费适合场景长连接、WebSocket、稳定接口低频调用、异步处理、事件任务如果只是给内部团队演示选 EC2 更直观如果接口调用本来就是低频的直接改造成 Lambda 更省钱。6.2 部署到 EC2 的步骤假设你已经通过 SSH 登录到 EC2 实例并安装了项目文件。下面用 systemd 管理 Flask 服务。先创建服务文件sudo tee /etc/systemd/system/claude-demo.service /dev/null EOF [Unit] DescriptionClaude Demo Flask Service Afternetwork.target [Service] Userubuntu WorkingDirectory/home/ubuntu/claude-demo EnvironmentCLAUDE_PROVIDERanthropic EnvironmentANTHROPIC_API_KEYsk-ant-你的key ExecStart/home/ubuntu/claude-demo/.venv/bin/python app.py Restartalways RestartSec3 [Install] WantedBymulti-user.target EOF然后执行sudo systemctl daemon-reload sudo systemctl enable claude-demo sudo systemctl start claude-demo sudo systemctl status claude-demo如果服务启动失败用下面命令查看详细日志sudo journalctl -u claude-demo -f确认服务状态为active (running)后再用 curl 验证本机接口。如果希望从公网访问需要在 EC2 安全组中放行 8000 端口但来源 IP 建议限制为可访问者所在网络的 IP不要直接对全世界开放。6.3 改造成 Lambda 函数的思路Lambda 的运行环境不适合直接运行 Flask 服务但我们可以复用核心的summarize函数。创建lambda_function.pyimport json import os def lambda_handler(event, context): body json.loads(event.get(body, {})) text body.get(text, ) if not text: return { statusCode: 400, body: json.dumps({error: text is required}), } try: summary summarize(text) return { statusCode: 200, body: json.dumps({summary: summary}), } except Exception as exc: return { statusCode: 500, body: json.dumps({error: str(exc)}), }需要把app.py里的summarize函数复制到lambda_function.py或者把模型调用逻辑抽到claude_client.py再统一 import。Lambda 的依赖需要打包成层或把依赖安装到同目录上传。建议使用容器镜像方式打包这样依赖版本更可控。Lambda 的环境变量配置如下CLAUDE_PROVIDERanthropic或bedrockANTHROPIC_API_KEYsk-ant-你的keyAWS_REGIONus-east-1BEDROCK_MODEL_ID对应模型 ID如果走 Bedrock 通道Lambda 的执行角色必须附带允许 Bedrock 调用权限的策略否则运行时会报AccessDeniedException。6.4 验证发布结果不管部署到 EC2 还是 Lambda验证方式都是发一个真实请求。如果是 EC2执行curl -X POST http://你的实例公网IP:8000/summarize \ -H Content-Type: application/json \ -d {text: AWS Lambda 允许用户运行代码而无需管理服务器只需要配置触发器、代码和运行角色即可。}如果是 Lambda 函数 URL从控制台复制 URL 后同样用 curl 调用。验证通过后还要检查日志。EC2 下使用journalctl -u claude-demoLambda 下前往 CloudWatch Logs 查看LogStream。日志里应该能看到完整请求记录、异常堆栈和耗时信息。如果发现模型响应偏慢考虑设置更长超时时间并在接口层加入合理的超时重试策略。7. 常见坑、扣费问题和成本控制7.1 AWS 上最容易踩到的 5 个坑实际项目中问题往往不是模型不行而是云资源配置和代码集成之间的细节没有对齐。问题现象常见原因处理方式部署后接口 504Flask 服务未启动或 Lambda 超时太短检查 systemd 状态调大 Lambda 超时时间Bedrock 返回 AccessDeniedIAM 角色没有模型调用权限给执行角色附加bedrock:InvokeModel权限Claude Code 无法启动Node.js 版本过低或 npm 全局目录不在 PATH用node -v检查版本补全 PATHAPI Key 泄露到 Git环境变量写在代码里或提交了.env删除历史记录改用环境变量和密钥管理服务账单突然变高忘记关闭测试实例或残留快照和弹性 IP按资源清单逐一检查并释放7.2 ASG desired 设为 0 后为什么还会扣费很多人在关闭 Auto Scaling GroupASG时会把 desired 数量设为 0认为这样实例就释放了不会产生费用。这个理解不完整。ASG 本身的配置是免费的但 ASG 通常关联其他资源。常见扣费来源包括仍存在的 Application Load Balancer即使没有流量也按时计费。NAT Gateway按创建时长和流量计费价格并不低。实例释放后遗留的 EBS 快照按存储容量收费。Elastic IP未绑定到运行中实例时仍会收费。S3 存储桶中的测试文件按存储量计费。CloudWatch Logs 日志组日志会持续累积并产生存储费用。正确做法是在确认不再需要测试环境时进入 EC2 Auto Scaling 控制台把Min、Max、Desired全部设为 0然后单独检查 ELB、NAT、EIP、快照和日志组是否还需要保留。7.3 降低模型成本和省 token 的使用方法Claude Code 和 Claude API 都会消耗 token成本控制可以从以下几个方向做使用 Claude Code 时对话上下文越长消耗越大。不要让它反复读取整个项目。如果需要切换任务使用/clear清理上下文再重新描述问题。把大任务拆成小任务。比如“先审查这个函数的错误处理”比“帮我把整个项目重构一遍”更容易控制输出长度也更容易产生准确结果。明确限制输出长度。在调用 API 时设置合理的max_tokens避免模型生成超长回答。摘要功能只需要三句话max_tokens设为 1024 已经足够。对于辅助性、非核心的编码任务有些人会通过 cc-switch 等工具在不同模型服务商之间切换甚至使用本地 Ollama 模型来减少 token 消耗。这种方式适合做草稿、命名、简单文本转换但生产环境仍建议回到官方 Claude API 或 Bedrock因为模型对复杂项目的理解能力和输出稳定性更可靠。7.4 AWS 成本排查清单定期检查下面这些资源能减少大部分“无厘头扣费”是否有未绑定实例的 Elastic IP。是否有不再使用但仍在运行的 EC2 实例。是否有残留的 EBS 快照。是否有闲置的 NAT Gateway。是否有不再访问的 S3 存储桶和 CloudWatch 日志组。是否在多个区域重复创建了同样用途的资源。AWS 账单控制台可以从“按服务”“按区域”两个维度看费用分布。扣费异常时先从这两张维度表切入通常很快就能定位到具体资源。8. 从开发到落地的完整检查清单8.1 开发前检查清单确定使用 Anthropic API 还是 Amazon Bedrock并准备好 API Key 或 IAM 权限。确认 EC2 实例操作系统、实例类型和区域。安装 Node.js、npm、Python、Git、AWS CLI。创建项目目录并初始化虚拟环境。确认模型 ID 有效先调用一次最小模型请求验证密钥和网络通。8.2 发布前检查清单将 API Key 从代码中移除改放到环境变量或密钥管理服务。设置服务超时时间避免模型卡住导致 HTTP 请求长期挂起。配置日志记录确保异常堆栈能完整输出。安全组只放行必要端口来源 IP 范围尽量收敛。在生产环境使用 Bedrock 时检查 IAM 权限是最小权限。记录当前使用的模型 ID 和依赖版本方便回滚。8.3 运行中检查清单关注 CloudWatch 指标包括错误率、响应时间和调用次数。设置预算告警费用超过阈值时第一时间收到通知。定期删除测试环境的快照、日志组和弹性 IP。更新 Claude Code 或模型版本时先在小流量环境验证再全量发布。这篇文章走通的路径并不复杂但覆盖了从开发到落地最容易被忽略的环节开发环境怎么搭建Claude Code 报错从哪里排查模型接口怎么设计部署形态怎么选账单异常怎么定位。把这套链路跑熟之后你会发现真正的效率提升来自两部分Claude 帮你处理重复编码和审查任务而你把 AWS 的资源生命周期管理清楚不让基础设施反过来成为项目的负担。下一步可以继续扩展的方向包括把 Flask 应用改成流式输出、在 Lambda 中接入 API Gateway 与自定义域名、用 AWS Secrets Manager 托管 API Key以及把 Claude Code 接入 CI 流程自动做代码审查。按顺序逐个实验就能把“在 AWS 上使用 Claude”从一次实践变成一套稳定的工程能力。
返回列表