将实时服务器脚本上传到亚马逊 GameLift - 亚马逊 GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将实时服务器脚本上传到亚马逊 GameLift

当你准备好为游戏部署实时服务器时,将完成的实时服务器脚本文件上传到亚马逊。GameLift为此,创建 Amazon GameLift 脚本资源并指定脚本文件的位置。您还可以通过上传现有脚本资源的新文件来更新已经部署的服务器脚本文件。

当您创建新的脚本资源时,亚马逊会为其GameLift分配一个唯一的脚本 ID(例如script-1111aaaa-22bb-33cc-44dd-5555eeee66ff)并上传脚本文件的副本。上传时间取决于脚本文件的大小和连接速度。

创建脚本资源后,亚马逊会使用新的实时服务器队列GameLift部署脚本。Amazon 将您的服务器脚本GameLift安装到队列中的每个实例上,并将脚本文件放入其中/local/game

要解决与服务器脚本相关的队列激活问题,请参见调试亚马逊GameLift舰队问题

打包脚本文件

您的服务器脚本可以包含一个或多个文件合并为一个.zip 文件进行上传。.zip 文件必须包含脚本运行所需的所有文件。

您可以将压缩的脚本文件存储在本地文件目录或 Amazon 简单存储服务 (Amazon S3) 存储桶中。

从本地目录上传脚本文件

如果您将脚本文件存储在本地,则可以GameLift从那里将其上传到亚马逊。要创建脚本资源,请使用 Amazon GameLift 控制台或 Amazon Command Line Interface(Amazon CLI)

Amazon GameLift console
创建脚本资源
  1. 打开亚马逊GameLift控制台

  2. 在导航窗格中,选择主机脚本

  3. 本页面上,选择创建脚本

  4. 创建脚本页面的脚本设置下,执行以下操作:

    1. 在 “名称” 中,输入脚本名称。

    2. (可选)在版本中,输入版本信息。由于您可以更新脚本的内容,因此版本数据有助于跟踪更新。

    3. 对于脚本源,选择上传.zip 文件

    4. 对于脚本文件选择选择文件,浏览包含脚本的.zip 文件,然后选择该文件。

  5. (可选)在标签下,通过输入对向脚本添加标签。

  6. 选择创建

    亚马逊GameLift为新脚本分配 ID 并上传指定的.zip 文件。您可以在 “脚本” 页面上查看新脚本,包括其状态。

Amazon CLI

使用create-scriptAmazon CLI命令定义新脚本并上传您的服务器脚本文件。

创建脚本资源
  1. 将.zip 文件放入可以使用的目录中。Amazon CLI

  2. 打开命令行窗口并切换到放置.zip 文件的目录。

  3. 输入以下create-script命令和参数。对于--zip-file参数,请务必将字符串fileb://添加到.zip 文件的名称中。它将文件识别为二进制文件,以便亚马逊GameLift处理压缩的内容。

    aws gamelift create-script \ --name user-defined name of script \ --script-version user-defined version info \ --zip-file fileb://name of zip file \ --region region name

    示例

    aws gamelift create-script \ --name "My_Realtime_Server_Script_1" \ --script-version "1.0.0" \ --zip-file fileb://myrealtime_script_1.0.0.zip \ --region us-west-2

    作为对您的请求的响应,亚马逊GameLift返回了新的脚本对象。

  4. 要查看新脚本,请致电describe-script

从亚马逊 S3 上传脚本文件

您可以将脚本文件存储在 Amazon S3 存储桶中,然后GameLift从那里上传到亚马逊。创建脚本时,您可以指定 S3 存储桶位置,然后 Amazon 会从 Amazon S3 GameLift 检索您的脚本文件。

创建脚本资源
  1. 将您的脚本文件存储在 S3 存储桶中。创建一个包含您的服务器脚本文件的.zip 文件,然后将其上传到您控制的 S3 存储桶。Amazon Web Services 账户记下对象 URI ——创建 Amazon GameLift 脚本时需要它。

    注意

    亚马逊GameLift不支持从名称包含句点 (.) 的 S3 存储桶上传。

  2. 允许亚马逊GameLift访问您的脚本文件。要创建允许 Amazon GameLift 访问包含您的服务器脚本的 S3 存储桶的 Amazon Identity and Access Management (IAM) 角色,请按照中的说明进行操作为亚马逊设置 IAM 服务角色GameLift。创建新角色后,记下其名称,这是创建脚本时需要的。

  3. 创建脚本。使用 Amazon GameLift 控制台或创建新的脚本记录。Amazon CLI要发出此请求,您必须拥有 IAM PassRole 权限,如中所述亚马逊 IAM 权限示例 GameLift

Amazon GameLift console
  1. 亚马逊GameLift控制台的导航窗格中,选择主机脚本

  2. 本页面上,选择创建脚本

  3. 创建脚本页面的脚本设置下,执行以下操作:

    1. 在 “名称” 中,输入脚本名称。

    2. (可选)在版本中,输入版本信息。由于您可以更新脚本的内容,因此版本数据有助于跟踪更新。

    3. 对于脚本源,选择亚马逊 S3 URI

    4. 输入您上传到 Amazon S3 的脚本对象的 S3 URI,然后选择对象版本。如果您不记得了 Amazon S3 URI 和对象版本,请选择浏览 S3,然后搜索脚本对象。

  4. (可选)在标签下,通过输入对向脚本添加标签。

  5. 选择创建

    亚马逊GameLift为新脚本分配 ID 并上传指定的.zip 文件。您可以在 “脚本” 页面上查看新脚本,包括其状态。

Amazon CLI

使用create-scriptAmazon CLI命令定义新脚本并上传您的服务器脚本文件。

  1. 打开命令行窗口并切换到可以使用的目录Amazon CLI。

  2. 输入以下create-script命令和参数。--storage-location参数指定脚本文件的 Amazon S3 存储桶位置。

    aws gamelift create-script \ --name [user-defined name of script] \ --script-version [user-defined version info] \ --storage-location "Bucket"=S3 bucket name,"Key"=name of zip file in S3 bucket,"RoleArn"=Access role ARN \ --region region name

    示例

    aws gamelift create-script \ --name "My_Realtime_Server_Script_1" \ --script-version "1.0.0" \ --storage-location "Bucket"="gamelift-script","Key"="myrealtime_script_1.0.0.zip","RoleArn"="arn:aws:iam::123456789012:role/S3Access" \ --region us-west-2

    作为对您的请求的响应,亚马逊GameLift返回了新的脚本对象。

  3. 要查看新脚本,请致电describe-script

更新脚本文件

您可以使用 Amazon GameLift 控制台或update-scriptAmazon CLI命令更新脚本资源的元数据。

您也可以更新脚本资源的脚本内容。Amazon 将脚本内容GameLift部署到使用更新脚本资源的所有队列实例。部署更新后的脚本后,实例会在启动新的游戏会话时使用它。更新时已经在运行的游戏会话不使用更新后的脚本。

更新脚本文件

  • 对于存储在本地的脚本文件,要上传更新的脚本.zip 文件,请使用 Amazon GameLift 控制台或update-script命令。

  • 对于存储在 Amazon S3 存储桶中的脚本文件,请将更新的脚本文件上传到 S3 存储桶。Amazon GameLift 会定期检查是否有更新的脚本文件并直接从 S3 存储桶中检索它们。