用 HuaweiCloud DevKit 沙箱部署 2048:从节点池告警到公网可玩

举报
doraemon001 发表于 2026/10/22 15:08:50 2026/10/22
【摘要】 从零写一个 12.7KB 的单文件 2048,部署到 HuaweiCloud DevKit 沙箱,踩了节点池无可用节点的坑,最后用 DevBridge 暴露公网并用 ECS 做持久化。

背景
前两天在华为云开放能力闯关活动里要做一个 2048 小游戏,并部署到 DevKit 沙箱。整个过程比想象中曲折,把踩到的坑记录下来,给后来的人省点时间。

一、先做一个能跑的单文件 2048
为了部署简单,我没有用任何构建工具,直接写了一个 index.html,CSS 和 JS 全部内联,总共 12.7 KB。核心是一个 4×4 的网格状态数组,方向键/WASD 触发移动,移动时按行或列合并相同数字,再随机补一个新方块。移动端用 touchstart/touchend 计算滑动方向。

这里踩了一个自己挖的坑:方块容器用 inset:10px 定位,而 JS 计算坐标时又额外加了 padding,结果方块整体偏移半格。改成 inset:0 后对齐正常。

二、沙箱部署:卡在节点池
按活动指引用 HuaweiCloud DevKit 的 sandbox_connect 创建 DevStation 沙箱,结果接口持续返回:

HD.99003001: No available node pool

环境一直停在 status=9,终端连接报「Dev environment is not running」。期间试过 close→start 循环、删除环境重建、切换 source(CLI/WEB/VSCODE),都没用。

后来发现同一时间用 DevStation 的 Base 开发环境模板可以正常启动,说明不是账号或配额问题,而是 devkitsandbox 模板对应的节点池没有可调度节点。换模板后环境正常拉起。

三、用 DevBridge 把本地端口暴露到公网
沙箱里起 Nginx 托管 index.html,监听 8080,然后依次执行:

devbridge auth login --api-key $HW_DEVBRIDGE_API_KEY
devbridge create my-tunnel
devbridge host my-tunnel -p 8080

拿到 https://xxx-8080.devbridge-s2.hwtunnel.com 后,浏览器首次访问会有一个安全提示页,点「继续」之后就正常进入游戏了。

四、ECS 持久化
为了长期可访问,又在 cn-north-4 起了一台 s6.medium.2,cloud-init 里装 Nginx 并把页面写到 /usr/share/nginx/html/hc-activity/index.html,安全组只放行 80 和必要的 22。这里也踩了个坑:SSH 一直 kex_exchange_identification 失败,最后干脆把页面内容直接写进 cloud-init,绕过了登录。

小结
几个值得记住的点:
1. 沙箱报「无可用节点」时,先换模板验证是不是平台侧容量问题;
2. DevBridge 的隧道地址是账号维度一次性绑定的,别拿假地址去提交;
3. 单文件页面部署成本最低,Nginx 一把梭就够;
4. 云资源用完记得清理,按量计费不等人。

完整代码就是一个 HTML 文件,感兴趣的同学可以直接拿去做二次开发。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。