华为云「开放能力闯关」2048 通关实录:从 403 卡死到两关通过
背景
华为云「开放能力线上闯关挑战」要求做一个 2048 网页并部署,沙箱关 1000 分、ECS 关 2000 分。我按官方流程走,卡了两个地方,每个都花了半小时以上,记下来给后面的人省点时间。
坑一:提交接口打到了测试环境
活动页前端调用的提交接口是 opentest-dataset.huaweicloud.com,这个域名下提交会稳定返回:
HTTP 403
{"code":"DOMAIN_NOT_WHITELISTED","message":"当前账号无提交权限"}
容易误判成"账号没资格"。判断方法:先 GET /api/v1/hdopenservice/user/userinfo,如果能返回 domain_id,说明登录态没问题;此时再报这个错,基本就是环境问题而不是账号问题。换成生产域名 open-dataset.huaweicloud.com 后,同一个会话提交立刻变 200。
坑二:隐式隧道没有开匿名访问
devbridge host -p 8080 会自动建一条隧道,但那种隐式创建的端口默认不允许匿名访问。表现出来是:curl 能拿到 200,浏览器打开却被网关插一个「安全警告」中转页,后台校验作品链接时抓到的是中转页,于是判「作品链接无效」。
正确姿势是显式三步,第二步的 -a 不能省:
devbridge create 2048hw -d "华为云闯关2048" -e 720
devbridge port create <tunnel-id> -p 18080 --protocol http -a
devbridge host <tunnel-id> -p 18080
验证时不要只看状态码,要确认响应里没有 bridge_phishing_protection 这类中转页脚本,标题确实是自己的页面标题。
两个关卡的提交字段不一样
沙箱关填 work_link,ECS 关填 api_link,而且 ECS 关的路径必须带 /hc-activity/,比如 https://<id>-<port>.devbridge-s2.hwtunnel.com/hc-activity/index.html。所以部署时把页面在两个路径各放一份最省事。
进度面板不要当真
活动页的「闯关进度」在提交成功后仍会显示 0/3,这是面板的显示问题。以成长中心的「完成沙箱部署 / 完成ECS部署」任务卡片为准,结算是异步的,几分钟到十几分钟不等,别重复提交。
结果
两关都返回「作品提交成功」,成长中心两个任务卡片变为「已完成」,3000 积分到账。全程没有开公网端口、没有改安全组、也没有创建 ECS,隧道方案足够通过校验。
- 点赞
- 收藏
- 关注作者
评论(0)