UpdateFleetCapacity - Amazon GameLift Service

UpdateFleetCapacity

Updates capacity settings for a fleet. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Fleet capacity determines the number of game sessions and players that can be hosted based on the fleet configuration. Use this operation to set the following fleet capacity properties:

  • Minimum/maximum size: Set hard limits on fleet capacity. GameLift cannot set the fleet's capacity to a value outside of this range, whether the capacity is changed manually or through automatic scaling.

  • Desired capacity: Manually set the number of EC2 instances to be maintained in a fleet location. Before changing a fleet's desired capacity, you may want to call DescribeEC2InstanceLimits to get the maximum capacity of the fleet's EC2 instance type. Alternatively, consider using automatic scaling to adjust capacity based on player demand.

This operation can be used in the following ways:

  • To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the Location parameter. The fleet must be in ACTIVE status.

  • To update capacity for a fleet's remote location, include the Location parameter set to the location to be updated. The location must be in ACTIVE status.

If successful, capacity settings are updated immediately. In response a change in desired capacity, GameLift initiates steps to start new instances or terminate existing instances in the requested fleet location. This continues until the location's active instance count matches the new desired instance count. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. If the requested desired instance count is higher than the instance type's limit, the LimitExceeded exception occurs.

Learn more

Scaling fleet capacity

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

Request Syntax

{ "DesiredInstances": number, "FleetId": "string", "Location": "string", "MaxSize": number, "MinSize": number }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

Note

In the following list, the required parameters are described first.

FleetId

A unique identifier for the fleet to update capacity settings for. You can use either the fleet ID or ARN value.

Type: String

Pattern: ^fleet-\S+|^arn:.*:fleet\/fleet-\S+

Required: Yes

DesiredInstances

The number of EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits.

Type: Integer

Valid Range: Minimum value of 0.

Required: No

Location

The name of a remote location to update fleet capacity settings for, in the form of an AWS Region code such as us-west-2.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: ^[a-z]+(-([a-z]+|\d))*

Required: No

MaxSize

The maximum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 1.

Type: Integer

Valid Range: Minimum value of 0.

Required: No

MinSize

The minimum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 0.

Type: Integer

Valid Range: Minimum value of 0.

Required: No

Response Syntax

{ "FleetArn": "string", "FleetId": "string", "Location": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

FleetArn

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

Type: String

Pattern: ^arn:.*:fleet\/fleet-\S+

FleetId

A unique identifier for the fleet that was updated.

Type: String

Pattern: ^fleet-\S+

Location

The remote location being updated, expressed as an AWS Region code, such as us-west-2.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: ^[a-z]+(-([a-z]+|\d))*

Errors

For information about the errors that are common to all actions, see Common Errors.

ConflictException

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.

HTTP Status Code: 400

InternalServiceException

The service encountered an unrecoverable internal failure while processing the request. Clients can retry such requests immediately or after a waiting period.

HTTP Status Code: 500

InvalidFleetStatusException

The requested operation would cause a conflict with the current state of a resource associated with the request and/or the fleet. Resolve the conflict before retrying.

HTTP Status Code: 400

InvalidRequestException

One or more parameter values in the request are invalid. Correct the invalid parameter values before retrying.

HTTP Status Code: 400

LimitExceededException

The requested operation would cause the resource to exceed the allowed service limit. Resolve the issue before retrying.

HTTP Status Code: 400

NotFoundException

A service resource associated with the request could not be found. Clients should not retry such requests.

HTTP Status Code: 400

UnauthorizedException

The client failed authentication. Clients should not retry such requests.

HTTP Status Code: 400

Examples

Increase fleet capacity

This example requests an increase in fleet capacity and raises the maximum allowed instances to accommodate the request. Because no location is specified, the update is applied to the fleet's home Region (where the fleet was created), which is us-west-2. Note that a fleet's home Region is always identified in the fleet ARN.

HTTP requests are authenticated using an AWS Signature Version 4 signature in the Authorization header field.

Sample Request

{ "FleetId": "arn:aws:gamelift:us-west-2::fleet/fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "DesiredInstances": 10, "MaxSize": 10 }

Sample Response

{ "FleetArn":"arn:aws:gamelift:us-west-2::fleet/fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "FleetId": "fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "Location": "us-west-2" }

Update capacity settings for a fleet's remote location

This example adjusts the minimum/maximum allowed instances for one remote location in a multi-location fleet. For fleets that use auto-scaling, allowed instance settings define the scaling range for a fleet location. In this example, the updates are being applied to the remote location sa-east-1.

HTTP requests are authenticated using an AWS Signature Version 4 signature in the Authorization header field.

Sample Request

{ "FleetId": "arn:aws:gamelift:us-west-2::fleet/fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "Location": "sa-east-1", "MinSize": 10, "MaxSize": 100 }

Sample Response

{ "FleetArn":"arn:aws:gamelift:us-west-2::fleet/fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "FleetId": "fleet-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "Location": "sa-east-1" }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: