View a markdown version of this page

在 Amazon GameLift Streams 中准备应用程序 - 亚马逊 GameLift 直播

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

在 Amazon GameLift Streams 中准备应用程序

要设置使用 Amazon GameLift Streams 进行直播,请先上传要流式传输的游戏或其他应用程序,然后在 Amazon Stre GameLift ams 中配置应用程序资源以定义有关您的游戏的元数据。Amazon GameLift Streams 应用程序由您上传的文件(可执行文件和任何支持文件)和一个用于指示 Amazon GameLift Streams 在流式传输时要运行什么可执行文件的配置组成。

每个 Amazon GameLift Streams 应用程序都代表您的内容的单一版本。如果您有多个版本,则必须为每个版本创建一个单独的应用程序。创建应用程序后,您将无法更新文件。如果您需要更新可执行文件或任何支持文件,则必须创建一个新的 Amazon GameLift Streams 应用程序。

在你上传之前

在创建 Amazon GameLift Streams 应用程序之前,请验证您的游戏是否符合以下限制。

Name 默认值 可调整 说明
每个应用程序的文件 3 万个文件 是* 您可以在此账户中的一个应用程序中拥有的最大文件数。
单个文件大小 80 GiB 应用程序中单个文件的最大大小。请注意,千兆字节(GiB)等于 1024*1024*1024 字节。
应用程序的大小 100GiB 是* 此账户中 Amazon GameLift Streams 应用程序的最大总大小。请注意,千兆字节(GiB)等于 1024*1024*1024 字节。

*要申请提高配额,请登录 AWS 管理控制台 并打开 Amazon GameLift Streams 的 Service Quotas 控制台,在那里您可以在 “已申请的账户级别配额值” 列中查看您当前的配额,然后提交增加配额值的请求。

注意

为了节省时间和精力,请确认准备上传的文件是应用程序的正确版本。虽然您可以稍后上传新版本,但您需要为每个版本重复该创建 应用程序步骤。

将您的应用程序上传到 Amazon S3 存储桶

现在你已经为亚马逊 GameLift 直播做好了游戏准备,是时候将其上传到你账户中的 AWS 亚马逊简单存储服务 (Amazon S3) 存储桶了。

注意

Amazon GameLift Streams 要求的 Amazon S3 存储类别是默认 S3 标准Amazon Streams 不支持其他存储类别,例如 S3 GlacierS3 Intelligent-Tiering 移至 “不频繁访问” 或 “存档访问” 的对象。 GameLift

为了优化存储成本,您可以在完成操作创建 应用程序且应用程序处于 “就绪” 状态后从 S3 存储桶中删除该应用程序。

将您的应用程序上传到 Amazon S3
  1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/

  2. 创建 Amazon S3 存储桶。输入存储桶名称并选择一个 AWS 区域。此区域必须与您稍后创建的应用程序和直播组相同。AWS 区域 以及 Amazon GameLift Streams 支持的直播地点请参阅,了解 Amazon GameLift Streams 上线 AWS 区域 地点的列表。对于其余字段,请保留默认设置。

    有关更多说明,请参阅《Amazon 简单存储服务用户指南》中的创建存储

  3. 打开新存储桶并上传包含您的应用程序文件的文件夹。

    警告

    您必须将应用程序文件作为未压缩的文件夹上传。不要上传文件.zip夹。

创建 应用程序

Amazon GameLift Streams 应用程序是一种包含游戏或交互式应用程序的资源,该应用程序在 Amazon GameLift Streams 基础设施上运行,并通过云流向玩家提供游戏体验。该应用程序在 AWS 计算实例上执行,并渲染游戏内容,这些内容通过互联网直接流式传输到玩家的设备,因此玩家无需在本地下载、安装或运行游戏。

创建 Amazon GameLift Streams 应用程序时,您需要提供上传到 Amazon S3 存储桶的应用程序文件夹的 Amazon S3 URI,以及有效的可执行文件或脚本文件的相对路径。

Amazon GameLift Streams 不会让您的应用程序文件与 Amazon S3 存储桶中的文件保持同步。如果您想更新您的 Amazon GameLift Streams 应用程序中的文件,则必须创建一个新的 Amazon GameLift Streams 应用程序。

Console
使用 Amazon GameLift Streams 控制台创建 Amazon GameLift Streams 应用程序
  1. 登录 AWS 管理控制台 并打开 Amazon GameLift Streams 控制台。选择与您上传文件集的 Amazon S3 存储桶相同的 AWS 区域 存储桶。有关更多信息,请参阅《AWS 管理控制台 入门指南》中的选择区域

  2. 在导航栏中,选择应用程序,然后选择创建应用程序

  3. “运行时设置” 中,输入以下内容:

    1. 运行时环境

      这是运行应用程序的运行时环境。Amazon GameLift Streams 可以在 Windows、Ubuntu 22.04 LTS 或 Proton 上运行。

      创建工作流程完成后,您无法编辑此字段。

      从以下运行时环境中选择一个。

      • 对于 Linux 应用程序:

        • Ubuntu 22.04 LTS () UBUNTU, 22_04_LTS

      • 对于 Windows 应用程序:

        • 微软 Windows Server 2022 Base (WINDOWS, 2022)

        • Proton 10.0-4 () PROTON, 20260204

        • Proton 9.0-2 () PROTON, 20250516

        • Proton 8.0-5 () PROTON, 20241007

        • Proton 8.0-2c () PROTON, 20230704

      查看描述并使用比较清单来帮助您为应用程序选择最佳的运行时环境。

  4. 常规设置中,输入以下内容:

    1. 描述

      这是应用程序的用户可读标签。此值不必具有唯一性。为实现最佳实践,请为应用程序使用有意义的描述、名称或标签。您可以随时编辑此字段。

    2. 基本路径

      这是 Amazon S3 存储桶中应用程序的根文件夹的 Amazon S3 URI。该文件夹和任何子文件夹应包含生成包可执行文件和所有支持文件。

      有效 URI 指的是存储桶前缀,其中包含运行和流式传输应用程序所需的所有文件。示例:一个名为 mygamebuild 的存储桶包含游戏生成包文件的三个完整版本,每个版本位于一个单独的文件夹中。您想要流式传输文件夹 mygamebuild-EN101 中的生成包。在此示例中,URI 为 s3://amzn-s3-demo-bucket/mygamebuild-EN101

      创建工作流程完成后,您无法编辑此字段。

    3. 可执行文件启动路径

      这是 Amazon Streams 将 GameLift 直播的可执行文件的 Amazon S3 URI。该文件必须包含在应用程序的根文件夹中。对于 Windows 应用程序,该文件必须是有效的 Windows 可执行文件或批处理文件,文件名以 .exe、.cmd 或 .bat 结尾。对于 Linux 应用程序,该文件必须是有效的 Linux 二进制可执行文件,或者是包含以 shebang(“#!”)开头的初始解释器行的脚本。

      创建工作流程完成后,您无法编辑此字段。

  5. (可选)在应用程序日志路径中,输入以下内容:

    1. 应用程序日志路径

      指定您希望 Amazon GameLift Streams 保存的日志文件或文件夹的路径。在每个直播会话结束时,Amazon Stre GameLift ams 都会将指定的文件复制到您命名的 Amazon S3 存储桶中。

      • 路径相对于您的应用程序目录,或者在使用支持的路径变量时相对于用户的主目录。

      • 如果指定目录,则只收集.txt.log、和.utrace文件。要收集其他文件类型,请指定确切的文件路径。

      • 复制操作不是以递归方式在子文件夹中执行的。

      • 您最多可以指定 10 个日志路径。每个日志文件的大小不能超过 50 MB。

      路径变量

      当以下变量作为路径的第一个组成部分出现时,它们就会被识别。

      • %USERPROFILE%— 用户的主目录(Windows 和 Proton)

      • $HOME~— 用户的主目录 (Linux)

      示例:

      • Saved\Logs— 从与您的应用程序相关的Saved\Logs目录中收集.txt.log、和.utrace文件。

      • Saved\Logs\debug.dmp— 收集特定的命名文件。

      • %USERPROFILE%\AppData\Local\MyGame\Logs— 收集.txt.log、和与用户主目录相关的.utrace文件。当您的应用程序在应用程序目录之外写入日志时,请使用路径变量。

      要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

      您可以随时编辑此字段。

    2. 应用程序日志输出

      这是 Amazon S3 存储桶的 URI,Amazon GameLift Streams 将在其中复制应用程序日志文件。如果指定了应用程序日志路径,则此字段为必填项。

      要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

      您可以随时编辑此字段。

      要代表您保存日志文件,必须授予 Amazon GameLift Streams 对您的 S3 存储桶进行保存的权限。如果您让 Amazon GameLift Streams 创建用于记录的存储桶,则权限策略将在创建时自动应用。如果您提供自己的存储桶,则需要由您自行应用权限策略。

      存储桶权限策略模板

      复制以下策略代码,并将其应用到要用于存储应用程序日志的存储桶。请务必将 amzn-s3-demo-bucket 替换为现有 S3 存储桶的名称。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "PutPolicy", "Effect": "Allow", "Principal": { "Service": [ "gameliftstreams.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:SourceAccount": "your 12-digit account id" } } } ] }
  6. (可选)在 “标签” 中,为该应用程序分配标签。

    标签是可以帮助您整理 AWS 资源的标签。有关更多信息,请参阅为 AWS 资源添加标签

    例如,要跟踪应用程序版本,请使用诸如之类的标签application-version : my-game-1121

  7. 选择创建应用程序

CLI

先决条件

您必须 AWS CLI 使用您的用户凭据和您选择的凭据进行配置 AWS 区域。有关设置说明,请参阅下载 AWS CLI

要使用创建应用程序 AWS CLI

在您 AWS CLI 使用针对您的内容自定义的CreateApplication命令时。

aws gameliftstreams create-application \ --description "MyGame v1" \ --runtime-environment '{"Type":"PROTON", "Version":"20241007"}' \ --executable-path "launcher.exe" \ --application-source-uri "s3://amzn-s3-demo-bucket/example"

where

  • description:

    这是应用程序的用户可读标签。此值不必具有唯一性。为实现最佳实践,请为应用程序使用有意义的描述、名称或标签。您可以随时编辑此字段。

  • runtime-environment:

    这是运行应用程序的运行时环境。Amazon GameLift Streams 可以在 Windows、Ubuntu 22.04 LTS 或 Proton 上运行。

    创建工作流程完成后,您无法编辑此字段。

    从以下运行时环境中选择一个。

    • 对于 Linux 应用程序:

      • Ubuntu 22.04 LTS () Type=UBUNTU, Version=22_04_LTS

    • 对于 Windows 应用程序:

      • 微软 Windows Server 2022 Base (Type=WINDOWS, Version=2022)

      • Proton 10.0-4 () Type=PROTON, Version=20260204

      • Proton 9.0-2 () Type=PROTON, Version=20250516

      • Proton 8.0-5 () Type=PROTON, Version=20241007

      • Proton 8.0-2c () Type=PROTON, Version=20230704

  • application-source-uri:

    这是 Amazon S3 存储桶中应用程序的根文件夹的 Amazon S3 URI。该文件夹和任何子文件夹应包含生成包可执行文件和所有支持文件。

    有效 URI 指的是存储桶前缀,其中包含运行和流式传输应用程序所需的所有文件。示例:一个名为 mygamebuild 的存储桶包含游戏生成包文件的三个完整版本,每个版本位于一个单独的文件夹中。您想要流式传输文件夹 mygamebuild-EN101 中的生成包。在此示例中,URI 为 s3://amzn-s3-demo-bucket/mygamebuild-EN101

    创建工作流程完成后,您无法编辑此字段。

  • executable-path:

    这是 Amazon Stream GameLift s 将流式传输的可执行文件的相对路径和文件名。指定相对于的路径application-source-uri。该文件必须包含在应用程序的根文件夹中。对于 Windows 应用程序,该文件必须是有效的 Windows 可执行文件或批处理文件,文件名以 .exe、.cmd 或 .bat 结尾。对于 Linux 应用程序,该文件必须是有效的 Linux 二进制可执行文件,或者是包含以 shebang(“#!”)开头的初始解释器行的脚本。

    创建工作流程完成后,您无法编辑此字段。

如果请求成功,Amazon GameLift Streams 将返回类似于以下内容的响应:

{ "Arn": "arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6", "Description": "MyGame v1", "RuntimeEnvironment": { "Type": "PROTON", "Version": "20241007" }, "ExecutablePath": "launcher.exe", "ApplicationSourceUri": "s3://amzn-s3-demo-bucket/example", "Id": "a-9ZY8X7Wv6", "Status": "PROCESSING", "CreatedAt": "2022-11-18T15:47:11.924000-08:00", "LastUpdatedAt": "2022-11-18T15:47:11.924000-08:00" }

要检查应用程序的状态,请调用GetApplication命令,如以下示例所示。

aws gameliftstreams get-application / --identifier a-9ZY8X7Wv6

Amazon GameLift Streams 需要几分钟的时间来准备您的应用程序。在此期间,新应用程序处于 “处理中” 状态。当您的应用程序处于 “就绪” 状态时,您可以转到下一步创建直播组

如果请求返回错误,或者应用程序已创建但处于 “错误” 状态,请确保您使用的是包含访问 Amazon S3 和 Amazon GameLift Streams 权限的用户证书。

注意

当应用程序处于 “就绪” 状态时,Amazon GameLift Streams 已成功将您的应用程序文件复制到其私有 Amazon S3 存储桶。您可以在不影响新应用程序的情况下删除原始应用程序文件。这还可以帮助您优化存储成本。有关更多信息,请参阅 删除 应用程序

编辑应用程序

您可以更新任何处于 “就绪” 状态的应用程序的设置。如果您对现有应用程序进行更改,则这些更改会影响新直播组和现有直播组的直播行为。

Console
在 Amazon GameLift Streams 控制台中编辑应用程序
  1. 在导航栏中,选择应用程序以查看现有应用程序的列表。选择要编辑的应用程序。

  2. 在应用程序详细信息页面中,找到包含要更改的设置的部分,然后相应地选择编辑管理标签

  3. 您可以更改以下设置:

    简短描述

    这是应用程序的用户可读标签。此值不必具有唯一性。为实现最佳实践,请为应用程序使用有意义的描述、名称或标签。您可以随时编辑此字段。

    应用程序日志路径

    指定您希望 Amazon GameLift Streams 保存的日志文件或文件夹的路径。在每个直播会话结束时,Amazon Stre GameLift ams 都会将指定的文件复制到您命名的 Amazon S3 存储桶中。

    • 路径相对于您的应用程序目录,或者在使用支持的路径变量时相对于用户的主目录。

    • 如果指定目录,则只收集.txt.log、和.utrace文件。要收集其他文件类型,请指定确切的文件路径。

    • 复制操作不是以递归方式在子文件夹中执行的。

    • 您最多可以指定 10 个日志路径。每个日志文件的大小不能超过 50 MB。

    路径变量

    当以下变量作为路径的第一个组成部分出现时,它们就会被识别。

    • %USERPROFILE%— 用户的主目录(Windows 和 Proton)

    • $HOME~— 用户的主目录 (Linux)

    示例:

    • Saved\Logs— 从与您的应用程序相关的Saved\Logs目录中收集.txt.log、和.utrace文件。

    • Saved\Logs\debug.dmp— 收集特定的命名文件。

    • %USERPROFILE%\AppData\Local\MyGame\Logs— 收集.txt.log、和与用户主目录相关的.utrace文件。当您的应用程序在应用程序目录之外写入日志时,请使用路径变量。

    要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

    您可以随时编辑此字段。

    应用程序日志输出

    这是 Amazon S3 存储桶的 URI,Amazon GameLift Streams 将在其中复制应用程序日志文件。如果指定了应用程序日志路径,则此字段为必填项。

    要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

    您可以随时编辑此字段。

    要代表您保存日志文件,必须授予 Amazon GameLift Streams 对您的 S3 存储桶进行保存的权限。如果您让 Amazon GameLift Streams 创建用于记录的存储桶,则权限策略将在创建时自动应用。如果您提供自己的存储桶,则需要由您自行应用权限策略。

    有关更多信息,请参阅 应用程序日志存储桶权限策略

    标签

    标签是可以帮助您整理 AWS 资源的标签。有关更多信息,请参阅为 AWS 资源添加标签

    例如,要跟踪应用程序版本,请使用诸如之类的标签application-version : my-game-1121

  4. 选择保存更改。Amazon GameLift Streams 控制台返回应用程序详细信息页面,显示更新的设置。

CLI

先决条件

您必须 AWS CLI 使用您的用户凭据和您选择的凭据进行配置 AWS 区域。有关设置说明,请参阅下载 AWS CLI

要使用编辑应用程序 AWS CLI

在您 AWS CLI 使用针对您的内容自定义的UpdateApplication命令时。

aws gameliftstreams update-application \ --identifier a-9ZY8X7Wv6 \ --description "MyGame v2" \ --application-log-paths '[".\\logs"]' \ --application-log-output-uri "s3://amzn-s3-demo-bucket/mygame"

where

  • identifier:要编辑的应用程序。

    此值是唯一标识应用程序资源的 Amazon 资源名称 (ARN) 或 ID。

    ARN 示例:arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6

    身份证示例:a-9ZY8X7Wv6

  • description:

    这是应用程序的用户可读标签。此值不必具有唯一性。为实现最佳实践,请为应用程序使用有意义的描述、名称或标签。您可以随时编辑此字段。

  • application-log-paths:

    指定您希望 Amazon GameLift Streams 保存的日志文件或文件夹的路径。在每个直播会话结束时,Amazon Stre GameLift ams 都会将指定的文件复制到您命名的 Amazon S3 存储桶中。

    • 路径相对于您的应用程序目录,或者在使用支持的路径变量时相对于用户的主目录。

    • 如果指定目录,则只收集.txt.log、和.utrace文件。要收集其他文件类型,请指定确切的文件路径。

    • 复制操作不是以递归方式在子文件夹中执行的。

    • 您最多可以指定 10 个日志路径。每个日志文件的大小不能超过 50 MB。

    路径变量

    当以下变量作为路径的第一个组成部分出现时,它们就会被识别。

    • %USERPROFILE%— 用户的主目录(Windows 和 Proton)

    • $HOME~— 用户的主目录 (Linux)

    示例:

    • Saved\Logs— 从与您的应用程序相关的Saved\Logs目录中收集.txt.log、和.utrace文件。

    • Saved\Logs\debug.dmp— 收集特定的命名文件。

    • %USERPROFILE%\AppData\Local\MyGame\Logs— 收集.txt.log、和与用户主目录相关的.utrace文件。当您的应用程序在应用程序目录之外写入日志时,请使用路径变量。

    要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

    您可以随时编辑此字段。

  • application-log-output-uri:

    这是 Amazon S3 存储桶的 URI,Amazon GameLift Streams 将在其中复制应用程序日志文件。如果指定了应用程序日志路径,则此字段为必填项。

    要禁用日志记录,请移除所有应用程序日志路径并清除应用程序日志输出目标。

    您可以随时编辑此字段。

    要代表您保存日志文件,必须授予 Amazon GameLift Streams 对您的 S3 存储桶进行保存的权限。如果您让 Amazon GameLift Streams 创建用于记录的存储桶,则权限策略将在创建时自动应用。如果您提供自己的存储桶,则需要由您自行应用权限策略。

    有关更多信息,请参阅 应用程序日志存储桶权限策略

删除 应用程序

如果您不再需要某个应用程序,请将其删除。此操作将永久删除应用程序,包括存储在 Amazon GameLift Streams 中的应用程序内容文件。但是,这不会删除您上传到您的 Amazon S3 存储桶的原始文件;您可以在 Amazon GameLift Streams 创建应用程序之后随时删除这些文件,这是 Amazon St GameLift reams 唯一一次访问您的 Amazon S3 存储桶。

您只可删除符合以下条件的应用程序:

  • 应用程序处于就绪错误状态。

  • 应用程序未在任何正在进行的流会话中进行流式传输。您必须等到客户端结束直播会话或在 Amazon Stre GameLift ams API TerminateStreamSession中调用才能结束直播。

如果应用程序链接到任何流组,则必须先将其与所有关联的流组取消链接,然后才能将其删除。在控制台中,有一个对话框将引导您完成此过程。

Console
使用 Amazon GameLift Streams 控制台删除应用程序
  1. 登录 AWS 管理控制台 并打开 Amazon GameLift Streams 控制台

  2. 在导航栏中,选择应用程序以查看现有应用程序的列表。选择要删除的应用程序。

  3. 在应用程序详细信息页面中,选择删除

  4. 在 “删除” 对话框中,确认删除操作。

CLI

先决条件

您必须 AWS CLI 使用您的用户凭据和您选择的凭据进行配置 AWS 区域。有关设置说明,请参阅下载 AWS CLI

要删除应用程序,请使用 AWS CLI

在您 AWS CLI 使用针对您的内容自定义的DeleteApplication命令时。

aws gameliftstreams delete-application \ --identifier arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6

where

  • identifier:要删除的应用程序。

    此值是唯一标识应用程序资源的 Amazon 资源名称 (ARN) 或 ID。

    ARN 示例:arn:aws:gameliftstreams:us-west-2:111122223333:application/a-9ZY8X7Wv6

    身份证示例:a-9ZY8X7Wv6

Amazon GameLift Streams 开始删除该应用程序。在此期间,应用程序处于Deleting状态。在 Amazon GameLift Streams 删除应用程序后,您将无法再对其进行检索。

应用程序日志存储桶权限策略

如果您提供自己的应用程序日志 Amazon S3 存储桶,则需要对该存储桶应用权限策略,以便 Amazon GameLift Streams 可以将日志文件保存到该存储桶中。使用以下模板更新 Amazon S3 中的权限。

存储桶权限策略模板

复制以下策略代码,并将其应用到要用于存储应用程序日志的存储桶。请务必将 amzn-s3-demo-bucket 替换为现有 S3 存储桶的名称。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutPolicy", "Effect": "Allow", "Principal": { "Service": [ "gameliftstreams.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:SourceAccount": "your 12-digit account id" } } } ] }
注意

Amazon GameLift Streams 不允许跨账户资源访问。Amazon S3 存储桶必须由与应用程序资源相同的 AWS 账户拥有。尽管该部门严格执行了这一点,但最佳做法是在向任何 AWS 服务授予许可时始终包含aws:SourceAccountaws:SourceArn条件,以防止出现混乱的副手问题

链接的直播群组

如果要使用同一个计算资源池流化多个应用程序,则可以将多个应用程序链接到同一个流组。同样,如果您想使用不同的计算资源集对应用程序进行流式传输,则可以将应用程序链接到多个流组。

有关将应用程序链接到直播组的更多信息,请参阅多应用程序流组概述