For the complete documentation index, see llms.txt. This page is also available as Markdown.

应用与版本

了解版本管理和应用——用于更深入理解的概念与最佳实践。

📦 应用

应用封装了服务器项目。这种上下文分离在以下情况下尤其有用:

  • 同时开发多个游戏或非游戏项目(合并计费),

  • 作为联合开发者参与外部项目(之后转移所有权),

  • 依赖多个松耦合的服务器类型,且它们具有不同的扩展模式或需求。

你可以使用我们的插件在 Edgegap 上管理你的应用, 控制面板,或使用我们的 API。

🏷️ 应用版本

随着你开发应用并持续产出新构建,你需要将每个构建作为单独的版本存储,以便:

  • 保持兼容性 ,在客户端和服务器之间,

  • 比较你的 增量发布 的各个方面(性能、用户反馈),

  • 测试 多个应用版本同时运行 (开发、质量保证、预发布、Beta)。

每个应用版本都指向你选择的一个构建产物。多个版本可以指向同一个构建。

你可以使用我们的方式在 Edgegap 上管理你的应用版本 控制面板,或使用我们的 API。

每个版本在其父应用中都通过以下方式唯一标识: 应用版本名称。你可以自由决定自己的命名规范。以下是一些流行示例,供你参考:

  • 2024.01.30-16.23.00-UTC - 时间戳便于保留大量历史版本,

  • 1.1.0 - 语义化版本 是传达变更范围的绝佳选择,

  • 开发 , 预发布, 测试, 生产 - 每个环境只保留最新版本会非常容易,

  • 蓝色, 绿色 - 版本可以作为别名,用于滚动更新发布策略。

你可以在我们的 控制面板禁用任何应用或版本,以.

免费层限制为 2 个应用、2 个版本以及 5 GB 的容器镜像仓库存储空间。

组合版本管理策略

通常,最佳方案是混合使用多种版本管理策略,例如:

  • 对开发构建使用时间戳或语义化版本,以便更细粒度地跟踪;

  • 保留 预发布, 测试生产 带有环境特定参数的版本;

  • 交替使用 蓝色绿色 版本作为 零匹配停机更新.

🧱 必填参数

这些基础参数必须始终定义。

资源需求

除了 版本名称之外,创建新版本还需要以下几个参数:

  • vCPU - 你的应用运行所需的虚拟 CPU 单元数(1024 单元 = 1 vCPU),

    • 最低允许的 vCPU 数量是 0.25 vCPU(256 单元),

每次部署需要少于 0.25 vCPU? 联系我们,了解优化方案。

  • 内存 - 你的应用运行所需的 RAM 兆字节数(1024MB = 1GB),

  • GPU - 你的应用运行所需的图形处理单元数量,

    • 该功能尚未提供,如果你感兴趣,请联系我们。

我们的服务器机器使用 AMD/Intel CPU,时钟速度为 2.4 - 3.2 GHz,具体取决于位置。为确保你的服务器有足够的可用资源,请在以下渠道联系我们: 社区 Discord.

镜像详情

这些参数将帮助我们的系统决定稍后应启动哪个服务器构建:

  • 镜像仓库 - registry.edgegap.com 如果你使用我们的 容器镜像仓库,

    • ,若要使用第三方镜像仓库,请输入第三方镜像仓库的 Docker 凭证,

    • 该仓库作为你和其他用户仓库的共享存储服务。

  • 镜像仓库 - 指你的应用专属仓库,

  • 标签 - 指你服务器镜像的某个特定构建产物(版本),

    • 默认情况下,我们的插件会将标签值从应用版本名称中复制过来,

    • 你可以在 Docker Desktop 的 Images 中或使用 docker CLI 查看本地存储的标签。

  • 私有镜像仓库 - 如果你的仓库访问受保护(私有仓库),我们还需要:

故障排查与常见问题

我收到了错误 401 未授权 ,在推送服务器镜像时。

  • 这表示你尚未登录到你的容器镜像仓库。有关说明,请参见容器镜像仓库: Edgegap 容器镜像仓库说明,或你的镜像仓库提供商的对应说明。重复上一次操作不会解决该错误。


我收到了错误 403 禁止访问 ,在推送服务器镜像时。

  • 这表示你当前登录的镜像仓库用户没有足够的权限(通常是推送新镜像的权限),或者你登录到了错误的镜像仓库提供商。请尝试退出登录,并使用具有足够权限的正确提供商和用户重新登录。重复上一次操作不会解决该错误。


镜像仓库、仓库和项目有什么区别?

  • 可以把镜像仓库看作存储设施,把仓库看作储物单元,把项目看作储物单元编号。每个镜像仓库通常包含许多仓库,有些是公开的,有些则对组织和用户私有。

  • 示例镜像仓库: registry.edgegap.com .

  • 示例仓库: registry.edgegap.com/my-edgegap-org/my-game-server.

  • 示例项目名称: my-game-server .


在推送新的镜像标签/构建时,我的更改没有正确重新加载。

  • 请确保每次重新构建时,都使用新的镜像标签推送。Edgegap 的内部缓存系统使用标签名称,如果你覆盖某个标签值(例如 latest),它将不会识别新的构建。


我可以给同一个构建产物打上多个标签吗?

  • 可以,你可以无障碍地为同一个构建产物打上多个标签,将其作为同一构建的多个别名。继续阅读,了解之后如何移除这些标签。


删除一个标签时会发生什么?为什么我不能使用哈希删除某个特定构建产物?

  • 你必须删除与特定构建产物关联的所有标签,才能释放镜像仓库中的空间。

  • 由于 Docker API 标准以及为了确保最佳用户体验,我们只提供删除标签的界面。有关删除构建产物,请参见上文。

⚙️ 可选参数

这些参数可以配置,用于进一步自定义你的部署。

注入变量

此版本的所有部署都会注入自定义环境变量:

  • 常见示例包括:引擎参数、第三方密钥和端点,

  • 参见 注入变量 ,以了解根据部署上下文可注入环境变量的不同方式,除此之外还有应用版本变量,

  • 每个环境变量最多可包含 4KB(千字节)的字符串数据。

主动缓存

🌟 升级到按需付费套餐 即可解锁全球 0.5 秒部署时间!

加快部署速度,并在几秒内启动服务器,无需待机服务器。 与此应用版本关联的服务器镜像将自动预加载到我们全球所有位置。

当你的应用版本缓存等级达到 🟢 良好 时,缓存才会完全生效。

镜像还会在部署时被被动缓存,但仅缓存于部署所在的主机。

端口映射

每个服务器至少需要一个端口,以接受来自客户端的传入连接:

  • 端口 值指的是 内部端口 值,通常来自你的 netcode 集成,

  • 协议 将取决于你的 netcode 集成传输层,

  • 名称 是你自己需要的人类可读标识符,可以与端口相同,

  • 验证 可以启用,以确保容器在被标记为 READY 之前已初始化。

尽管服务器进程的内部端口是在应用版本中定义的, 外部端口会在创建部署时随机分配,从而使潜在的恶意方(黑客)在造成损害之前被拖慢并被检测到。

如果你的服务器通过多个协议通信,请在端口映射中添加更多端口。

安全防护措施

这些参数有助于处理各种边缘情况和常见服务器故障排查:

  • 时间限制 - 这些功能可以帮助你管理部署的资源生命周期:

  • 进程重启策略 - 控制服务器进程停止时的部署行为。

    • 始终重启(默认)- 在成功退出代码(0)以及任何错误退出时都会重启。

    • 从不重启(推荐)- 成功和错误退出代码都会停止部署。

    • 崩溃时重启 - 仅在错误退出代码时重启,适用于持久化服务器。

免费层限制为 2 个应用、2 个版本以及 5 GB 的容器镜像仓库存储空间。

日志存储

要在部署停止后导出服务器日志,请配置 端点存储 使用 S3 存储桶。

⏩ 更新一致性

为了确保通过我们的 控制面板创建新的应用版本时不会更改任何参数,我们建议使用 复制 功能,位于你上一个应用版本控制面板页面的右上角。复制时,你可以在保存前编辑任何参数。

参见 匹配器滚动更新 以进一步 自动化发布.

最后更新于

这有帮助吗?