AI 开发者空间实战:DevKit 环境搭建与 2048 沙箱部署记录
最近参加华为云开放能力闯关活动,目标是用 ECS 部署一个专属的 2048 小游戏。整个过程在 AI 开发者空间里通过对话完成,AI Agent 负责执行命令,我负责给提示词和验收。这篇文章记录已经真实跑通的前两步:开发环境搭建,以及 2048 页面在沙箱中的部署与公网验证。
一、第一步:用 DevKit 搭好开发环境
第一份提示词要求 AI 阅读 HuaweiCloud DevKit 的官方 README,按步骤完成安装配置,具体包括五件事:
1. 确认 Node.js 版本不低于 22(实测环境为 v22.23.3);
2. 用 npx 安装 KooCLI(hcloud,实测版本 7.3.12);
3. 执行 auth init 配置访问凭据,并同步到 KooCLI、OBS 与沙箱;
4. 以 codearts 为目标安装 DevKit 插件(包含 MCP Server、安全策略、Agent Rules 和 29 个 Skills);
5. 执行 doctor 做安装后自检。
最终 doctor 的结果是 10 项全部通过(10 pass、0 warn、0 fail)。这里有两个实际踩到的点:
临时凭据要三项一起配。沙箱里用的是平台注入的临时凭据(Access Key、Secret Key 和 Security Token)。一开始 auth 流程反复丢 token,原因是只配了 AK/SK 两项;把三项用 hcloud configure set 一次性写入,再补上 Domain ID(即账号 ID)与 Project ID,最后用 STS GetCallerIdentity 验证,调用方身份确认成功才算配好。
装完必须重启会话。插件安装完成后,AI 明确提醒要重启 AI Agent 会话,MCP 工具才会生效。这一步如果跳过,后面调用工具会找不到。
二、第二步:生成 2048 并部署到沙箱
第二步的约束很明确:纯单文件 HTML,CSS 和 JS 全部内联在 index.html 中,不依赖 npm、Vite 或任何构建工具。游戏本体是经典规则:4×4 网格、方向键操作、相同数字合并计分、无空格且无可合并时判定结束,同时适配 PC 和移动端(触摸滑动)。AI 生成的 index.html 共 244 行、9705 字节。
部署走 DevKit 沙箱加 DevBridge 隧道。实际过程比预想曲折,主要卡在两个地方:
端口被旧进程占用。第一次在 8080 端口起服务后,curl 返回的是旧的 Hello World 页面。判断依据是响应里的 Content-Length:返回 1060 字节,而我们的文件是 9705 字节,明显对不上。排查发现 8080 被一个更早启动的进程占着,而且杀不掉,最后改用空闲端口才解决。教训是:判断服务是否正确,不要只看状态码,还要核对响应字节数和文件大小。
沙箱是两个环境。DevBridge 隧道只能暴露 devbridge 沙箱内的端口,而文件最初写在 devkit 沙箱里,两个沙箱并不互通。把 index.html 同步到 devbridge 沙箱、在其中起 HTTP 服务后,再通过隧道管理接口创建隧道、添加端口、启动托管,最终拿到形如 https://{隧道ID}-{端口}.devbridge-s2.hwtunnel.com 的公网地址。最后用 curl -sI 验证,返回 HTTP 200 OK,Content-Length 同样是 9705,与本地文件完全一致,确认公网可访问。
三、踩坑小结
1. 响应是 200 不代表内容对,Content-Length 是快速核对的好帮手;
2. 起服务前先用 ss 查端口占用,避开被占用的常用端口;
3. 多沙箱环境下先想清楚文件到底在哪个环境、隧道暴露的又是哪个环境;
4. 临时凭据三件套缺一不可,配完用 STS 接口验证身份最稳妥。
四、后续计划
下一步是把同一份 index.html 用 Nginx 部署到 ECS 上做持久化托管,并完成端到端校验与资源清理,等实际做完后再单独成文分享。
- 点赞
- 收藏
- 关注作者
评论(0)