华为云开发者闯关实录:码道沙箱 + ECS 持久化部署一个 2048 小游戏
一、任务背景
华为云成长中心的「开发者闯关」活动包含两个一次性任务:完成沙箱部署(+1000 积分)与完成 ECS 部署(+2000 积分)。本文记录一个纯前端小游戏(2048)从码道沙箱到 ECS 持久化部署的完整链路,以及过程中踩到的坑。
二、作品本体
作品是单文件 index.html,不依赖任何构建工具与外部 CDN:CSS Grid 铺 4x4 棋盘,绝对定位的 tile 通过 transform: translate() 做滑动动画,合并时播放 pop 缩放动画,键盘方向键与移动端触摸滑动共用同一套 move() 逻辑,localStorage 记录最高分。单文件的好处是后面所有部署环节都只需要搬运一个文件。
三、沙箱部署阶段
沙箱即华为云开发者空间 / 码道(CodeArts)的云端开发环境。要点有三个:
1. 文件上传不要指望网页剪贴板。把 HTML 做 base64 后通过沙箱的 open-api 写入远端,再在沙箱内 base64 -d 还原,可以避免一切转义与换行被吞的问题。
2. 命令执行走沙箱提供的一次性执行接口(exec 一条命令、返回 stdout/stderr),比开交互式终端更容易自动化,也便于把部署过程写成可重放的脚本。
3. 作品提交必须在沙箱内使用 AK/SK 完成,网页控制台上的提交入口是点不动的——这是最容易卡住新人的地方。凭据通过环境变量注入,不要把 AK/SK 写进仓库。
如果提示资源不足,去开发者空间把沙箱切换成「持久化版」,或者换一个持久化规格重新创建,通常就能开机成功。持久化版按核时计费,初始赠送的免费额度足够做完这类小作品。
四、ECS 持久化部署阶段
ECS 侧的目标是:把作品变成一个公网可访问、且关机重启后仍然在跑的服务。整体三步:
# 1. 安装并启动 nginx
dnf install -y nginx
mkdir -p /usr/share/nginx/html/hc-activity
# 2. 投放作品(base64 传输,避免转义问题)
base64 -d > /usr/share/nginx/html/hc-activity/index.html <<B64
<index.html 的 base64>
B64
chmod 644 /usr/share/nginx/html/hc-activity/index.html
# 3. 开机自启
systemctl enable --now nginx
systemctl is-active nginx
需要注意的几件事:
· 安全组必须放行 80/443 入方向,否则本地 curl 永远超时,很容易误判成 nginx 没起来;
· SELinux 环境下 nginx 读取非默认目录可能 403,chcon -Rt httpd_sys_content_t 或直接放到默认 web 根目录更省事;
· 把整套操作写成 setup.sh 一次性执行并落日志(exec > /var/log/setup.log 2>&1),失败时能直接看到卡在哪一步;
· 验证要同时看进程、端口、公网 HTTP 状态码三层:systemctl is-active nginx → ss -lntp | grep :80 → curl -I http://<EIP>/hc-activity/。
五、小结
这条链路本身没有难度,难点全在「平台把哪条路给你走」:沙箱内提交、持久化规格切换、安全组放行,这三点想清楚了,一个静态作品十分钟就能从本地推到公网可访问。积分方面,两个任务合计 3000 分,可在成长中心兑换代金券,用于续费同账号下的按量或包周期资源。
- 点赞
- 收藏
- 关注作者
评论(0)