应用与版本
了解版本管理和应用——用于更深入理解的概念与最佳实践。
📦 应用
应用封装了服务器项目。这种上下文分离在以下情况下尤其有用:
同时开发多个游戏或非游戏项目(合并计费),
作为联合开发者参与外部项目(之后转移所有权),
依赖多个松耦合的服务器类型,且它们具有不同的扩展模式或需求。
你可以使用我们的插件在 Edgegap 上管理你的应用, 控制面板,或使用我们的 API。
🏷️ 应用版本
随着你开发应用并持续产出新构建,你需要将每个构建作为单独的版本存储,以便:
保持兼容性 ,在客户端和服务器之间,
比较你的 增量发布 的各个方面(性能、用户反馈),
测试 多个应用版本同时运行 (开发、质量保证、预发布、Beta)。
你可以使用我们的方式在 Edgegap 上管理你的应用版本 控制面板,或使用我们的 API。
查看我们的 应用版本 API 参考,或进一步阅读 API.
每个版本在其父应用中都通过以下方式唯一标识: 应用版本名称。你可以自由决定自己的命名规范。以下是一些流行示例,供你参考:
2024.01.30-16.23.00-UTC- 时间戳便于保留大量历史版本,1.1.0- 语义化版本 是传达变更范围的绝佳选择,开发,预发布,测试,生产- 每个环境只保留最新版本会非常容易,蓝色,绿色- 版本可以作为别名,用于滚动更新发布策略。
只要你保持客户端/服务器兼容性,就可以随时更改你的方法。
组合版本管理策略
通常,最佳方案是混合使用多种版本管理策略,例如:
对开发构建使用时间戳或语义化版本,以便更细粒度地跟踪;
保留
预发布,测试和生产带有环境特定参数的版本;交替使用
蓝色和绿色版本作为 零匹配停机更新.
🧱 必填参数
这些基础参数必须始终定义。
资源需求
除了 版本名称之外,创建新版本还需要以下几个参数:
vCPU - 你的应用运行所需的虚拟 CPU 单元数(1024 单元 = 1 vCPU),
最低允许的 vCPU 数量是 0.25 vCPU(256 单元),
内存 - 你的应用运行所需的 RAM 兆字节数(1024MB = 1GB),
GPU - 你的应用运行所需的图形处理单元数量,
该功能尚未提供,如果你感兴趣,请联系我们。
版本会自动按 2:1 的 RAM-vCPU 比例包含内存, 在 0.25 vCPU 下提供 512MB RAM.
镜像详情
这些参数将帮助我们的系统决定稍后应启动哪个服务器构建:
镜像仓库 -
registry.edgegap.com如果你使用我们的 容器镜像仓库,,若要使用第三方镜像仓库,请输入第三方镜像仓库的 Docker 凭证,
该仓库作为你和其他用户仓库的共享存储服务。
镜像仓库 - 指你的应用专属仓库,
你可以在我们的 控制面板的容器镜像仓库页面中找到所有仓库,
每个仓库可能包含你服务器镜像的多个标签。
标签 - 指你服务器镜像的某个特定构建产物(版本),
默认情况下,我们的插件会将标签值从应用版本名称中复制过来,
你可以在 Docker Desktop 的 Images 中或使用 docker CLI 查看本地存储的标签。
❌ 不要——覆盖现有标签或使用 latest 标签 ,以避免部署过时的构建。
✅ 要——始终递增你的版本标签 并部署新构建,避免使用过期缓存。
私有镜像仓库 - 如果你的仓库访问受保护(私有仓库),我们还需要:
用户名令牌 - 你的镜像仓库程序化访问用户名,
密码令牌 - 你的镜像仓库程序化访问密码,
用于 Edgegap 容器镜像仓库,你可以 从我们的控制面板复制这些值,
这些对于公共仓库不是必需的。
⚙️ 可选参数
这些参数可以配置,用于进一步自定义你的部署。
注入变量
此版本的所有部署都会注入自定义环境变量:
常见示例包括:引擎参数、第三方密钥和端点,
参见 注入变量 ,以了解根据部署上下文可注入环境变量的不同方式,除此之外还有应用版本变量,
每个环境变量最多可包含 4KB(千字节)的字符串数据。
请务必 将你的敏感变量(密钥、令牌)设为隐藏 以增强安全性!
主动缓存
🌟 升级到按需付费套餐 即可解锁全球 0.5 秒部署时间!
加快部署速度,并在几秒内启动服务器,无需待机服务器。 与此应用版本关联的服务器镜像将自动预加载到我们全球所有位置。
当你的应用版本缓存等级达到 🟢 良好 时,缓存才会完全生效。
多个应用版本可以复用同一个镜像标签。 为某个版本启用缓存后,自动为所有链接到同一镜像标签的版本启用缓存,使参数化部署变得轻而易举。
如果镜像连续 72 小时未部署,它们将从缓存中移除。
端口映射
每个服务器至少需要一个端口,以接受来自客户端的传入连接:
端口 值指的是 内部端口 值,通常来自你的 netcode 集成,
协议 将取决于你的 netcode 集成传输层,
名称 是你自己需要的人类可读标识符,可以与端口相同,
验证 可以启用,以确保容器在被标记为 READY 之前已初始化。
大多数游戏只需要为端口添加一个 UDP 端口映射 7777.
尽管服务器进程的内部端口是在应用版本中定义的, 外部端口会在创建部署时随机分配,从而使潜在的恶意方(黑客)在造成损害之前被拖慢并被检测到。

安全防护措施
这些参数有助于处理各种边缘情况和常见服务器故障排查:
时间限制 - 这些功能可以帮助你管理部署的资源生命周期:
游戏最长时长 可以设置为在给定时间后优雅关闭服务器,或者设置为
-1配合 应用版本 API 创建/编辑 用于 持久化 配合 私有舰队.最大部署时间 可以帮助你清理启动时间过长的部署。
进程重启策略 - 控制服务器进程停止时的部署行为。
始终重启(默认)- 在成功退出代码(0)以及任何错误退出时都会重启。
从不重启(推荐)- 成功和错误退出代码都会停止部署。
崩溃时重启 - 仅在错误退出代码时重启,适用于持久化服务器。
日志存储
要在部署停止后导出服务器日志,请配置 端点存储 使用 S3 存储桶。
未使用外部存储的版本日志会在部署终止时被删除。
⏩ 更新一致性
为了确保通过我们的 控制面板创建新的应用版本时不会更改任何参数,我们建议使用 复制 功能,位于你上一个应用版本控制面板页面的右上角。复制时,你可以在保存前编辑任何参数。
复制或编辑你的应用版本不需要重新构建服务器镜像。
最后更新于
这有帮助吗?

