从 DevBridge 隧道到 ECS:一次单页游戏的完整上线实践

举报
yd_277740071 发表于 2026/10/22 00:46:40 2026/10/22
【摘要】 记录单文件 2048 游戏从 DevBridge 开发隧道预览到 ECS 加 Nginx 持久化部署的完整过程,包括安全组端口放通、规格可用性校验、cloud-init 自动部署等实战踩坑。

背景

把一个单文件 2048 游戏真正上线,比想象中多踩了几个坑。整个过程分两段:先用 DevBridge 开发隧道拿到临时公网域名做快速预览,再用 ECS 做持久化部署。这篇记录完整步骤和遇到的问题。

一、沙箱预览:DevBridge 开发隧道

DevBridge 是华为云开发者空间提供的开发隧道服务,核心思路是让本地服务主动向中继集群建立出站连接,不需要在本地开放公网入端口。

1. 准备 API Key 访问开发者空间的 DevBridge 管理页新建 API Key。密钥只在创建时完整显示一次,务必当场保存。需要注意 v0.2.x 之后 CLI 已经移除了 AK/SK 登录方式,只支持 API Key 鉴权。

2. 创建隧道并开放端口 devbridge auth login 登录后,先 create 建隧道并记下 Tunnel ID,再 port create 绑定本地端口,最后 host 启动托管。port create 时要注意匿名访问策略,默认策略是拒绝匿名,如果不显式允许,公网访问会返回 authentication required。

3. 域名格式 新版集群的域名后缀是 devbridge-s2.hwtunnel.com,旧版的 cn-north-4-bridge.myhuaweicloud.com 已经不可用。做活动提交这类有格式校验的场景时要注意,前端正则通常只认新域名。

二、持久化部署:ECS 加 Nginx

临时隧道适合演示,但要长期可访问还是得上 ECS。用 Python SDK 按需创建实例,关键参数包括规格、镜像、VPC、子网、安全组和公网 IP。公网 IP 通过 publicip 字段指定,带宽按流量计费更适合演示场景。

把部署逻辑写进 user_data,实例开机后自动执行 apt 安装 Nginx、写入页面、重启服务。注意 user_data 需要先做 base64 编码再传给接口。

安全组必须放通端口,这一步最容易被忽略。默认安全组通常只开了 22 和 3389,80 端口是不通的。实例明明是 ACTIVE、Nginx 也起来了,但外网 curl 一直超时或者连接被拒,原因就在这里。补一条 80 端口的入方向规则即可。

三、几个排查经验

规格已被淘汰:创建时如果报 flavor is abandoned,说明这个规格下线了。不要凭记忆写规格 ID,先调 ListFlavors 查当前可用的。

请求参数名要对:ECS 的创建接口对字段名很敏感,比如标签字段是 server_tags 而不是 tags,写错了会返回 convert request fail,但不会告诉你具体哪个字段。

验证不能只看 HTTP 200:页面能返回 200 不代表功能正常。真正要确认的是 DOM 渲染出来、事件能响应、状态能变化。用浏览器自动化跑一遍按键输入,看分数是否变化,比 curl 看状态码可靠得多。

四、小结

整条链路的核心是两块:DevBridge 解决快速预览,ECS 解决持久化。前者几乎零成本,适合开发阶段反复调试;后者虽然要花一点钱,但地址稳定、可控性强。真正的坑集中在三处:安全组端口、规格可用性、以及请求体字段的精确性。前两处是配置问题,第三处是文档问题,都只能靠实际调用去试。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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