AWS CloudFormation
User Guide (Version )

AWS::GameLift::Script

The AWS::GameLift::Script resource creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

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

YAML

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

Properties

Name

A descriptive label that is associated with a script. Script names do not need to be unique.

Required: No

Type: String

Minimum: 1

Maximum: 1024

Update requires: No interruption

StorageLocation

The location in Amazon S3 where build or script files are stored for access by Amazon GameLift.

Required: Yes

Type: S3Location

Update requires: No interruption

Version

The version that is associated with a build or script. Version strings do not need to be unique.

Required: No

Type: String

Minimum: 1

Maximum: 1024

Update requires: No interruption

Return Values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the ScriptId, such as script-1111aaaa-22bb-33cc-44dd-5555eeee66ff.

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

Fn::GetAtt

The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.

Arn

The unique Amazon Resource Name (ARN) for the script.

Id

A unique identifier for a Realtime script.

Examples

Create a Realtime Servers Script

The following example creates a GameLift script named MyRealtimeScript. The zipped script files are located in an S3 bucket, specified by the S3Bucket and S3Key input parameters. The example also creates the AWS Identity and Access Management (IAM) role that GameLift assumes so that it has permissions to download the script files.

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

See Also