功能定位:把练习代码直接变成生产服务
HelloWorld 的「一键打包并部署到服务器」藏在「生产化」按钮里,核心是把浏览器沙箱里的代码走静态安全扫描→生成镜像/Serverless 包→推送到你绑定的云账户。它解决的是「写完即走」的最后一公里,而同类教育平台通常止步于通过测试。
2026.5.0 版本后,入口被提到顶部工具栏,Desktop 与 Web 端路径统一,不再藏在右侧 … 菜单,减少新手漏看。功能分三档:①Docker 镜像 ②Serverless 压缩包 ③GitHub Actions 流水线文件;选择后均可再配「自动启停」与「成本上限」,默认单项目月度 CPU 额度 20 vCore·h,超出即停服并邮件提醒,防止学生一夜跑空钱包。
版本差异与迁移建议
2025 旧版把「Deploy」放在「Share」子 tab,且无成本阈值;若你在旧项目里曾点过,升级后会被自动迁移为「无上限」模式,需要手动补配额。迁移路径:打开项目 → 顶部 Deploy → Settings → Cost Guard → 填写月度上限 → Save。建议所有旧项目统一补录,避免默认无封顶。
WebAssembly 运行层在 2026.5.0 后换成 WAMR-2.3,冷启动进一步压到亚秒级,但镜像体积比 2025 增加约 15%,对按流量计费的对象存储影响明显。若你部署到边缘节点,建议开启「压缩层」选项(额外耗时数十秒,可节省约 10% 存储费)。
前置条件与账号授权
1. 云账号绑定
目前官方已对接 AWS、阿里云、Azure 与华为云,均通过 OIDC 角色委托,最小权限模板仅含 ecs:RunInstances、lambda:CreateFunction 等 6 项写操作,不会索要 AK/SK。路径:右上角头像 → Cloud Providers → Add → 扫码或跳转云控制台创建委托 → 回到 HelloWorld 选角色 ARN → Done。
2. 域名与证书
若需要 HTTPS,需提前在云侧托管证书;HelloWorld 暂不支持自动生成泛域名证书。Serverless 模式会分配一个随机子域名(*.hw-cdn.net),仅供演示,正式对外请 CNAME 到自备域名。
操作路径(分平台)
Web 端
- 打开项目 → 顶部工具栏 Deploy → 选择目标「Docker|Serverless|GitHub Actions」。
- 填写服务名(全局唯一)、端口(默认 8080)、实例规格(CPU 0.5-4 vCore)。
- 打开「Cost Guard」→ 设定月度 vCore·h 上限 → 下一步。
- 选择云区域 → 点击「Build & Deploy」→ 实时日志窗口弹出,数十秒后返回访问 URL。
Desktop 端(macOS/Windows)
与 Web 端完全一致,入口也在顶部栏;区别是构建日志默认写入本地 ~/HelloWorld/logs/deploy/,断网后可离线查看。若构建失败,可点击「Retry with Debug」自动打开本地 Docker Desktop,方便进阶用户手动排障。
移动端(iOS/Android)
仅支持「Serverless 包」模式,因移动网络上传镜像易中断。路径:右上角 ⋯ → Deploy → Serverless → 选区与规格 → Confirm。构建完成后会复制 URL 到剪贴板并弹出分享面板,方便直接贴到社交 App。
例外与取舍:什么时候不该一键部署
①含敏感信息:沙箱内 .env 文件默认被排除,但历史提交仍可在 Git 记录里看到,若曾 push 公开仓库,请先在云侧仓库清理后再部署。②需要固定出口 IP:Serverless 模式使用动态出口池,不适合对接白名单型数据库;请改用 Docker 镜像并绑定弹性公网 IP。③高并发长连接:WebSocket 默认 60 秒无活动即回收,经验性观察超过 500 并发时冷启动延迟明显,应切到 ECS 常驻方案。
成本模型与测量方法
| 规格 | 计费项 | 参考价(AWS 美东) | 测量方法 |
|---|---|---|---|
| Serverless 0.5 vCore | 调用次数+GB-秒 | 约 $0.20/万次 | 云监控 Dashboard → Lambda → Duration*Memory |
| Docker 1 vCore | 按秒计费 | 约 $0.05/小时 | ECS → Service → CPUUtilization |
| 出口流量 | 统一层 | $0.09/GB | CloudWatch → VPC flow logs |
建议首次上线前用「压测 5 分钟+观察账单」方式估算:在 HelloWorld 日志面板勾选「Generate Locust File」→ 本地 pip install locust → locust -f load.py -u 100 -r 10 -t 5m → 结束后到云账单控制台查看实际扣费,再反推月度预算。
故障排查:构建失败/无法访问
现象:日志停在「docker buildx failed」
原因:本地缓存镜像层损坏。处置:Desktop 端打开 Docker Desktop → Clean/Purge data → 回 HelloWorld 点「Retry」。
现象:部署成功但 URL 报 502
原因:监听端口与容器内不一致。检查代码 app.listen() 是否绑定 0.0.0.0,且端口要与部署表单一致;修改后重新 Deploy 即可,无需重建镜像。
现象:Cost Guard 误杀
收到「Quota Exhausted」邮件但监控显示未超。原因:时区对齐差异。HelloWorld 按 UTC 计算,云侧账单按本地时区。处置:把额度提高 10% 冗余或把云账单周期改成 UTC。
与第三方协同:最小权限原则
若你把生成的 GitHub Actions 文件放到私有仓库,并启用 OIDC 对接云,建议把 Workflow 权限设为只读,仅在 deploy job 使用 permissions: id-token: write,避免被盗用触发高资源任务。官方模板已默认加 timeout-minutes: 15,防止无限循环账单。
适用/不适用场景清单
- ✅ 高校演示站:日活 <1k,无状态,自动启停省费。
- ✅ 开源 Demo:README 一键体验,用完即毁。
- ✅ 内部测试:白名单+IP 限制,生命周期 1-2 周。
- ❌ 金融交易:需要固定审计日志与合规存储,Serverless 无法满足。
- ❌ 大型数据库中间层:连接池需常驻,冷启动导致超时。
- ❌ 强依赖本地 GPU:HelloWorld 沙箱 GPU 仅供算法竞技,生产化尚未开放。
最佳实践 6 条
- 永远打开 Cost Guard,额度设预期 120%。
- 对外服务先绑定自定义域名,再开 CDN,避免直接暴露随机子域。
- 把核心配置放云侧参数仓库,沙箱内只保留占位符,防止密钥入镜像。
- 上线前跑 5 分钟压测+查看账单,确认单价可接受。
- 每季度检查云委托权限,及时清理过期角色。
- Desktop 构建失败优先清本地缓存,比调代码更快。
提示:HelloWorld 官方在 2026.5 博客中确认,后续将保持「一键部署」入口不变,但计划把 Cost Guard 默认额度下调到 10 vCore·h 以进一步降低新手意外账单风险;老项目不受影响,可手动调回。
FAQ
一键部署支持哪些语言?
所有沙箱已预装的 40+ 语言均支持,包括 Python、Go、Rust、Zig 等;只需保证代码能在沙箱运行即可打包。
构建失败会收费吗?
Serverless 模式构建在 HelloWorld 托管集群,失败不产生云资源费用;Docker 模式若已拉起 ECS 实例会按秒计费,建议及时删除。
能否回滚到旧版本?
Serverless 支持在控制台一键回滚最近 5 次;Docker 镜像需手动在 ECS 控制台选旧标签;建议同时打开「保留最近 3 镜像」防止误删。
收尾:下一步行动清单
看完若手边有现成 HelloWorld 项目,可立即点「Deploy」走一遍 Serverless 模式,设 10 vCore·h 额度,用 Locust 压测 5 分钟,再到云账单确认单价。确认无误后,再把域名接进来并打开 CDN,即可对外提供低成本的「写完即上线」体验。若项目需要常驻或强状态,请切换到 Docker 镜像并绑定弹性 IP,同时把 Cost Guard 调到预期 120%,就能在可控成本内长期运行。




