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

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

将实时服务器脚本上传到 Amazon GameLift

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

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

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

要排查与服务器脚本相关的实例集激活问题,请参阅调试 Amazon GameLift 实例集问题

打包脚本文件

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

您可以将压缩后的脚本文件存储在本地文件目录,或存储在 Amazon Simple Storage Service (Amazon S3) 存储桶。

从本地目录上传脚本文件

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

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

  2. 在导航窗格中,选择托管脚本

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

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

    1. 对于名称,输入脚本名称。

    2. (可选)对于版本,输入版本信息。由于脚本内容可以更新,版本数据则有助于跟踪更新。

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

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

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

  6. 选择创建

    Amazon GameLift 为新脚本分配一个 ID 并上传指定的 .zip 文件。您可以在脚本页面查看新脚本(包括其状态)。

Amazon CLI

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

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

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

  3. 输入以下 create-script 命令和参数。对于 --zip-file 参数,请务必在 .zip 文件的名称前加上字符串 fileb://。它将文件标识为二进制文件,以便 Amazon 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

    作为对您的请求的响应,Amazon GameLift 服务会返回新的脚本对象。

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

从 Amazon S3 上传脚本文件

您可以选择在 Amazon S3 存储桶中存储脚本文件,并从这里将它们上传到 Amazon GameLift。在创建脚本时,您可以指定 S3 存储桶的位置,然后 Amazon GameLift 会从 Amazon S3 检索您的脚本文件。

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

    注意

    Amazon GameLift 不支持从名称包含句点 (.) 的 S3 存储桶进行上传。

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

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

Amazon GameLift console
  1. Amazon GameLift 控制台的导航窗格中,选择托管脚本

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

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

    1. 对于名称,输入脚本名称。

    2. (可选)对于版本,输入版本信息。由于脚本内容可以更新,版本数据则有助于跟踪更新。

    3. 对于脚本源,选择 Amazon S3 URI

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

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

  5. 选择创建

    Amazon GameLift 为新脚本分配一个 ID 并上传指定的 .zip 文件。您可以在脚本页面查看新脚本(包括其状态)。

Amazon CLI

使用 create-script Amazon 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

    作为对您的请求的响应,Amazon GameLift 服务会返回新的脚本对象。

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

更新脚本文件

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

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

更新脚本文件

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

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