[ aws . gamelift ]

create-build

Description

Creates a new Amazon GameLift build resource for your game server binary files. Game server binaries must be combined into a zip file for use with Amazon GameLift.

Warning

When setting up a new game build for GameLift, we recommend using the AWS CLI command ** upload-build ** . This helper command combines two tasks: (1) it uploads your build files from a file directory to a GameLift Amazon S3 location, and (2) it creates a new build resource.

The CreateBuild operation can used in the following scenarios:

  • To create a new game build with build files that are in an S3 location under an AWS account that you control. To use this option, you must first give Amazon GameLift access to the S3 bucket. With permissions in place, call CreateBuild and specify a build name, operating system, and the S3 storage location of your game build.

  • To directly upload your build files to a GameLift S3 location. To use this option, first call CreateBuild and specify a build name and operating system. This operation creates a new build resource and also returns an S3 location with temporary access credentials. Use the credentials to manually upload your build files to the specified S3 location. For more information, see Uploading Objects in the Amazon S3 Developer Guide . Build files can be uploaded to the GameLift S3 location once only; that can’t be updated.

If successful, this operation creates a new build resource with a unique build ID and places it in INITIALIZED status. A build must be in READY status before you can create fleets with it.

  • CreateBuild

  • ListBuilds

  • DescribeBuild

  • UpdateBuild

  • DeleteBuild

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-build
[--name <value>]
[--storage-location <value>]
[--operating-system <value>]
[--tags <value>]
[--build-version <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--cli-auto-prompt <value>]

Options

--name (string)

A descriptive label that is associated with a build. Build names do not need to be unique. You can use UpdateBuild to change this value later.

--storage-location (structure)

Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an S3 bucket that you own. The storage location must specify an S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your S3 bucket. The S3 bucket and your new build must be in the same Region.

Bucket -> (string)

An S3 bucket identifier. This is the name of the S3 bucket.

Note

GameLift currently does not support uploading from S3 buckets with names that contain a dot (.).

Key -> (string)

The name of the zip file that contains the build files or script files.

RoleArn -> (string)

The Amazon Resource Name (ARN ) for an IAM role that allows Amazon GameLift to access the S3 bucket.

ObjectVersion -> (string)

The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved.

Shorthand Syntax:

Bucket=string,Key=string,RoleArn=string,ObjectVersion=string

JSON Syntax:

{
  "Bucket": "string",
  "Key": "string",
  "RoleArn": "string",
  "ObjectVersion": "string"
}

--operating-system (string)

The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.

Possible values:

  • WINDOWS_2012

  • AMAZON_LINUX

  • AMAZON_LINUX_2

--tags (list)

A list of labels to assign to the new build resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see Tagging AWS Resources in the AWS General Reference . Once the resource is created, you can use TagResource , UntagResource , and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.

(structure)

A label that can be assigned to a GameLift resource.

Learn more

Tagging AWS Resources in the AWS General Reference

AWS Tagging Strategies

Related operations

  • TagResource

  • UntagResource

  • ListTagsForResource

Key -> (string)

The key for a developer-defined key:value pair for tagging an AWS resource.

Value -> (string)

The value for a developer-defined key:value pair for tagging an AWS resource.

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

[
  {
    "Key": "string",
    "Value": "string"
  }
  ...
]

--build-version (string)

Version information that is associated with a build or script. Version strings do not need to be unique. You can use UpdateBuild to change this value later.

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

--cli-auto-prompt (boolean) Automatically prompt for CLI input parameters.

See ‘aws help’ for descriptions of global parameters.

Examples

Example1: To create a game build from files in an S3 bucket

The following create-build example creates a custom game build resource. It uses zipped files that are stored in an S3 location in an AWS account that you control. This example assumes that you’ve already created an IAM role that gives Amazon GameLift permission to access the S3 location. Since the request does not specify an operating system, the new build resource defaults to WINDOWS_2012.

aws gamelift create-build \
    --storage-location file://storage-loc.json \
    --name MegaFrogRaceServer.NA \
    --build-version 12345.678

Contents of storage-loc.json:

{
    "Bucket":"MegaFrogRaceServer_NA_build_files"
    "Key":"MegaFrogRaceServer_build_123.zip"
    "RoleArn":"arn:aws:iam::123456789012:role/gamelift"
}

Output:

{
    "Build": {
        "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "CreationTime": 1496708916.18,
        "Name": "MegaFrogRaceServer.NA",
        "OperatingSystem": "WINDOWS_2012",
        "SizeOnDisk": 479303,
        "Status": "INITIALIZED",
        "Version": "12345.678"
    },
    "StorageLocation": {
        "Bucket": "MegaFrogRaceServer_NA_build_files",
        "Key": "MegaFrogRaceServer_build_123.zip"
    }
}

Example2: To create a game build resource for manually uploading files to GameLift

The following create-build example creates a new build resource. It also gets a storage location and temporary credentials that allow you to manually upload your game build to the GameLift location in Amazon S3. Once you’ve successfully uploaded your build, the GameLift service validates the build and updates the new build’s status.

aws gamelift create-build \
    --name MegaFrogRaceServer.NA \
    --build-version 12345.678 \
    --operating-system AMAZON_LINUX

Output:

{
    "Build": {
        "BuildArn": "arn:aws:gamelift:us-west-2::build/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "BuildId": "build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "CreationTime": 1496708916.18,
        "Name": "MegaFrogRaceServer.NA",
        "OperatingSystem": "AMAZON_LINUX",
        "SizeOnDisk": 0,
        "Status": "INITIALIZED",
        "Version": "12345.678"
    },
    "StorageLocation": {
        "Bucket": "gamelift-builds-us-west-2",
        "Key": "123456789012/build-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "UploadCredentials": {
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "SessionToken": "AgoGb3JpZ2luENz...EXAMPLETOKEN=="
    }
}

For more information, see Upload a Custom Server Build to GameLift in the Amazon GameLift Developer Guide.

Output

Build -> (structure)

The newly created build resource, including a unique build IDs and status.

BuildId -> (string)

A unique identifier for a build.

BuildArn -> (string)

Amazon Resource Name (ARN ) that is assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. In a GameLift build ARN, the resource ID matches the BuildId value.

Name -> (string)

A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using CreateBuild or UpdateBuild .

Version -> (string)

Version information that is associated with a build or script. Version strings do not need to be unique. This value can be set using CreateBuild or UpdateBuild .

Status -> (string)

Current status of the build.

Possible build statuses include the following:

  • INITIALIZED – A new build has been defined, but no files have been uploaded. You cannot create fleets for builds that are in this status. When a build is successfully created, the build status is set to this value.

  • READY – The game build has been successfully uploaded. You can now create new fleets for this build.

  • FAILED – The game build upload failed. You cannot create new fleets for this build.

SizeOnDisk -> (long)

File size of the uploaded game build, expressed in bytes. When the build status is INITIALIZED , this value is 0.

OperatingSystem -> (string)

Operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build.

CreationTime -> (timestamp)

Time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example “1469498468.057”).

UploadCredentials -> (structure)

This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call RequestUploadCredentials .

AccessKeyId -> (string)

Temporary key allowing access to the Amazon GameLift S3 account.

SecretAccessKey -> (string)

Temporary secret key allowing access to the Amazon GameLift S3 account.

SessionToken -> (string)

Token used to associate a specific build ID with the files uploaded using these credentials.

StorageLocation -> (structure)

Amazon S3 location for your game build file, including bucket name and key.

Bucket -> (string)

An S3 bucket identifier. This is the name of the S3 bucket.

Note

GameLift currently does not support uploading from S3 buckets with names that contain a dot (.).

Key -> (string)

The name of the zip file that contains the build files or script files.

RoleArn -> (string)

The Amazon Resource Name (ARN ) for an IAM role that allows Amazon GameLift to access the S3 bucket.

ObjectVersion -> (string)

The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved.