

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

# 使用 Amazon S3 中的文件创建构建
<a name="gamelift-build-cli-uploading-create-build"></a>

您可以将生成包文件存储在 Amazon S3 中，然后从那里将其上传到 Amazon GameLift Servers。创建版本时，您可以指定 S3 存储桶的位置，然后直接从 Amazon S3 中Amazon GameLift Servers检索构建文件。

**创建构建资源**

1. **将构建文件存储在 Amazon S3 中。**创建包含打包构建文件的.zip 文件，然后将其上传到您 AWS 账户的 S3 存储桶。记下存储桶标签和文件名，创建Amazon GameLift Servers版本时需要这些标签。

1. **向 Amazon GameLift Servers 提供对您的生成包文件的访问权限。**按照[在 Amazon S3 中访问游戏构建文件](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc)中的说明创建 IAM 角色。创建角色后，记录新角色的 Amazon 资源名称（ARN），您在创建构建时需要该名称。

1. **创建构建** 使用Amazon GameLift Servers控制台或创建新的生成记录。 AWS CLI 您必须拥有 `PassRole` 权限，如[Amazon GameLift Servers 的 IAM 权限示例](gamelift-iam-policy-examples.md)中所述。

------
#### [ Console ]

1. 在 [Amazon GameLift Servers 控制台](https://console.aws.amazon.com/gamelift/)的导航窗格中，选择**托管**、**生成包**。

1. 在**构建**页面上，选择**创建构建**。

1. 在**创建构建**页面的**构建设置**下，执行以下操作：

   1. 对于**名称**，输入脚本名称。

   1. 对于**版本**，输入版本。由于构建内容可以更新，版本数据则有助于跟踪更新。

   1. 对于**操作系统（OS）**，选择您的游戏服务器构建的操作系统。您稍后无法更新此值。

   1. 对于**游戏服务器构建**，输入您上传到 Amazon S3 的构建目标的 **S3 URI**，然后选择**目标版本**。如果您忘记了 Amazon S3 URI 和对象版本，选择**浏览 S3**，然后搜索构建对象。

   1. 对于 **IAM 角色**，选择您创建的允许 Amazon GameLift Servers 访问您的 S3 存储桶和生成包对象的角色。

1. （可选）在**标签**下，通过输入**键**和**值**对向构建添加标签。

1. 选择**创建**。

Amazon GameLift Servers 为新生成包分配一个 ID 并上传指定的 .zip 文件。您可以在**构建**页面上查看新构建，包括状态。

------
#### [ AWS CLI ]

使用 [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html) 命令定义新构建并上传您的服务器构建文件。

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

1. 输入以下 **create-build** 命令：

   ```
   aws gamelift create-build \
       --name user-defined name of build \
       --server-sdk-version server SDK for Amazon GameLift Servers version \
       --operating-system supported OS \
       --build-version user-defined build number \
       --storage-location "Bucket"=S3 bucket label,"Key"=Build .zip file name,"RoleArn"=Access role ARN} \
       --region region name
   ```
   + **name** – 新构建的描述性名称。
   + **server-sdk-version** – 您用于集成游戏服务器和 Amazon GameLift Servers 的 Amazon GameLift Servers 服务器 SDK 版本。如果您没有提供值，则 Amazon GameLift Servers 会使用默认值 `4.0.2`。
   + **operating-system** – 游戏服务器生成包的运行时环境。您必须指定操作系统值。您稍后无法更新。
   + **build-version** – 构建文件的版本详细信息。这些信息可能很有用，因为游戏服务器的每个新版本都需要新的构建资源。
   + **storage-location**
     + **Bucket** – 包含您的构建的 S3 存储桶的名称。示例：“my\$1build\$1files”。
     + **Key** – 包含您的构建文件的 .zip 文件的名称。示例：“my\$1game\$1build\$17.0.1, 7.0.2”。
     + **RoleARN** – 分配给您创建的 IAM 角色的 ARN。例如，“arn: aws: iam:: 111122223333: role/”。GameLiftAccess有关策略示例，请参阅 [在 Amazon S3 中访问游戏构建文件](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc)。
   + **region**— 在计划部署舰队的 AWS 区域中创建构建。如果您在多个区域中部署游戏，则需在每个区域中创建一个构建。
**注意**  
我们建议使用 [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html) 命令[https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html)命令检查当前的默认区域。要更改默认区域，请使用 [https://docs.aws.amazon.com/cli/latest/reference/configure/set.html](https://docs.aws.amazon.com/cli/latest/reference/configure/set.html) 命令。

   *示例*

   ```
   aws gamelift create-build \
       --operating-system WINDOWS_2022 \
       --storage-location "Bucket"="my_game_build_files","Key"="mygame_build_101.zip","RoleArn"="arn:aws:iam::111122223333:role/gamelift" \
       --name "My Game Nightly Build" \
       --build-version "build 101" \
       --region us-west-2
   ```

1. 要查看新构建，请使用 [https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html) 命令。

------