View a markdown version of this page

Debug 亚马逊 GameLift 服务器 舰队问题 - 亚马逊 GameLift 服务器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Debug 亚马逊 GameLift 服务器 舰队问题

本主题提供了有关如何解决 Amazon GameLift Servers 托管式 EC2 实例集问题的指导。

实例集创建问题

当您创建托管式 EC2 实例集时,Amazon GameLift Servers 服务会启动一个工作流程,用于创建实例集,部署安装了游戏服务器生成包的 EC2 实例,以及在每个实例上启动游戏服务器进程。有关详细说明,请参阅。实例集在进入活动状态之前无法托管游戏会话和玩家。

您可以通过确定出现问题的实例集创建阶段并查看实例集创建事件和日志,来调试阻止实例集激活的问题。如果日志未提供有用信息,则问题可能是由内部服务错误造成的。在这种情况下,请再次尝试创建实例集。如果问题仍然存在,请尝试重新上传游戏版本以解决可能的文件损坏问题。您还可以联系 Amazon GameLift Servers 支持或在论坛上发布问题。

下载和验证生成包

在此阶段,Amazon GameLift Servers 会获取您上传的游戏服务器生成包,提取文件并运行所有安装脚本。如果实例集创建在这些阶段失败,请查看实例集事件和日志以查明问题。可能的原因包括:

  • Amazon GameLift Servers 无法获取压缩的生成包文件(事件 FLEET_BINARY_DOWNLOAD_FAILED)。验证是否可以访问该版本的存储位置,您正在创建与构建版本 Amazon Web Services 区域 相同的队列,并且该队列Amazon GameLift Servers具有正确的访问权限。

  • Amazon GameLift Servers 无法提取生成包文件(事件 FLEET_CREATION_EXTRACTING_BUILD)。

  • 生成包文件中的安装脚本未能成功完成(事件 FLEET_CREATION_FAILED_INSTALLER)。

构建实例集资源

此阶段的问题通常涉及实例集资源的分配和部署。可能的原因包括:

  • 请求的实例类型不可用。

  • 请求的舰队类型(Spot 或 On-Demand)不可用。

激活游戏服务器进程

在此阶段,Amazon GameLift Servers 会尝试执行大量任务和测试关键元素,包括游戏服务器的可行性、运行时配置设置以及游戏服务器使用服务器 SDK 与 Amazon GameLift Servers 服务连接的能力。

注意

在此阶段,您可以远程访问实例集实例以进一步调查问题。请参阅连接到队列实例。

可能的问题包括:

  • 服务器进程未开始运行。这表明实例集的运行时配置设置有问题(事件 FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND 或 FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE)。请验证您是否正确设置了启动路径和可选启动参数。

  • 服务器进程开始运行,但实例集无法激活。如果服务器进程启动并成功运行,但实例集未变为活动状态,可能的原因是服务器进程无法与 Amazon GameLift Servers 服务通信。请验证您的游戏服务器是否正在进行以下正确的服务器 SDK 调用(请参阅初始化服务器进程):

    • 服务器进程无法初始化(事件 SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT)。服务器进程调用 InitSdk() 失败。

    • 服务器进程在准备好托管游戏会话时无法通知 Amazon GameLift Servers(事件 SERVER_PROCESS_PROCESS_READY_TIMEOUT)。服务器进程已初始化,但没有及时调用 ProcessReady()。

  • VPC 对等连接请求失败。对于使用 VPC 对等连接创建的队列(参见使用新实例集设置 VPC 对等连接),VPC 对等互连将在此激活阶段完成。如果 VPC 对等连接由于任何原因失败,新实例集将无法转入激活状态。通过调用 describe-vpc-peering-connections,您可以跟踪对等请求的成功或失败。请务必检查存在有效的 VPC 对等连接授权 (describe-vpc-peering-authorizations,因为授权仅在 24 小时内有效。

服务器进程问题

服务器进程启动但快速失败或者报告运行状况不佳。

不同于游戏构建中的问题,同时在实例上尝试运行了过多服务器进程时可能会发生这种情况。并发进程的最佳数目取决于实例类型和您的游戏服务器的资源要求。请尝试减少并发进程数量,该值在实例集的运行时配置中设置,以查看性能是否有所改进。您可以使用Amazon GameLift Servers控制台(编辑舰队的容量分配设置)或调用 update-runtime- configuration Amazon CLI 命令来更改队列的运行时配置。

实例集删除问题

由于最大实例计数而无法终止实例集。

错误消息指示正在删除的实例集仍有活动的实例,这种情况是不允许的。您必须首先将实例集缩减到零个活动实例。要执行此操作,可以手动将实例集所需的实例计数设置为“0”,然后等待缩减生效。请务必关闭自动扩缩,否则会抵消手动设置。

VPC 操作未获授权。

此问题仅适用于您专门为其创建 VPC 对等连接的队列(参见为设置 VPC 对等互连 亚马逊 GameLift 服务器)。出现这种场景是因为删除队组的过程还包括删除队组的 VPC 以及所有 VPC 对等连接。必须先通过调用 Amazon GameLift Servers CreateVpcPeeringAuthorization () 的服务 API 或使用 Amazon CLI 命令来获得授权create-vpc-peering-authorization。获得授权之后,您就可以删除该实例集。