一次对话,从零到公上线:我用 AI Agent 完成 2048 游戏的华为云全链路部署
一次对话,从零到公网上线:我用 AI Agent 完成 2048 游戏的华为云全链路部署
实测:AI Agent(华为云 CodeArts)+ HuaweiCloud DevKit 插件,把"写游戏 → 沙箱部署 → 公网验证 → ECS 持久化 → 活动提交"压缩成一次对话交付,全程无需离开终端。
一、背景:为什么要试这件事
"用 AI 写个小游戏"早已不新鲜,但写完之后呢?代码躺在本地目录里,离"公网可玩"还差着部署、域名、服务器好几道坎。对大多数开发者,这几道坎比写代码本身更磨人。
这次我做了个实验:只跟 AI Agent 说一句话——“生成一个 2048 小游戏,纯单文件 HTML,用 DevKit 沙箱部署,隧道暴露公网,最后给我可访问的 URL”——然后全程旁观它怎么把这条路走通。
结果它不仅走通了,还顺手完成了 GitCode 源码托管、ECS 持久化部署、闯关活动提交、作品展览馆发布,甚至把整个方法论沉淀成了一个可复用的 Skill 上架了技能市场。
二、游戏本身:单文件,14KB,零依赖
Agent 交付的 index.html 只有 13.9KB,HTML + CSS + JS 全部内联,没有 npm、没有 Vite、没有 CDN 请求:
- 经典玩法:4×4 网格,随机生成 2(90%)/4(10%),同值相撞合并翻倍
- 双端操作:PC 方向键 + WASD,移动端滑动手势(阈值 24px,配合
touch-action:none抑制滚动) - 胜负判定:无空格且无相邻同值判负;合成 2048 弹胜利层,可继续挑战
- 本地存档:localStorage 双 key,棋局进度刷新续玩 + 历史最高分
- 动效:方块位移用 CSS transform + transition(120ms 平滑滑动),新块弹入、合并块弹跳动画
移动端适配是容易翻车的点,它处理了 viewport-fit=cover、env(safe-area-inset-*) 安全区和字号随位数四档自适应——这些细节决定了"能玩"和"玩着舒服"的差距。
三、沙箱部署:不是 Demo 环境的沙箱
这是整条链路里最"华为云特色"的一环。Agent 通过 HuaweiCloud DevKit MCP 插件操作云端沙箱(DevStation):
- 实名/协议检查 → 签署沙箱服务协议(这一步 Agent 会先征求确认,不替用户做法律决定)
- 建立沙箱会话 → 拿到一个 4C8G 的 ARM 容器环境
- 一次调用上传
index.html(分块 + MD5 校验) - 部署 nginx(static 模式,项目根即站点根)
- DevBridge 隧道 → 暴露
https://xxx-8080.devbridge-s2.hwtunnel.com公网 URL - curl -sI 验证 200 → 确认 Content-Length 与本地文件一致
值得一提的是中途踩的坑:沙箱节点池满载(错误码 HD.99003001: No available node pool),Agent 没有干等,而是起了个 15 秒间隔的后台重试循环,每轮失败自动 close 重置卡死实例,排队约半小时后自动拿到连接——排错自主性是这次实验里最超出预期的部分。
四、ECS 持久化部署:一条命令的事
沙箱隧道有 72 小时时效,要长期可玩就得落到 ECS。我提供了一台 Flexus 应用服务器 L 实例(轻量版 ECS,带独立公网 IP),Agent 交付了一条自适应命令(我的环境是 OpenResty):
curl -fsSL <隧道URL> -o /usr/local/openresty/nginx/html/hc-activity/index.html \
&& mkdir -p <站点目录>/hc-activity \
&& cp ... && nginx -t && nginx -s reload \
&& curl -sI http://localhost/hc-activity/index.html | head -1
从沙箱隧道下载文件 → 落到 /hc-activity/ 路径 → 校验配置 → reload → 本机自测,一气呵成。公网 curl -sI 返回 200、Content-Length 13892 与源文件一致,部署完成。
这里有个隐藏坑值得记录:后续向活动接口提交时反复报"作品链接无效",排查发现是 region 不匹配——我的 ECS 在 cn-east-3,提交头里传了 cn-north-4。Agent 用 ECS NovaListServers 遍历 region 定位到实例真实位置后,用正确的 Project ID + region 重提,一次通过。
五、把成果变成积分:活动提交的正确姿势
华为云"开放能力闯关挑战"(activity_code=open-capability-2026-1024)分两步:
| 里程碑 | 提交内容 | 校验规则 | 积分 |
|---|---|---|---|
| beginner(沙箱部署) | 沙箱隧道 URL | 域名须为沙箱域名 | 1000 |
| intermediate(ECS 部署) | http://<EIP>/hc-activity/index.html |
链接须含 index.html | 2000 |
Agent 通过活动提交 API(AK/SK 鉴权头 + X-HW-PROJECT-ID/X-HW-REGION)自动提交,两步合计 3000 活动积分。
再往后它还完成了:
- 作品展览馆发布:生成封面图(Playwright 截图 + 合成)、架构图、500+ 字详解文章,发布到开发者作品展览馆的闯关活动下,+200 成长积分
- GitCode 源码托管:OAuth 设备码授权 → API 建仓 → push
- 技能沉淀:把整套方法论写成 SKILL.md,上架华为云技能市场 + 提交小红书 SkillHub 参赛
六、复盘:这次实验真正验证了什么
-
全链路可以对话化。从"想法"到"公网 URL + 活动积分",用户侧的操作只有:确认协议签署、扫码授权(GitCode/小红书)、提供 ECS。其余全部由 Agent 闭环。
-
排错能力比顺境能力更值钱。节点池排队、实例卡死、region 不匹配、WAF 拦截提交、CLI 解析缺陷——这次实验里 Agent 遇到的失败远多于成功,但它每次都定位到根因(甚至读了插件源码找绕过方案)而不是原地重试。
-
凭证安全有章法。AK/SK 全程走环境变量与 0600 权限临时文件,对话输出里零泄漏,用后即删。
-
方法论可复用。最后的 SKILL.md 把"排错锦囊"(错误码 → 处置动作的映射表)也沉淀了进去,下次任何人遇到
HD.98330021都能直接照方抓药。
七、你可能想试
- 作品页:https://gallery.developer.huaweicloud.com/gallery/006915d16c000000
- 技能:华为云技能市场搜
game2048-huaweicloud-deploy
如果你也想让 Agent 帮你完成"生成 → 部署 → 提交"全链路,在 CodeArts Agent 里装上 HuaweiCloud DevKit 插件,说一句"生成 2048 并部署到沙箱"就够了。
本文由一次真实会话整理而成,所有错误码、积分数字与耗时均为实录。
- 点赞
- 收藏
- 关注作者
评论(0)