使用 Amazon GameLift Servers 代理 - Amazon GameLift Servers
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon GameLift Servers 代理

Amazon GameLift Servers 代理负责监督 Amazon GameLift Servers 实例集上游戏服务器进程的运行。该代理被部署到实例集中的每个计算上,为计算提供自动化进程管理、托管管理和日志记录。要使用该代理,必须将游戏服务器生成包与 Amazon GameLift Servers 服务器 SDK 5.x 或更高版本集成。

Amazon GameLift Servers 代理可从外部提供给不是托管式 EC2 实例集的 Amazon GameLift Servers 实例集使用。(托管式 EC2 实例集会自动处理该代理的任务。) 您可以选择在有或没有该代理的情况下运行 Amazon GameLift Servers 实例集,包括 Anywhere 实例集。如果没有该代理,您必须提供完成所需任务的替代解决方案。

部署到计算时,应在启动任何游戏服务器进程之前启动 Amazon GameLift Servers 代理。启动时,该代理将完成以下任务:

  • 使用 RegisterCompute API 将该计算资源注册到 Amazon GameLift Servers Anywhere 实例集。

  • 调用 GetComputeAuthToken API 以获取授权令牌,并将其存储起来供在计算上运行的服务器进程使用。

  • 为计算设置 WebSocket URL 环境变量,并与 Amazon GameLift Servers 服务建立 WebSocket 连接。

  • 从 Amazon GameLift Servers 服务请求最新版本的实例集的运行时配置。

  • 根据运行时配置说明启动和停止服务器进程。

Amazon GameLift Servers 代理的源代码和生成包说明可在 Amazon GameLift Servers 代理 GitHub 上找到。

关于该代理

Amazon GameLift Servers 代理专为您的实例集处理以下任务:

进程管理

  • 启动运行时指令中定义的新服务器进程。该代理可能使用与其一起部署的自定义运行时配置。或者,您也可以提供 RuntimeConfiguration 作为实例集定义的一部分。此方法的优势在于,您可以随时修改实例集的运行时配置。该代理会定期从 Amazon GameLift Servers 服务请求更新的运行时配置。

  • 监控服务器进程的激活情况,并在进程未及时激活时将其终止。

  • 向 Amazon GameLift Servers 发送心跳。如果该代理未发送心跳,计算可能会被标记为过时。

  • 在服务器进程终止时,向 Amazon GameLift Servers 报告。Amazon GameLift Servers 会使用此信息监控游戏服务器可用性,以便进行游戏会话放置。

  • 为服务器进程发出实例集事件,包括:

    • SERVER_PROCESS_INVALID_PATH:游戏服务器进程启动参数配置不正确。

    • SERVER_PROCESS_TERMINATED_UNHEALTHY:游戏服务器进程在激活后 3 分钟内未报告有效的运行状况检查,因此被终止。

    • SERVER_PROCESS_FORCE_TERMINATED:游戏服务器进程在发送 OnProcessTerminate() 后 30 秒内未完全退出。

    • SERVER_PROCESS_CRASHED:游戏服务器进程因某种原因而崩溃。

计算管理

  • 接收 Amazon GameLift Servers 服务发出的消息以关闭计算。

  • 提示由 Amazon GameLift Servers 终止计算。

日志记录

  • 将日志上传到 Amazon 账户中的 Amazon S3 存储桶。