谷歌云上部署Claude Code:从零构建AI生成Web应用

📅 发布时间:2026/8/27 20:45:15
谷歌云上部署Claude Code:从零构建AI生成Web应用 很多同学第一次把 Claude Code 这类 AI 编程助手和谷歌云Google Cloud放在一起时首先要面对的问题往往是“环境到底怎么搭”“AI 生成的代码到底怎么部署到云服务器上”“部署完怎么让它一直在线”。本文就围绕这条完整链路从零开始做一次谷歌云上用 Claude 搭建部署应用的实战覆盖云虚拟机创建、Claude Code 安装、AI 生成 Web 应用、systemd 常驻服务和公网访问验证。无论你是刚接触云服务器的新手还是想把 AI 编程助手接入正式研发流程的开发者都可以跟着走一遍。1. 背景与核心概念1.1 什么是 Claude CodeClaude Code 是 Anthropic 官方推出的命令行编程助手本质上是一个跑在终端里的 AI 结对程序员。你在项目目录下启动claude命令就能用自然语言描述需求它可以读取项目文件、创建和修改代码、执行 Shell 命令、运行测试、操作 Git 等。它和网页版 Claude 的核心区别在于工作形态网页版更适合做问答、文档总结和片段生成Claude Code 则强调和本地项目、文件系统、开发流程深度绑定。也就是说它不是在“另一个窗口”里给你建议而是直接在你当前的项目环境里干活。1.2 为什么把 Claude Code 和谷歌云结合谷歌云是全球主流的公有云平台之一提供计算、存储、数据库、Kubernetes 等一整套云服务。把 Claude Code 和谷歌云放在一起通常对应三类场景远程开发本地电脑性能不够或者需要和团队成员共用一套开发环境直接在云端虚拟机上跑 Claude Code。生成即部署让 Claude Code 生成 Web 应用、API 服务然后在同一台云端机器上完成安装依赖、启动服务、开放端口形成“从需求到上线”的闭环。自动化任务使用 Claude Code 的非交互模式写脚本、生成文档、做批量代码处理再接入 CI/CD 流水线。本文要实践的正是第二种场景这也是最直观、最有成就感的一条路径。1.3 本文实战内容先交代清楚整篇文章会走通的流程在本地安装 Claude Code 和 gcloud 命令行工具。在谷歌云上创建一台 Ubuntu 虚拟机并放行 Web 访问端口。SSH 登录虚拟机安装 Node.js 运行环境和 Claude Code。用 Claude Code 生成一个 Express Web 应用提供首页和健康检查接口。把应用配置成 systemd 常驻服务通过公网访问验证。最后整理高频报错、排查思路和工程建议。整个流程覆盖“创建云资源 → AI 生成代码 → 部署上线”的完整链路理解之后你可以把同样的思路迁移到 Python、Go、Java 等更多技术栈。2. 环境准备与版本说明2.1 本地前置条件本文的本地演示环境以 macOS / Linux 终端为例Windows 用户建议使用 Windows Terminal 配合 WSL2命令基本通用。开始前需要准备一个谷歌云账号且已开通 Compute Engine API。一个可用的 Anthropic 账号或 API Key用于 Claude Code 登录认证。Node.js 18 或更高版本用于通过 npm 安装 Claude Code。一台能正常连接谷歌云 API 的电脑。需要说明的是Claude Code 迭代速度比较快版本号会持续更新。本文不会写死具体版本号你安装时以官方 npm 仓库中的最新稳定版为准重点是理解完整的配置思路。2.2 安装 Claude CodeClaude Code 官方推荐通过 npm 全局安装npm install -g anthropic-ai/claude-code安装完成后验证版本claude --version如果能输出版本号说明安装成功。如果提示command not found通常是 npm 全局安装目录不在 PATH 中。可以执行npm prefix -g查看全局目录再把它加入系统 PATH。安装速度较慢或失败时先检查当前 npm 镜像源npm config get registry如果用的是某个镜像源且不稳定可以临时切换为官方 npm 源再安装npm install -g anthropic-ai/claude-code --registryhttps://registry.npmjs.org2.3 初始化并登录 Claude Code第一次运行claude时它一般会引导你完成登录常见有两种方式账号 OAuth 登录在浏览器中完成 Anthropic 账号授权适合已订阅 Claude 相关服务的用户。API Key 登录通过ANTHROPIC_API_KEY环境变量指定你自己的 API Key适合按 token 计费的用户。建议把 API Key 放在环境变量里而不是写进项目代码。比如在~/.bashrc或~/.zshrc中追加export ANTHROPIC_API_KEY你的_API_Key保存后执行source ~/.bashrc再运行claude验证能否进入会话界面。不同时期官方对 Claude Code 的账号订阅策略会调整如果你没有 API Key请先确认当前官方文档中的开通方式以官方说明为准。2.4 安装并初始化 gcloudgcloud 是谷歌云官方命令行工具安装方式取决于系统macOSbrew install --cask google-cloud-sdkLinux下载官方 tar 包解压后执行install.shWindows使用 PowerShell 安装脚本安装完成后执行初始化gcloud initgcloud init会引导你登录账号、选择项目、设置默认区域。如果已经登录过也可以直接切换项目gcloud config set project 你的项目ID查看当前配置确认无误gcloud config list确认账户、项目、区域都正确后本地环境准备完成。3. Claude Code 核心用法解析3.1 交互式模式在项目目录下运行cd /path/to/your/project claude进入交互式界面后你可以直接输入自然语言指令。比如输入/initClaude Code 会分析当前目录结构并生成 CLAUDE.md 项目说明文件之后它会更理解项目背景。也可以直接提需求帮我在当前目录下创建一个最简单的 Express Web 应用监听 3000 端口提供一个 /health 健康检查接口。Claude Code 通常会先输出执行计划再创建文件、安装依赖、启动验证。这个过程和真人结对编程的节奏很像先对齐目标再动手执行。3.2 非交互式模式在脚本或 CI 流水线中更适合使用非交互式模式claude -p 查看当前目录下所有 .js 文件并把每个文件的第一个函数名输出到 result.txt-p表示 print 模式执行完对话后直接退出并输出结果。这种模式很适合批量任务、自动化文档生成、代码检查等场景。3.3 权限控制与安全检查Claude Code 在执行本地命令前会做权限确认默认会询问是否允许运行 Shell 命令、修改文件等。对于安全要求较高的场景你可以在对话中明确限制它的操作范围比如只修改 src 目录下的文件不要执行部署命令。也可以使用内置的/help查看当前版本的权限配置项。需要特别提醒的是Claude Code 能执行命令本质上和你在终端里敲命令拥有相同的能力因此不要在一个权限过大的账号下让它随意操作生产环境。3.4 在远程服务器上使用Claude Code 本质是一个 CLI 工具天然支持在 SSH 远程服务器中使用。你只需要在服务器上同样安装 Node.js 和 Claude Code然后通过 SSH 登录服务器运行claude。远程使用的优势很明显代码和运行环境在同一台机器上AI 生成完代码可以直接启动验证。不需要把部署产物频繁同步回本地。团队成员可以共用同一台开发机。不过要额外注意远程服务器上的 API Key 和账号信息要妥善保管不要写入任何会被提交到 Git 仓库的文件。4. 谷歌云环境准备4.1 创建虚拟机实例先看一下可用的区域列表gcloud compute zones list | head -20选择一个离你较近的区域创建虚拟机。本文用一台轻量级 Ubuntu 22.04 虚拟机gcloud compute instances create claude-demo \ --zoneasia-east1-a \ --machine-typee2-small \ --image-familyubuntu-2204-lts \ --image-projectubuntu-os-cloud \ --boot-disk-size20GB参数说明参数说明claude-demo实例名称可自定义--zone实例所在区域--machine-type机器规格e2-small 适合轻量实验--image-family操作系统镜像版本--image-project镜像所属项目--boot-disk-size系统盘大小单位 GB实例规格会直接影响成本和性能。本文演示的应用很小e2-small 足够如果后续要跑更重的构建任务可以换成 e2-standard-2 或更高规格。4.2 开放防火墙端口默认情况下谷歌云虚拟机只有少量端口对外开放。我们要通过浏览器访问 Web 应用需要放行 3000 端口gcloud compute firewall-rules create allow-node-app \ --allow tcp:3000 \ --source-ranges 0.0.0.0/0 \ --description Allow access to Node.js demo app这里必须明确一点0.0.0.0/0表示允许所有来源 IP 访问演示阶段这样配置最省事但生产环境一定要收紧为指定 IP 段或者把应用放在负载均衡器后面统一管理入口流量。最小权限原则在云安全里永远是第一位的。4.3 SSH 登录虚拟机gcloud compute ssh claude-demo --zoneasia-east1-aSSH 登录成功后你会看到 Ubuntu 的终端提示符。接下来在虚拟机上安装基础软件。先更新系统包并安装 Node.js。Ubuntu 22.04 默认软件源里的 Node.js 版本偏低推荐使用 NodeSource 源安装较新的版本curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs安装完成后验证node -v npm -v4.4 在虚拟机上安装 Claude Code在虚拟机上同样通过 npm 安装sudo npm install -g anthropic-ai/claude-code为了安全建议不要用 root 运行业务应用而是创建一个普通用户sudo adduser coder sudo usermod -aG sudo coder切换到coder用户sudo su - coder在coder用户下配置 API Keyecho export ANTHROPIC_API_KEY你的_API_Key ~/.bashrc source ~/.bashrc到这里虚拟机的开发环境准备完毕。接下来进入正式实战。5. 完整实战用 Claude Code 生成并部署 Web 应用5.1 明确需求在让 AI 写代码之前先把需求写清楚。模糊的需求会得到模糊的结果这也是很多 AI 辅助开发效果不佳的根源。本文的需求如下创建一个 Node.js Web 应用使用 Express 框架提供两个接口GET / 返回一段 HTML页面标题显示“Claude Code on Google Cloud”。GET /health 返回 JSON内容为{ status: ok }。 应用监听 3000 端口。5.2 创建项目目录mkdir -p ~/app cd ~/app5.3 用 Claude Code 生成代码在项目目录下启动claude输入如下需求在当前目录下创建一个 Express 应用 1. 使用 package.json 管理依赖express 版本用最新稳定版。 2. 入口文件是 app.js。 3. 提供 GET / 接口返回一个简单的 HTML 页面。 4. 提供 GET /health 接口返回 {status:ok}。 5. 监听 3000 端口。 之后帮我运行 npm install 安装依赖。Claude Code 会先输出执行计划再创建文件并执行安装命令。完成后查看目录ls -la ~/app预期会看到package.json、app.js、node_modules等文件。5.4 核心代码说明下面这段代码是 Express 应用的核心逻辑你可以把它和 Claude Code 生成的结果对照检查// 文件路径~/app/app.js const express require(express); const app express(); const PORT 3000; app.get(/, (req, res) { res.send( html headtitleClaude Code on Google Cloud/title/head body h1Hello from Claude Code/h1 pDeployed on Google Cloud VM./p /body /html ); }); app.get(/health, (req, res) { res.json({ status: ok }); }); app.listen(PORT, 0.0.0.0, () { console.log(App listening on port ${PORT}); });这里最需要注意的是监听地址必须写0.0.0.0而不是127.0.0.1。因为虚拟机的公网请求会先到达服务器网卡再转发给应用进程。如果应用只监听回环地址外部流量就进不来。这是云服务器部署中最容易踩的坑之一。5.5 启动并本地验证手动启动一次确认代码没有问题cd ~/app node app.js看到App listening on port 3000后另开一个 SSH 会话验证curl http://localhost:3000/health预期输出{status:ok}再用虚拟机内网地址验证一次curl http://$(hostname -I | awk {print $1}):3000/health返回正常说明应用本身没有问题接下来把它配置成常驻服务。5.6 配置 systemd 常驻服务直接node app.js启动的进程会随着 SSH 会话关闭而结束。要让应用在后台长期运行、开机自启、崩溃自动重启推荐使用 systemd 管理。创建 systemd service 文件sudo tee /etc/systemd/system/claude-demo.service /dev/null EOF [Unit] DescriptionClaude Code Demo App Afternetwork.target [Service] ExecStart/usr/bin/node /home/coder/app/app.js WorkingDirectory/home/coder/app Restartalways RestartSec5 Usercoder EnvironmentNODE_ENVproduction [Install] WantedBymulti-user.target EOF关键参数说明配置项作用ExecStart应用启动命令WorkingDirectory应用工作目录Restartalways进程异常退出后自动重启RestartSec重启间隔秒数User运行应用的系统用户避免使用 rootEnvironment向应用注入环境变量注意ExecStart中的 node 路径。Ubuntu 通过 NodeSource 安装后node 一般位于/usr/bin/node不确定时执行which node查看。启动服务并设置开机自启sudo systemctl daemon-reload sudo systemctl enable claude-demo sudo systemctl start claude-demo查看服务状态sudo systemctl status claude-demo如果状态为active (running)说明应用已经常驻运行。5.7 公网访问验证获取虚拟机外网 IPgcloud compute instances describe claude-demo \ --zoneasia-east1-a \ --formatget(networkInterfaces[0].accessConfigs[0].natIP)在本地浏览器访问http://虚拟机外网IP:3000/health看到{status:ok}即部署成功。访问首页则能看到标题为“Claude Code on Google Cloud”的 HTML 页面。6. 进阶远程迭代与自动化6.1 让 Claude Code 继续迭代功能应用跑起来之后真正的价值在于持续迭代。SSH 登录服务器进入项目目录cd ~/app claude输入新需求给首页加一个按钮点击后调用 /health 接口并把结果显示在页面上。Claude Code 修改完成后重启服务即可生效sudo systemctl restart claude-demo“生成 → 运行 → 反馈 → 再生成”这个循环是 AI 辅助开发的主流程。你会发现比起手动改代码让 AI 在明确约束下快速产出初稿再由人工 review 和修正整体效率会高很多。6.2 用非交互模式做自动化如果你希望 CI 流水线也能调用 Claude Code可以使用-p模式。例如在部署脚本中自动生成 API 文档claude -p 阅读 src 目录下的所有代码生成一份 API 文档输出到 docs/api.md也可以让它做代码审查claude -p 检查当前目录下代码中是否有明显内存泄漏风险并输出改进建议这种模式适合在部署流水线里做文档生成、变更说明、静态检查等任务但要注意给 CI 环境配置独立的 API Key并使用 secret 注入而不是写死在配置文件中。6.3 与 Git 协作Claude Code 可以帮你执行 Git 操作但如果仓库包含敏感信息一定要在提交前检查。建议在项目根目录写入.gitignore明确排除node_modules/ .env *.log对于生产环境更推荐使用谷歌云 Secret Manager 来管理密钥而不是依赖本地的.env文件。7. 常见问题与排查思路7.1 常见报错对照表问题现象常见原因解决思路安装后claude命令找不到npm 全局目录不在 PATH执行npm prefix -g找到全局目录并加入 PATH安装时提示error: claude native binary not installed. either postinstall did not runnpm 安装过程中 postinstall 脚本未成功执行清理 npm 缓存后重新执行npm install -g anthropic-ai/claude-code启动后要求重复登录登录凭据或 API Key 环境变量未生效确认ANTHROPIC_API_KEY已写入~/.bashrc并source生效提示某个模型名称无法识别例如 xxx is not a model this version of claude code recognizes通过环境变量指定了当前版本不支持的模型名检查自定义模型名或升级/回退 Claude Code 版本后重试网络请求一直重试提示 connection droppedeconnreset网络不稳定或目标服务连接被中断检查网络连通性稍后重试确认 API 请求地址配置正确通过外网 IP 访问不到应用防火墙未放行端口或应用只监听了 127.0.0.1检查防火墙规则确认应用监听地址为 0.0.0.0systemd 服务启动失败ExecStart 中的 node 路径不对或目录权限不足执行which node确认路径检查User是否有目录读权限SSH 登录虚拟机超时实例未启动或本地网络无法连接先gcloud compute instances describe查看状态再检查本地网络7.2 排查思路建议遇到问题不要急着重装按顺序排查先看错误信息本身。CLI 通常会给出关键原因优先理解它而不是直接搜报错。再看版本。Claude Code 更新很快很多报错是本地版本和 npm 最新版本不一致导致的对比claude --version和npm view anthropic-ai/claude-code version。检查环境变量。确认ANTHROPIC_API_KEY是否正确加载不要在终端里明文打印完整 Key。检查网络。如果出现反复重试、连接断开先确认基础网络是否正常再判断是瞬时抖动还是配置问题。看日志。systemd 管理的服务用journalctl跟踪最新日志比盲目猜测高效得多sudo journalctl -u claude-demo -n 50 --no-pager7.3 关于调试建议的补充如果某个报错在本文对照表中没有覆盖最有效的办法是缩小问题范围先确认“这个报错是 Claude Code 本身的问题还是云服务器环境的问题”。判断方法很简单在本地同一项目里跑一遍同样的需求如果本地正常、服务器报错问题大概率出在服务器环境如果两边都报错问题大概率出在 Claude Code 配置或版本上。8. 最佳实践与工程建议8.1 密钥与权限管理永远不要把 API Key 提交进 Git 仓库。建议使用谷歌云 Secret Manager 或环境变量管理密钥。云虚拟机尽量使用普通用户运行应用避免 root 权限扩大攻击面。谷歌云 IAM 权限遵循最小化原则只在需要的服务上分配需要的权限而不是直接给 Owner。8.2 成本控制用完即删。演示虚拟机如果不再使用及时删除避免持续计费gcloud compute instances delete claude-demo --zoneasia-east1-a设置预算告警。在谷歌云控制台的“预算与告警”里设置月度预算超过阈值自动发邮件提醒。按需升配。开发调试用小规格压测时再临时升配不要一直开大机器。8.3 让 AI 生成的代码更可靠Claude Code 生成代码很快但生成结果不一定完全符合生产要求。建议在交互时明确约束每次修改前说清楚边界比如“不要改动已有测试”“不要把不必要的依赖写进 package.json”。要求它补充单元测试并实际跑一遍。比如让 Claude Code 为/health接口写测试。代码合并前人工 review尤其是涉及数据库、支付、权限的部分。AI 生成内容只能作为起点不能替代工程判断。8.4 日志与监控应用上线后日志和监控必须补齐。systemd 下查看日志sudo journalctl -u claude-demo -f如果应用要长期运行建议在应用内接入结构化日志把请求时间、状态码、耗时输出为 JSON后续接入日志平台会轻松很多。同时在谷歌云控制台启用 Cloud Monitoring对 CPU、内存、磁盘等基础指标设置告警。8.5 与 CI/CD 结合把 Claude Code 接入 CI 时注意几点CI 环境中的 API Key 通过 CI 平台的 secret 注入不要写死在配置文件。为 AI 生成内容设置明确的工作目录和临时目录避免污染主仓库。在流水线中跑一次非交互模式的代码检查脚本把结果作为构建产物之一。9. 总结与后续学习路线本文从零完成了一次“Claude Code 谷歌云”的部署实战本机安装 Claude Code创建谷歌云虚拟机在虚拟机上用 Claude Code 生成 Express 应用再通过 systemd 把应用变成常驻服务最后通过公网访问验证。这个流程覆盖了云资源创建、AI 生成代码、部署上线的关键环节。如果想继续深入建议按这几个方向扩展容器化把应用打成 Docker 镜像部署到谷歌云 Artifact Registry 和 Cloud Run。Cloud Run 可以按请求自动伸缩比虚拟机更适合无状态服务。Kubernetes应用规模变大、需要多副本和高可用时可以学习 GKE谷歌云 Kubernetes 引擎和现有的 k8s 部署体系是一脉相承的。AI 开发工作流实践 Claude Code 的 CLAUDE.md 项目说明、权限配置、非交互模式集成逐步形成属于你自己的 AI 辅助开发流程。可观测性把日志、监控、告警接到谷歌云 Cloud Monitoring做到线上问题及时感知。AI 辅助开发不是“让 AI 全自动写代码然后直接上线”而是一个需要持续约束、验证和审查的协作过程。云平台也不应该被当成只能点点点的黑盒。把命令行工具、AI 编程助手和云资源三者串起来即使团队规模很小也能形成完整的应用交付闭环。建议先照本文跑通一次最简单的部署再根据自己项目的技术栈做替换和扩展。动手跑通一次比看十遍文档更有用。