使用 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 代理
关于该代理
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 存储桶。