Amazon GameLift
开发人员指南 (版本 )
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在完成游戏的 Realtime 服务器脚本后,将脚本文件上传到 Amazon GameLift 来使用 实时服务器 进行部署。具体操作方法是创建 Amazon GameLift 脚本记录并提供脚本文件。提供脚本文件时有两个选项:

  • 使用存储在本地目录中的 zip 文件创建脚本。

  • 使用存储在 Amazon S3 存储桶中的 zip 文件创建脚本。

在创建新脚本时,Amazon GameLift 将分配一个唯一的脚本 ID(示例:script-1111aaaa-22bb-33cc-44dd-5555eeee66ff),并添加创建时间戳、已上传文件的大小和其他元数据。上传时间取决于脚本文件的大小和连接速度。

此时,脚本可以使用新 Amazon GameLift 实时服务器 队组部署。Amazon GameLift 将服务器脚本安装到队组中的每个实例上,将脚本文件放在以下位置:/local/game

要排查可能与服务器脚本相关的队组激活问题,请参阅 调试队组问题

打包脚本文件

服务器脚本可以包含一个或多个文件。上传时,将 JavaScript 依赖的所有文件合并以运行到一个 zip 文件中。

上传本地脚本文件

可以使用 Amazon GameLift 控制台或 AWS CLI 工具来创建脚本。

GameLift ConsoleAWS CLI
GameLift Console

创建脚本

  1. https://console.amazonaws.cn/gamelift/ 打开 Amazon GameLift 控制台。

  2. 使用 GameLift 主菜单打开 Scripts: Create script (脚本: 创建脚本) 页面访问脚本创建表单。

  3. Script configuration (脚本配置) 中,输入脚本名称和版本信息。由于脚本内容可以更新,版本数据则有助于跟踪更新。

  4. Script code (脚本代码) 中,选择 Script type (脚本类型)“Zip 文件”。此选项可让您指定存储在本地目录中的 zip 文件。

  5. 浏览找到包含脚本的 zip 文件并选择它。

  6. 定义新的脚本记录后,单击 Submit。Amazon GameLift 将为新脚本分配 ID 并开始上传指定的 zip 文件。您可以在控制台的 Scripts (脚本) 页面查看新脚本记录(包括状态)。

AWS CLI

要使用 AWS CLI 创建脚本,打开命令行窗口,然后使用 create-script 命令定义新脚本并上传您的服务器脚本文件。请参阅 AWS CLI 命令参考中对此命令的完整介绍。获取并安装 AWS Command Line Interface 工具。

创建脚本

  1. 将 zip 文件放到您可以调用 AWS CLI 的目录下。

  2. 在命令行窗口中,切换到 zip 文件所在的目录。

  3. 输入 create-script 命令和参数。对于 -zip-file 参数,请务必在 zip 文件的名称前加上字符串“fileb://”。它将文件标识为二进制文件,并确保压缩内容正确处理。

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

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

    示例:

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

您可以通过调用 describe-script 或在 Amazon GameLift 控制台中查看新脚本。

在 Amazon S3 中上传脚本文件

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

创建脚本

  1. 在 Amazon S3 存储桶中存储脚本文件。 将包含服务器脚本的 zip 文件上传到您控制的 AWS 账户内的 Amazon S3 存储桶中。记下存储桶名称和文件名(也称为“密钥”);创建 Amazon GameLift 脚本时将需要这些信息。

  2. 向 Amazon GameLift 提供对您的脚本文件的访问权限。 按照 设置 Amazon GameLift 访问的角色 上的说明创建一个 IAM 角色,该角色允许 Amazon GameLift 访问包含您的服务器脚本的 Amazon S3 存储桶。创建角色后,记录新角色的 Amazon 资源名称 (ARN),您在创建脚本包时需要该名称。

  3. 创建脚本。 使用控制台或 AWS CLI 创建新脚本记录。

GameLift ConsoleAWS CLI
GameLift Console
  1. 使用 GameLift 主菜单打开 Scripts: Create script (脚本: 创建脚本) 页面访问脚本创建表单。

  2. Script configuration (脚本配置) 中,输入脚本名称和版本信息。由于脚本内容可以更新,版本数据则有助于跟踪更新。

  3. Script code (脚本代码) 中,选择 Script type (脚本类型)“用户存储”。此选项可让您指定包含您的脚本文件的 S3 存储桶。

  4. 输入 S3 存储桶的存储位置信息:

    • S3 存储桶 – 存储桶名称。

    • S3 密钥 – 存储桶中文件(包含您的服务器脚本的压缩文件)的名称。

    • S3 角色 ARN – 您在步骤 2 中创建的 IAM 角色的 ARN 值。

    • S3 对象版本 –(可选)S3 文件的特定版本号。这仅在 S3 存储桶打开了对象版本控制且您要指定最新版本以外的版本时使用。

  5. 定义新的脚本记录后,单击 Submit (提交)。Amazon GameLift 将为新脚本分配 ID 并开始上传指定的 zip 文件。您可以在控制台的 Scripts (脚本) 页面查看新脚本记录(包括状态)。

AWS CLI

使用 create-script 命令定义新脚本并上传您的服务器脚本文件。请参阅 AWS CLI 命令参考中对此命令的完整介绍。获取并安装 AWS Command Line Interface 工具。

  1. 打开命令行窗口,然后切换到您可以使用 AWS CLI 工具的目录。

  2. 输入带有下列参数的 create-script 命令:--name--version--storage-location。存储位置参数指定脚本文件的 Amazon S3 存储桶位置。

    aws gamelift create-script --name [user-defined name of 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]

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

    示例:

    aws gamelift create-script --name My_Realtime_Server_Script_1 --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

    您可以通过调用 describe-script 或在 Amazon GameLift 控制台中查看新脚本。

更新脚本文件

您可以使用 GameLift 控制台或 AWS CLI 命令 update-script,随时更新元数据或脚本内容。在您更新脚本内容时,新脚本用于所有新的游戏会话,但不会影响在更新脚本之前创建的当前正在运行的游戏会话。

如果脚本存储在存储您账户下的 Amazon S3 存储桶中,您可以通过将新 zip 文件上传到存储桶来更新脚本内容。如果以本地 zip 文件格式提供了脚本,则您必须上传新文件到 GameLift。

您还可以更改脚本内容所在的位置,而不必创建新的脚本记录。