创建托管队列 - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

创建托管队列

使用GameLift 控制台或Amazon Command Line Interface (Amazon CLI) 创建托管舰队。

创建新的托管 EC2 队列后,队列的状态会经历几个阶段,即 GameLift 部署队列以及安装和启动游戏服务器。舰队进入ACTIVE状态后,已准备好主持游戏会话。有关队组创建问题的帮助,请参阅调试 GameLift 舰队问题

Console
创建托管的 EC2 队列
  1. GameLift 控制台的导航窗格中,选择 Fleets

  2. Fleets (机群)页面上,选择Create fleet (创建机群)

  3. 选择托管 EC2

  4. 舰队详细信息页面上,执行以下操作:

    1. 名称中,输入舰队名称。我们建议在您的舰队名称中包含舰队类型(Spot 或按需)。这使得在查看舰队列表时更容易识别舰队类型。

    2. 对于描述,请提供舰队的简短描述。

    3. 对于二进制类型,选择 “构建” 或 “脚本” 以定义 GameLift 部署到该舰队的游戏服务器类型。

    4. 从上传的脚本版本的下拉列表中选择脚本或构建。

  5. (可选)在 “其他详细信息” 下查看以下内容:

    1. 对于实例角色,选择要与此队列关联的 IAM 角色。这允许队列中的实例担任所选角色,从而提供对角色中定义的Amazon服务的访问权限。有关使用Amazon服务的舰队的更多信息,请参阅与舰队中的其他Amazon资源通信。要使用实例角色创建队列,您的账户必须拥有 IAMPassRole 权限。有关更多信息,请参阅I GameLift

      创建队列后,您无法更新实例角色。

    2. 对于指标组,输入新的或现有的舰队指标组的名称。您可以通过将多个队列(多个队列)添加到同一实例集上来聚合这些指标。

      创建舰队后,您无法更新指标组。

  6. 选择 Next(下一步)

  7. 选择位置页面上,选择一个或多个其他远程位置来部署实例。系统会根据您访问控制台的区域自动选择主区域。如果您选择其他位置,则队列实例也会部署在这些位置。

    重要

    要使用默认情况下未启用的区域,请在您的区域中启用Amazon Web Services 账户。

    • 在 2022 年 2 月 28 日之前创建的具有未启用区域的舰队不受影响。

    • 要创建新的多地点队列或更新现有的多地点队列,请先启用您选择使用的任何区域。

    有关默认情况下未启用的区域以及如何启用它们的更多信息,请参阅Amazon一般参考Amazon Web Services 区域中的管理

  8. 选择 Next(下一步)

  9. 定义实例详细信息页面上,为该队列选择按需实例或竞价实例。有关队列(机群类型的更多信息),请参阅按需实例与 Spot 实例的比较

  10. 从列表中选择一个 Amazon EC2 实例类型。有关选择实例类型的更多信息,请参阅实例类型。创建队列,便无法再更改实例类型。

  11. 选择 Next(下一步)

  12. 在 “配置运行时” 页面上,在 “运行时配置” 下执行以下操作:

    1. 启动路径中,输入构建或脚本中游戏可执行文件的路径。在 Windows 实例上,游戏服务器生成到路径 C:\game。在 Linux 实例上,游戏服务器的构建目标是/local/game。示例:C:\game\MyGame\server.exe/local/game/MyGame/server.exe、或MyRealtimeLaunchScript.js

    2. (可选)对于 Launch 参数,输入要作为一组命令行参数传递给游戏可执行文件的信息。示例:+sv_port 33435 +start_lobby

    3. 对于并发进程,选择要在队列中的每个实例上同时运行的服务器进程数。查看并发服务器进程数的 GameLift 限制

      对每个实例的并发服务器进程数的限制应用到所有配置的并发进程总数上。如果您将队列配置为超过限制,则队列无法激活。

  13. 激活游戏会话下,提供在此舰队实例上激活新游戏会话的限制:

    1. 对于最大并发游戏会话激活次数,请输入实例上同时激活的游戏会话数。当启动多个新的游戏会话可能会对在实例上运行的其他游戏会话造成性能影响时,此限制非常有用。

    2. 对于新激活超时,输入等待会话激活的时间。如果游戏会话在超时之前未进入ACTIVE状态,则 GameLift 终止游戏会话激活。

  14. (可选)在 EC2 端口设置下,执行以下操作:

    1. 选择添加端口设置,为连接到队列上部署的服务器进程的入站流量定义访问权限。

    2. 对于类型,选择自定义 TCP自定义 UDP

    3. 对于端口范围,输入允许入站连接的端口号范围。端口范围必须使用格式 nnnnn[-nnnnn],值介于 1025 和 60000 之间。示例:15001500-20000

    4. 对于 IP 地址范围,输入 IP 地址的范围。使用 CIDR 表示法。示例:0.0.0.0/0(此示例允许尝试连接的任何人的访问。)

  15. (可选)在游戏会话资源设置下:

    1. 对于游戏扩展保护策略,开启或关闭扩展保护。 GameLift 如果他们正在主持活跃的游戏会话,则在缩小规模活动期间不会在保护的情况下终止实例。

    2. 于 Aional(玩家可以在策略期限内创建的最大游戏会话数的设置)。

  16. 选择 Next(下一步)

  17. (可选)通过输入对向编译版本添加标签。选择 “下一步” 继续查看舰队创建情况。

  18. 选择 “创建”。 GameLift 为新舰队分配 ID 并开始舰队激活流程。您可以在 Fleets (队组) 页面上跟踪新队组的状态。

无论舰队状态如何,您都可以随时更新舰队的元数据和配置。有关更多信息,请参阅管理您的 GameLift 舰队:在舰队达到活动状态后,您可以更新舰队容量。有关更多信息,请参阅扩展 GameLift 托管容量:您还可以添加或删除远程位置。

Amazon CLI

要使用创建舰队Amazon CLI,请打开命令行窗口并使用create-fleet命令。有关该create-fleet命令的更多信息,请参阅create-fleetAmazon CLI命令参考中的

下面显示的示例 create-fleet 请求将创建一个具有以下特征的新队组:

  • 舰队使用 c5.large 按需实例以及适用于所选游戏版本的操作系统。

  • 它将指定的游戏服务器版本部署到以下位置,该版本必须处于 “就绪” 状态:

    • us-west-2(主区域)

    • sa-east-1(远程位置)

  • 该队组中的每个实例将并发运行十个相同的游戏服务器进程,从而使每个实例能够同时托管多达 10 个游戏会话。

  • 在每个实例上, GameLift 允许同时激活两个新游戏会话。如果玩家尚未准备好在 300 秒内接待玩家,它还会终止任何正在激活的游戏会话。

  • 在该队组中的实例上托管的所有游戏会话将会开启游戏会话保护。

  • 单个玩家可以在 15 分钟内创建三个新的游戏会话。

  • 该舰队上托管的每个游戏会话都有一个位于指定的 IP 地址和端口范围内的连接点。

  • GameLift 将此舰队的指标添加到EMEAfleets指标组,该指标组(在本示例中)合并了 EMEA 地区所有舰队的指标。

aws gamelift create-fleet \ --name SampleFleet123 \ --description "The sample test fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-92f061ed-27c9-4a02-b1f4-6f85b2385620 \ --certificate-configuration "CertificateType=GENERATED" \ --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, Parameters=+sv_port 33435 +start_lobby, ConcurrentExecutions=10}]" \ --new-game-session-protection-policy "FullProtection" \ --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP" "FromPort=33235,ToPort=33235,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "EMEAfleets"

如果 create-fleet 请求成功,则 GameLift 返回一组舰队属性,其中包括您请求的配置设置和新的舰队 ID。 GameLift 然后启动舰队激活流程并将舰队状态和位置状态设置为 “”。您可以使用以下 CLI 命令跟踪队组的状态并查看其他队组信息:

您可以使用以下命令,根据需要更改队组的容量和其他配置设置: