AWS::GameLift::Build - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::GameLift::Build

AWS::GameLift::Build 资源创建一个游戏服务器内部版本,将在 Amazon GameLift 队列中的实例上安装并运行该内部版本。该资源指向一个 Amazon S3 位置,其中包含一个具有游戏服务器内部版本的所有组件的 zip 文件。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::GameLift::Build", "Properties" : { "Name" : String, "OperatingSystem" : String, "StorageLocation" : S3Location, "Version" : String } }

YAML

Type: AWS::GameLift::Build Properties: Name: String OperatingSystem: String StorageLocation: S3Location Version: String

属性

Name

与内部版本关联的描述性标签。版本名称不必是唯一的。

必需:否

类型:字符串

最低1

最高1024

Update requires: No interruption

OperatingSystem

构建游戏服务器二进制文件以在其中运行的操作系统。该值确定可用于该内部版本的队列资源的类型。如果游戏版本包含多个可执行文件,它们必须均在同一操作系统上运行。如果在创建内部版本时未指定操作系统,Amazon GameLift 将使用默认值 (WINDOWS_2012)。该值以后不能更改。

必需:否

类型:字符串

允许的值AMAZON_LINUX | AMAZON_LINUX_2 | WINDOWS_2012

Update requires: Replacement

StorageLocation

用于指示游戏内部版本文件的存储位置的信息。仅在使用存储在您拥有的 S3 存储桶中的文件创建内部版本时使用此参数。存储位置必须指定 S3 存储桶名称和键。该位置还必须指定一个角色 ARN,您设置该角色以允许 Amazon GameLift 访问 S3 存储桶。S3 存储桶和新的内部版本必须位于同一区域中。

必需:否

类型S3Location

Update requires: Replacement

Version

与该内部版本关联的版本信息。版本字符串不需要是唯一的。

必需:否

类型:字符串

最低1

最高1024

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回内部版本 ID ,例如 build-1111aaaa-22bb-33cc-44dd-5555eeee66ff

For more information about using the Ref function, see Ref.

示例

创建自定义游戏服务器内部版本

以下示例创建一个名为 MyGameServerBuild 的 GameLift 内部版本。此构建包位于通过 S3BucketS3Key 输入参数指定的 S3 存储桶中。该示例还创建 GameLift 代入的 AWS Identity and Access Management (IAM) 角色, 以便它有权下载构建包文件。

JSON

{ "Resources": { "IAMRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "cloudformation.amazonaws.com", "gamelift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "RoleName": "BuildIAMRole", "Policies": [ { "PolicyName": "gamelift-s3-access-policy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectMetadata", "s3:*Object*" ], "Resource": [ "arn:aws:s3:::MyBucketName/*" ] } ] } } ] } }, "BuildResource": { "Type": "AWS::GameLift::Build", "Properties": { "Name": "MyGameServerBuild", "Version": "v1.0", "OperatingSystem": "WINDOWS_2012", "StorageLocation": { "Bucket": "MyBucketName", "Key": "MyGameBuildFiles.zip", "RoleArn": { "Fn::GetAtt": [ "IAMRole", "Arn" ] } } } } } }

YAML

Resources: IAMRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: ["cloudformation.amazonaws.com", "gamelift.amazonaws.com"] Action: "sts:AssumeRole" RoleName: "BuildIAMRole" Policies: - PolicyName: gamelift-s3-access-policy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - "s3:GetObject" - "s3:GetObjectVersion" - "s3:GetObjectMetadata" - "s3:*Object*" Resource: - "arn:aws:s3:::MyBucketName/*" BuildResource: Type: AWS::GameLift::Build Properties: Name: MyGameServerBuild Version: v1.0 OperatingSystem: WINDOWS_2012 StorageLocation: Bucket: "MyBucketName" Key: "MyGameBuildFiles.zip" RoleArn: !GetAtt IAMRole.Arn

另请参阅