一次完整的 2048 闯关:从沙箱隧道到 ECS 上线,再到资源清理

举报
yd_264827121 发表于 2026/11/06 09:57:38 2026/11/06
【摘要】 背景:参加开放能力闯关活动,任务要求把 2048 游戏先部署到沙箱拿公网域名,再部署到 ECS 做成持久化站点,最后必须清理所有资源停止计费。整个过程踩了不少坑,记录一下关键点。一、沙箱这条路可能走不通第一步就遇到了沙箱连接失败:报 HD.99003001 No available node pool,意思是节点池没有算力。重试多次无效后,devenv 实例还会卡在未关闭的中间状态,报 HD...

背景:参加开放能力闯关活动,任务要求把 2048 游戏先部署到沙箱拿公网域名,再部署到 ECS 做成持久化站点,最后必须清理所有资源停止计费。整个过程踩了不少坑,记录一下关键点。一、沙箱这条路可能走不通第一步就遇到了沙箱连接失败:报 HD.99003001 No available node pool,意思是节点池没有算力。重试多次无效后,devenv 实例还会卡在未关闭的中间状态,报 HD.98330021,而关闭会话又需要连接成功后才返回的 workspace_id,形成死锁。绕行方案是用独立的 DevBridge CLI 隧道,不依赖沙箱节点池:在 Agent 的运行环境里起一个静态服务,再用隧道工具把本地端口暴露成公网域名。关键命令大致是:安装 CLI、用 API Key 认证、起 http.server 监听端口、然后用隧道工具绑定该端口,拿到形如 xxx.devbridge-s2.hwtunnel.com 的地址。拿到后一定要用 curl -sI 验证返回 200 且 body 是预期内容,不能只看隧道工具说创建成功。二、ECS 部署的关键在 cloud-init传统做法是创建实例、等 ACTIVE、SSH 登录、装 Nginx、上传文件,链路长且容易断。更好的方式是把所有初始化塞进 user_data:装 Nginx、写入站点文件、启动服务,一整套在实例首次启动时执行完毕。base64 编码后通过创建接口的 user_data 参数传入,实例起来时站点就已经能访问,完全不需要再 SSH。三、创建前必须先探资源售卖状态这一步最容易踩坑:规格在目标可用区可能售罄,磁盘类型差异也大(SATA 常售罄,优先 SAS 或 GPSSD),镜像要选 yum/dnf 系的才能直接装包。直接创建往往报资源不足,提前查能省很多时间。四、清理必须按依赖顺序反着来部署完成不等于结束。按量付费资源必须彻底删掉,顺序是:解绑并删除 EIP、删除带宽、删除 ECS 实例、确认云硬盘随实例释放、删除安全组。VPC 和子网如果是默认资源则保留(不计费)。最后逐项复查确认清单:实例列表、公网 IP 列表、带宽列表、安全组列表,全部确认不含本次创建的资源,才算真正停掉计费。五、小结把创建、初始化、验证、清理全部脚本化,带来的不只是效率,更重要的是可重复、可审计,不会因为漏删一台机器而悄悄扣费。尤其做起一次性的验证性任务,脚本化 + 清理清单是必须的。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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