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

AWS::GameLift::Script

AWS::GameLift::Script 资源为实时服务器脚本创建新的脚本记录。实时脚本是 JavaScript,它为游戏提供配置设置和可选的自定义游戏逻辑。在创建实时服务器队列以托管游戏会话时,将部署该脚本。脚本逻辑是在活动游戏会话期间执行的。

语法

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

JSON

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

YAML

Type: AWS::GameLift::Script Properties: Name: String StorageLocation: S3Location Version: String

属性

Name

与脚本关联的描述性标签。脚本名称不需要是唯一的。

必需:否

类型:字符串

最低1

最高1024

Update requires: No interruption

StorageLocation

在 Amazon S3 中存储内部版本文件或脚本文件以供 Amazon GameLift 访问的位置。

必需:是

类型S3Location

Update requires: No interruption

Version

与内部版本或脚本关联的版本。版本字符串不需要是唯一的。

必需:否

类型:字符串

最低1

最高1024

Update requires: No interruption

返回值

Ref

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

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

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

脚本的唯一 Amazon 资源名称 (ARN)。

Id

实时脚本的唯一标识符。

示例

创建实时服务器脚本

以下示例创建一个名为 MyRealtimeScript 的 GameLift 脚本。压缩的脚本文件位于 S3 存储桶中,由 S3BucketS3Key 输入参数指定。该示例还创建 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": "ScriptIAMRole", "Policies": [ { "PolicyName": "ScriptResourceIAMPolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectMetadata", "s3:*Object*" ], "Resource": [ "*" ] } ] } } ] } }, "ScriptResource": { "Type": "AWS::GameLift::Script", "Properties": { "Name": "MyRealtimeScript", "Version": "v1.0", "StorageLocation": { "Bucket": "MyBucketName", "Key": "MyScriptFiles.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: "ScriptIAMRole" Policies: - PolicyName: ScriptResourceIAMPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - "s3:GetObject" - "s3:GetObjectVersion" - "s3:GetObjectMetadata" - "s3:*Object*" Resource: - "*" ScriptResource: Type: AWS::GameLift::Script Properties: Name: MyRealtimeScript Version: v1.0 StorageLocation: Bucket: "MyBucketName" Key: "MyScriptFiles.zip" RoleArn: !GetAtt IAMRole.Arn

另请参阅