使用 Amazon GameLift 代理 - Amazon GameLift

使用 Amazon GameLift 代理

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

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

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

  • 使用 RegisterCompute API 向 Amazon GameLift Anywhere 实例集注册计算。

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

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

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

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

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

关于该代理

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

进程管理

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

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

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

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

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

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

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

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

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

计算管理

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

  • 提示由 Amazon GameLift 终止计算。

日志记录

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