

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

# 在 Amazon Streams 中开始你的第一个 GameLift 直播
<a name="streaming-process"></a>

 本教程将引导您完成开始使用 Amazon Stre GameLift ams 直播应用程序或游戏的步骤。Amazon GameLift Streams 运行您的应用程序，并将它们直接流式传输到您的最终用户的网络浏览器。您将学习如何上传和配置要流式传输的应用程序，以及如何管理 Amazon Streams 的 GameLift 直播方式。最后，您将通过在 Amazon Streams 控制台中直接与应用程序交互来测试您的应用程序如何在 Ama GameLift zon Streams 上进行 GameLift 流式传输。

**在开始之前，请先了解 Amazon GameLift Streams 的定价。**  
您可以在[定价页面](https://aws.amazon.com/gamelift/streams/pricing/)上找到 Amazon GameLift Streams 的费用。要了解更多信息，请参阅 [管理 Amazon GameLift Streams 的使用量和账单](pricing.md)。  
使用 Amazon GameLift Streams 会产生费用，特别是当您：  
在中创建 Amazon GameLift Streams 应用程序 [第 2 步：为 Amazon GameLift Streams 配置您的应用程序](#streaming-process-create-application)
在中创建直播组 [第 3 步：管理 Amazon GameLift Streams 如何流式传输您的应用程序](#streaming-process-stream-group)
 **不要跳过[第 5 步：清理（不要跳过）](#streaming-process-cleanup)**。为了避免在试用 Amazon GameLift Streams 后产生不必要的费用，您必须清理所有资源。

**Topics**
+ [先决条件](#streaming-process-prerequisites)
+ [步骤 1：将您的应用程序上传到 Amazon S3 存储桶](#streaming-process-upload-application)
+ [第 2 步：为 Amazon GameLift Streams 配置您的应用程序](#streaming-process-create-application)
+ [第 3 步：管理 Amazon GameLift Streams 如何流式传输您的应用程序](#streaming-process-stream-group)
+ [第 4 步：在 Amazon Streams 中测试您的 GameLift 直播](#streaming-process-stream-session)
+ [第 5 步：清理（不要跳过）](#streaming-process-cleanup)

## 先决条件
<a name="streaming-process-prerequisites"></a>

在开始本教程之前，请完成以下任务。
+ 如果您还没有管理权限，请注册一个 AWS 帐户并创建一个具有管理权限的用户。有关此任务的帮助，请参阅本指南中的[设置](setting-up.md)主题。此时您无需下载 Amazon GameLift Streams Web SDK 或进行设置，只需使用即可完成以下步骤 AWS 管理控制台。 AWS CLI 
+ 获取没有数字版权管理 (DRM) 的应用程序内容文件版本。将运行应用程序所需的文件（包括可执行文件和资产）收集到一个文件夹中，但*不要*压缩该文件夹。

## 步骤 1：将您的应用程序上传到 Amazon S3 存储桶
<a name="streaming-process-upload-application"></a>

 Amazon GameLift Streams 使用亚马逊简单存储服务 (Amazon S3) 将您的应用程序或游戏文件存储在云中并访问以进行直播。在此步骤中，您将应用程序文件上传到 Amazon S3 存储桶。在 Amazon S3 控制台中完成此步骤。

**注意**  
 Amazon GameLift Streams 要求的 Amazon S3 存储类别是默认 **S3 标准**。**Amazon Streams 不支持其他存储类别，例如 S3 Glac** **ier 或通过 S3 智能分层移至 “不**频繁****访问” 或 “存档访问**” 的**对象。 GameLift   
 为了优化存储成本，您可以在完成操作[第 2 步：为 Amazon GameLift Streams 配置您的应用程序](#streaming-process-create-application)且应用程序处于 “**就绪**” 状态后从 S3 存储桶中删除该应用程序。

**应用程序限制**


| Name | 默认值 | 可调整 | 说明 | 
| --- | --- | --- | --- | 
| 每个应用程序的文件 | 3 万个文件 | 是\$1 | 您可以在此账户中的一个应用程序中拥有的最大文件数。 | 
| 单个文件大小 | 80 GiB | 否 | 应用程序中单个文件的最大大小。请注意，千兆字节（GiB）等于 1024\$11024\$11024 字节。 | 
| 应用程序的大小 | 100GiB | 是\$1 | 此账户中 Amazon GameLift Streams 应用程序的最大总大小。请注意，千兆字节（GiB）等于 1024\$11024\$11024 字节。 | 

\$1要申请提高配额，请登录 AWS 管理控制台 并打开 [Amazon GameLift Streams](https://console.aws.amazon.com/servicequotas/home/services/gameliftstreams/quotas) 的 Service Quotas 控制台，在那里您可以在 “**已申请的账户级别配额值” 列中查看您当前的配额**，然后提交增加配额值的请求。

**将您的应用程序上传到亚马逊 S3**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

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

    有关更多说明，请参阅《*Amazon 简单存储服务用户指南》中的创建存储*[桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

1. 打开新存储桶并上传包含您的应用程序文件的文件夹。
**警告**  
您必须将应用程序文件作为未压缩的文件夹上传。不要上传文件`.zip`夹。

**警告**  
 确保您上传的应用程序文件是正确的，并且在应用程序文件大小限制范围内。如果您想稍后更新文件，则必须重复此操作[第 2 步：为 Amazon GameLift Streams 配置您的应用程序](#streaming-process-create-application)，这可能需要几分钟。

## 第 2 步：为 Amazon GameLift Streams 配置您的应用程序
<a name="streaming-process-create-application"></a>

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

在此步骤中，您将通过创建 Amazon Stream GameLift s 应用程序来配置要通过 Amazon Streams 进行 GameLift 流式传输的应用程序。创建 Amazon GameLift Streams 应用程序时，您需要提供上传到 Amazon S3 存储桶的应用程序文件夹的 Amazon S3 URI，以及有效的可执行文件或脚本文件的相对路径。在 Amazon GameLift Streams 控制台中完成此步骤。

**使用 Amazon GameLift Streams 控制台创建 Amazon GameLift Streams 应用程序**

1.  登录 AWS 管理控制台 并打开 [Amazon GameLift Streams 控制台](https://console.aws.amazon.com/gameliftstreams/)。选择与您上传文件集的 Amazon S3 存储桶相同的 AWS 区域 存储桶。有关更多信息，请参阅《*AWS 管理控制台 入门指南*》中的[选择区域](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/select-region.html)。

1.  在导航栏中，选择**应用程序**，然后选择**创建应用程序**。

1. 在**运行时设置**中，输入以下内容：

   1. **运行时环境**

      这是运行应用程序的运行时环境。[Amazon GameLift Streams 可以在 Windows、Ubuntu 22.04 LTS 或 Proton 上运行。](https://en.wikipedia.org/wiki/Proton_(software))

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

     从以下运行时环境中选择一个。
     +  对于 Linux 应用程序：
       +  Ubuntu 22.04 LTS () `UBUNTU, 22_04_LTS` 
     +  对于 Windows 应用程序：
       + 微软 Windows Server 2022 Base (`WINDOWS, 2022`)
       + Proton 9.0-2 () `PROTON, 20250516`
       + Proton 8.0-5 () `PROTON, 20241007`
       + Proton 8.0-2c () `PROTON, 20230704`

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

1. 在**常规设置**中，输入以下内容：

   1. **描述**

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

   1. **基本路径**

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

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

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

   1. **可执行文件启动路径**

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

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

1. （可选）在**应用程序日志路径**中，输入以下内容：

   1. **应用程序日志路径**

       这是指向包含要保存的日志的应用程序文件夹或文件的单个或多个路径。请相对于您的应用程序基本路径指定每个日志路径。如果您使用此功能，则在每个直播会话结束时，Amazon Stre GameLift ams 会将您指定的文件复制到您命名的 Amazon S3 存储桶中。在应用程序文件夹的子文件夹中，复制操作不会递归执行。

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

       您可以随时编辑此字段。

   1. **应用程序日志输出**

       这是 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"
              }
            }
          }
        ]
      }
      ```

1.  （可选）在 “**标签**” 中，为此应用程序分配标签。

    标签是可以帮助您整理 AWS 资源的标签。有关更多信息，请参阅[为 AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。

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

1.  选择**创建应用程序**。

 Amazon GameLift Streams 需要几分钟的时间来准备您的应用程序。在 “**应用程序**” 页面中，新应用程序处于 “**处理**中” 状态。当您的应用程序处于 “**就绪**” 状态时，您可以转到下一步[第 3 步：管理 Amazon GameLift Streams 如何流式传输您的应用程序](#streaming-process-stream-group)。

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

**注意**  
 当应用程序处于 “**就绪**” 状态时，您可以安全地删除 Amazon S3 存储桶中的应用程序文件，而不会影响您的新应用程序。这还有助于优化存储成本。有关更多信息，请参阅 [删除 应用程序](applications.md#applications-delete)。

 有关更多信息，请参阅[在 Amazon GameLift Streams 中准备应用程序](applications.md)。

## 第 3 步：管理 Amazon GameLift Streams 如何流式传输您的应用程序
<a name="streaming-process-stream-group"></a>

**什么是直播组？**  
 使用 GameLift 流组管理 Amazon Streams 如何流式传输您的应用程序。流组是 Amazon Streams 用于将您的应用程序 GameLift 流式传输给最终用户的计算资源的集合。创建直播组时，需要指定运行游戏的硬件配置（CPU、GPU、RAM）（称为*直播类*）、游戏可以运行的地理位置以及每个位置可以同时运行的直播数量（称为*流容量*）。您可以在创建直播组时链接应用程序，也可以等到稍后再链接，但必须先链接至少一个应用程序，然后才能从直播组进行直播。创建直播组后，Amazon GameLift Streams 会在您分配了流容量的位置分配计算资源。此时，您还可以将其他应用程序关联到直播组，这样您就可以选择要流式传输哪个应用程序。

 应用程序准备就绪后，接下来需要的是计算资源，让 Amazon Streams 对其进行 GameLift 流式传输。在此步骤中，您将通过创建 GameLift 流组来管理 Amazon Streams 如何流式传输您的应用程序。在 Amazon GameLift Streams 控制台中完成此步骤。

**在 Amazon Stream GameLift s 控制台中创建直播组**

1.  登录 AWS 管理控制台 并打开 [Amazon GameLift Streams 控制台](https://console.aws.amazon.com/gameliftstreams/)。选择要在 AWS 区域 哪里创建直播群组。此区域必须与您要通过直播组进行流式传输的应用程序的区域相同。有关更多信息，请参阅《*AWS 管理控制台 入门指南*》中的[选择区域](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/select-region.html)。

1.  要打开创建工作流程，请在导航窗格中选择**直播组**，然后选择**创建直播组**。

1. 在**定义直播组**中，输入以下内容：

   1. **描述**

       流组的用户可读标签。此值不必具有唯一性。作为最佳实践，请为流组使用有意义的描述、名称或标签。您可以随时编辑此字段。

   1. **标签**

       标签是可以帮助您整理 AWS 资源的标签。有关更多信息，请参阅[为 AWS 资源添加标签](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。

1.  在**选择直播类**中，为直播组选择一个直播类。

   1. **直播类选项**

      用于运行和流式传输应用程序的计算资源类型。这一选择会影响流式传输体验的质量以及成本。您只能为每个流组指定一个流类。选择最适合您的应用的课程。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/gameliftstreams/latest/developerguide/streaming-process.html)

   要继续，请选择 **Next**。

1.  在 “**链接应用程序**” 中，选择要流式传输的应用程序，或者选择 “**无应用程序**” 稍后再选择。创建直播组后，您可以对其进行编辑，以添加或移除应用程序。您只能链接处于`Ready`状态且运行时与您选择的流类兼容的应用程序。默认情况下，表中仅显示这些应用程序。要查看所有处于`Ready`状态的应用程序，请在下拉列表`All runtimes`中选择。
**注意**  
 如果您未在列表中看到您的应用程序，请检查当前 AWS 区域 设置。您只能将应用程序链接到位于同一区域的直播组。

    要继续，请选择 **Next**。

1.  在 “**配置直播设置” 中的 “****位置和容量**” 下，选择一个或多个您的直播组将有能力流式传输应用程序的位置。默认情况下，您创建直播组的区域（称为*主位置*）已添加到您的直播组中，无法删除。您可以通过选中要添加的每个位置旁边的复选框来添加其他地点。为了降低延迟和提高直播质量，您应该选择离用户更近的地点。

    您可以为每个位置指定其*流媒体容量*。流容量表示一次可以激活的并发流的数量。您可以设置每个流组中每个位置的流容量。
   +  **不间断容量：**如果此设置不为零，则表示分配给您的最小流式传输容量，该容量从不会释放回服务。无论是已用容量还是空闲容量，您始终都要为此基本容量水平付费。
   +  **最大容量：**此容量表示服务可以为您分配的最大容量。新创建的流可能需要几分钟才能启动。容量在空闲时会被释放回服务。您需要为分配给您的容量付费，直到容量被释放。
   +  **目标空闲容量：**此容量表示服务预先分配并保留的空闲容量，以备将来的活动需要。这有助于使您的用户免受容量分配延迟的影响。您需要为处于这种特意空闲状态的容量付费。

    您可以随时通过调整任一容量来增加或减少总直播容量，以满足用户对某个位置的需求的变化。Amazon GameLift Streams 使用常开容量池中预先分配的闲置资源（如果有）来满足流媒体请求。如果所有始终开启的容量都在使用中，Amazon GameLift Streams 将预配置额外的计算资源，但不得超过按需容量中指定的最大数量。随着分配容量的扩展，这一变化将反映在流组的总成本中。

    关联的应用程序将自动复制到每个启用的位置。应用程序必须在远程位置完成复制，然后远程位置才能托管视频流。要检查复制状态，请在创建流组后将其打开，并参考链接应用程序表中的**复制状态**列。单击当前状态可查看每个已添加位置的复制状态。
**注意**  
 应用程序数据将存储在所有已启用的位置，包括该直播组的主位置。直播会话数据将存储在主位置和直播发生的地点。

1.  在**查看并创建直播组**中，验证您的直播组配置并根据需要进行更改。一切都正确后，选择**创建直播组**。

 有关更多信息，请参阅[使用 Amazon Stre GameLift ams 直播群组管理直播](stream-groups.md)。

## 第 4 步：在 Amazon Streams 中测试您的 GameLift 直播
<a name="streaming-process-stream-session"></a>

**什么是直播会话？**  
 指直播本身。这是 Amazon Streams 从服务器向最终用户传输的 GameLift 直播实例。流会话在流组分配的计算资源或流容量上运行。也简称*直播*。

 您可以通过直接在 Amazon Streams 控制台中运行应用程序来查看应用程序的 GameLift 流式传输情况。当您启动直播时，Amazon Stre GameLift ams 会使用您的直播组分配的计算资源之一。因此，您的直播组中必须有可用容量。

**在 Amazon Stream GameLift s 控制台中测试您的直播**

1.  登录 AWS 管理控制台 并打开 [Amazon GameLift Streams 控制台](https://console.aws.amazon.com/gameliftstreams/)。

1. 您可以通过多种方式测试直播。从**直播群组**页面或**测试直播**页面开始，然后按照以下步骤操作：

   1. 选择要用于直播的直播组。

   1. 如果您从**直播组**页面开始，请选择**测试直播**。如果您从 “**测试直播**” 页面开始，请选择 “**选择**”。这将打开所选**直播组的测试**直播配置页面。

   1. 在**关联的应用程序**中，选择一个应用程序。

   1. 在**位置**中，选择具有可用容量的地点。

   1. （可选）在**程序配置**中，输入要在应用程序启动时传递给应用程序的命令行参数或环境变量。

   1. 确认您的选择，然后选择**测试直播**。

1. 直播加载后，你可以在直播中执行以下操作：

   1. **要连接输入，例如鼠标、键盘和游戏手柄（**测试直播**中不支持麦克风），请选择连接输入。**当你将光标移到直播窗口时，你会自动连接鼠标。

   1. 要在会话结束时将流式传输会话期间创建的文件导出到 Amazon S3 存储桶，请选择**导出文件**并指定存储桶的详细信息。导出的文件可以在 “**会话**” 页面上找到。

   1. 要以全屏模式观看直播，请选择**全**屏。按下 E **scap** e 可撤消此操作。

1. 要结束直播，请选择 “**终止会话**”。当直播断开连接时，直播容量将可用于启动另一个直播。

**注意**  
Amazon **Stream GameLift s 控制台中的测试**直播功能不支持麦克风。

## 第 5 步：清理（不要跳过）
<a name="streaming-process-cleanup"></a>

**避免不必要的成本**  
 当流组分配了容量时，即使该容量未使用，也会产生成本。为避免不必要的成本，请将您的直播组容量扩展到所需的大小。我们建议在开发过程中将不使用时始终在线的容量扩展到零。有关更多信息，请参阅[管理 Amazon GameLift Streams 费用的最佳实践](pricing.md#pricing-manage-costs)。

 完成本教程并且不再需要流式传输应用程序后，请按照以下步骤清理您的 Amazon GameLift Streams 资源。

**使用 Amazon Streams 控制台删除 GameLift 直播组**

1.  登录 AWS 管理控制台 并打开 [Amazon GameLift Streams 控制台](https://console.aws.amazon.com/gameliftstreams/)。

1.  要查看现有直播组的列表，请在导航窗格中选择**直播组**。

1.  选择要删除的直播组的名称。

1.  在直播组详情页面上，选择**删除**。

1.  在 “**删除**” 对话框中，确认删除操作。

 Amazon GameLift Streams 开始释放计算资源并删除直播组。在此期间，直播组处于 “**删除**” 状态。Amazon Stream GameLift s 删除直播组后，您将无法再对其进行检索。

**使用 Amazon GameLift Streams 控制台删除应用程序**

1. 登录 AWS 管理控制台 并打开 [Amazon GameLift Streams 控制台](https://console.aws.amazon.com/gameliftstreams/)。

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

1. 在应用程序详细信息页面中，选择**删除**。

1. 在 “**删除**” 对话框中，确认删除操作。

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

 有关更多信息，请参阅[删除直播组](stream-groups.md#stream-groups-delete)和[删除 应用程序](applications.md#applications-delete)。