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.
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
-
Create GameLift Resources Using AWS CloudFormation in the Amazon GameLift Developer Guide
-
Upload Script Files in Amazon S3 in the Amazon GameLift Developer Guide
-
CreateScript in the Amazon GameLift API Reference