Skip to content
v2.274.0

Experimental

@aws-cdk/aws-gamelift-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.

GameSessionQueue L2 construct ​

The GameSessionQueue resource creates a placement queue that processes requests for new game sessions.

A queue uses FleetIQ algorithms to determine the best placement locations and find an available game server, then prompts the game server to start a new game session. Queues can have destinations (GameLift fleets or gameSessionQueuees), which determine where the queue can place new game sessions. A queue can have destinations with varied fleet type (Spot and On-Demand), instance type, and AWS Region.

Example ​

ts
declare const fleet: gamelift.BuildFleet;
declare const alias: gamelift.Alias;

const queue = new gamelift.GameSessionQueue(this, 'GameSessionQueue', {
  gameSessionQueueName: 'my-queue-name',
  destinations: [fleet]
});
queue.addDestination(alias);
python
# fleet: gamelift.BuildFleet
# alias: gamelift.Alias


queue = gamelift.GameSessionQueue(self, "GameSessionQueue",
    game_session_queue_name="my-queue-name",
    destinations=[fleet]
)
queue.add_destination(alias)
java
BuildFleet fleet;
Alias alias;


GameSessionQueue queue = GameSessionQueue.Builder.create(this, "GameSessionQueue")
        .gameSessionQueueName("my-queue-name")
        .destinations(List.of(fleet))
        .build();
queue.addDestination(alias);
csharp
// Install: dotnet add package Amazon.CDK.AWS.GameLift.Alpha
BuildFleet fleet;
Alias alias;


var queue = new GameSessionQueue(this, "GameSessionQueue", new GameSessionQueueProps {
    GameSessionQueueName = "my-queue-name",
    Destinations = new [] { fleet }
});
queue.AddDestination(alias);
go
// Install: go get github.com/aws/aws-cdk-go/awscdkgameliftalpha/v2
var fleet BuildFleet
var alias Alias


queue := gamelift.NewGameSessionQueue(this, jsii.String("GameSessionQueue"), &GameSessionQueueProps{
	GameSessionQueueName: jsii.String("my-queue-name"),
	Destinations: []IGameSessionQueueDestination{
		fleet,
	},
})
queue.AddDestination(alias)

Initializer ​

ts
new GameSessionQueue(scope: Construct, id: string, props: GameSessionQueueProps)
python
GameSessionQueue(scope: Construct, id: str, props: GameSessionQueueProps)
java
new GameSessionQueue(Construct scope, String id, GameSessionQueueProps props)
csharp
new GameSessionQueue(Construct scope, string id, GameSessionQueueProps props)
go
NewGameSessionQueue(Scope Construct, Id *string, Props GameSessionQueueProps)

Construct Props ​

allowedLocationsoptionalstring[]allowed_locationsoptionaltyping.List[str]allowedLocationsoptionalList<String>AllowedLocationsoptionalstring[]AllowedLocationsoptional*[]*string#
A list of locations where a queue is allowed to place new game sessions.

Default: game sessions can be placed in any queue location

Locations are specified in the form of AWS Region codes, such as us-west-2.

For queues that have multi-location fleets, you can use a filter configuration allow placement with some, but not all of these locations.

customEventDataoptionalstringcustom_event_dataoptionalstrcustomEventDataoptionalStringCustomEventDataoptionalstringCustomEventDataoptional*string#
Information to be added to all events that are related to this game session queue.

Default: no customer event data

destinationsIGameSessionQueueDestination[]destinationstyping.List[IGameSessionQueueDestination]destinationsList<IGameSessionQueueDestination>DestinationsIGameSessionQueueDestination[]Destinations*[]IGameSessionQueueDestinationrequired#
A list of fleets and/or fleet alias that can be used to fulfill game session placement requests in the queue.

Destinations are listed in order of placement preference.

gameSessionQueueNamestringgame_session_queue_namestrgameSessionQueueNameStringGameSessionQueueNamestringGameSessionQueueName*stringrequired#
Name of this gameSessionQueue.
notificationTargetoptionalITopicnotification_targetoptionalITopicnotificationTargetoptionalITopicNotificationTargetoptionalITopicNotificationTargetoptionalITopic#
An SNS topic is set up to receive game session placement notifications.

Default: no notification

playerLatencyPoliciesoptionalPlayerLatencyPolicy[]player_latency_policiesoptionaltyping.List[PlayerLatencyPolicy]playerLatencyPoliciesoptionalList<PlayerLatencyPolicy>PlayerLatencyPoliciesoptionalPlayerLatencyPolicy[]PlayerLatencyPoliciesoptional*[]PlayerLatencyPolicy#
A set of policies that act as a sliding cap on player latency.

Default: no player latency policy

notes

FleetIQ works to deliver low latency for most players in a game session. These policies ensure that no individual player can be placed into a game with unreasonably high latency. Use multiple policies to gradually relax latency requirements a step at a time. Multiple policies are applied based on their maximum allowed latency, starting with the lowest value.

priorityConfigurationoptionalPriorityConfigurationpriority_configurationoptionalPriorityConfigurationpriorityConfigurationoptionalPriorityConfigurationPriorityConfigurationoptionalPriorityConfigurationPriorityConfigurationoptionalPriorityConfiguration#
Custom settings to use when prioritizing destinations and locations for game session placements.

Default: no priority configuration

This configuration replaces the FleetIQ default prioritization process.

Priority types that are not explicitly named will be automatically applied at the end of the prioritization process.

timeoutoptionalDurationtimeoutoptionalDurationtimeoutoptionalDurationTimeoutoptionalDurationTimeoutoptionalDuration#
The maximum time, that a new game session placement request remains in the queue.

Default: 50 seconds

When a request exceeds this time, the game session placement changes to a TIMED_OUT status.

Properties ​

The environment this resource belongs to.
notes

For resources that are created and managed in a Stack (those created by creating new class instances like new Role(), new Bucket(), etc.), this is always the same as the environment of the stack they belong to.

For referenced resources (those obtained from referencing methods like Role.fromRoleArn(), Bucket.fromBucketName(), etc.), they might be different than the stack they were imported into.

gameSessionQueueArnstringgame_session_queue_arnstrgameSessionQueueArnStringGameSessionQueueArnstringGameSessionQueueArn*stringrequired#
The ARN of the gameSessionQueue.
gameSessionQueueNamestringgame_session_queue_namestrgameSessionQueueNameStringGameSessionQueueNamestringGameSessionQueueName*stringrequired#
The name of the gameSessionQueue.
nodeNodenodeNodenodeNodeNodeNodeNodeNoderequired#
The tree node.
PROPERTY_INJECTION_IDstringproperty_injection_idstrPROPERTY_INJECTION_IDStringPROPERTY_INJECTION_IDstringPROPERTY_INJECTION_ID*stringrequiredstatic#
Uniquely identifies this class.
stackStackstackStackstackStackStackStackStackStackrequired#
The stack in which this resource is defined.

Methods ​

addDestination(destination: IGameSessionQueueDestination): voiddef add_destination(self, destination: IGameSessionQueueDestination) -> Nonepublic void addDestination(IGameSessionQueueDestination destination)public void AddDestination(IGameSessionQueueDestination destination)func AddDestination(Destination IGameSessionQueueDestination)#
Adds a destination to fulfill requests for new game sessions.
1 parameter

Parameters

  • destinationdestinationdestinationdestinationDestination — A destination to add.
applyCrossStackReferenceStrength(strength: ReferenceStrength): voiddef apply_cross_stack_reference_strength(self, strength: ReferenceStrength) -> Nonepublic void applyCrossStackReferenceStrength(ReferenceStrength strength)public void ApplyCrossStackReferenceStrength(ReferenceStrength strength)func ApplyCrossStackReferenceStrength(Strength ReferenceStrength)#
Override the cross-stack reference strength for this resource.
notes · 1 parameter

When set, any cross-stack reference to this resource will use the specified mechanism instead of the global default determined by the @aws-cdk/core:defaultCrossStackReferences context key. This is useful for selectively weakening specific references to avoid the "deadly embrace" problem without changing the app-wide default.

Parameters

  • strengthstrengthstrengthstrengthStrength — - The reference strength to use for this resource.
applyRemovalPolicy(policy: RemovalPolicy): voiddef apply_removal_policy(self, policy: RemovalPolicy) -> Nonepublic void applyRemovalPolicy(RemovalPolicy policy)public void ApplyRemovalPolicy(RemovalPolicy policy)func ApplyRemovalPolicy(Policy RemovalPolicy)#
Apply the given removal policy to this resource.
notes

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

fromGameSessionQueueArn(scope: Construct, id: string, gameSessionQueueArn: string): IGameSessionQueue@staticmethod def from_game_session_queue_arn(scope: Construct, id: str, game_session_queue_arn: str) -> IGameSessionQueuepublic static IGameSessionQueue fromGameSessionQueueArn(Construct scope, String id, String gameSessionQueueArn)public static IGameSessionQueue FromGameSessionQueueArn(Construct scope, string id, string gameSessionQueueArn)func FromGameSessionQueueArn(Scope Construct, Id *string, GameSessionQueueArn *string) IGameSessionQueuestatic#
Import an existing gameSessionQueue from its ARN.
fromGameSessionQueueAttributes(scope: Construct, id: string, attrs: GameSessionQueueAttributes): IGameSessionQueue@staticmethod def from_game_session_queue_attributes(scope: Construct, id: str, attrs: GameSessionQueueAttributes) -> IGameSessionQueuepublic static IGameSessionQueue fromGameSessionQueueAttributes(Construct scope, String id, GameSessionQueueAttributes attrs)public static IGameSessionQueue FromGameSessionQueueAttributes(Construct scope, string id, GameSessionQueueAttributes attrs)func FromGameSessionQueueAttributes(Scope Construct, Id *string, Attrs GameSessionQueueAttributes) IGameSessionQueuestatic#
Import an existing gameSessionQueue from its attributes.
fromGameSessionQueueName(scope: Construct, id: string, gameSessionQueueName: string): IGameSessionQueue@staticmethod def from_game_session_queue_name(scope: Construct, id: str, game_session_queue_name: str) -> IGameSessionQueuepublic static IGameSessionQueue fromGameSessionQueueName(Construct scope, String id, String gameSessionQueueName)public static IGameSessionQueue FromGameSessionQueueName(Construct scope, string id, string gameSessionQueueName)func FromGameSessionQueueName(Scope Construct, Id *string, GameSessionQueueName *string) IGameSessionQueuestatic#
Import an existing gameSessionQueue from its name.
isConstruct(x: any): boolean@staticmethod def is_construct(x: Any) -> boolpublic static Boolean isConstruct(Object x)public static bool IsConstruct(object x)func IsConstruct(X interface{}) *boolstatic#
Checks if `x` is a construct.
notes · 1 parameter · returns

Use this method instead of instanceof to properly detect Construct instances, even when the construct library is symlinked.

Explanation: in JavaScript, multiple copies of the constructs library on disk are seen as independent, completely different libraries. As a consequence, the class Construct in each copy of the constructs library is seen as a different class, and an instance of one class will not test as instanceof the other class. npm install will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the constructs library can be accidentally installed, and instanceof will behave unpredictably. It is safest to avoid using instanceof, and using this type-testing method instead.

Parameters

  • xxxxX — Any object.

Returns: true if x is an object created from a class which extends Construct.

isOwnedResource(construct: IConstruct): boolean@staticmethod def is_owned_resource(construct: IConstruct) -> boolpublic static Boolean isOwnedResource(IConstruct construct)public static bool IsOwnedResource(IConstruct construct)func IsOwnedResource(Construct IConstruct) *boolstatic#
Returns true if the construct was created by CDK, and false otherwise.
isResource(construct: IConstruct): boolean@staticmethod def is_resource(construct: IConstruct) -> boolpublic static Boolean isResource(IConstruct construct)public static bool IsResource(IConstruct construct)func IsResource(Construct IConstruct) *boolstatic#
Check whether the given construct is a Resource.
metric(metricName: string, props?: MetricOptions): Metricdef metric(self, metric_name: str, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metric(String metricName, MetricOptions props)public Metric Metric(string metricName, MetricOptions? props = null)func Metric(MetricName *string, Props MetricOptions) Metric#
Return the given named metric for this fleet.
metricAverageWaitTime(props?: MetricOptions): Metricdef metric_average_wait_time(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricAverageWaitTime(MetricOptions props)public Metric MetricAverageWaitTime(MetricOptions? props = null)func MetricAverageWaitTime(Props MetricOptions) Metric#
Average amount of time that game session placement requests in the queue with status PENDING have been waiting to be fulfilled.
metricPlacementsCanceled(props?: MetricOptions): Metricdef metric_placements_canceled(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricPlacementsCanceled(MetricOptions props)public Metric MetricPlacementsCanceled(MetricOptions? props = null)func MetricPlacementsCanceled(Props MetricOptions) Metric#
Game session placement requests that were canceled before timing out since the last report.
metricPlacementsFailed(props?: MetricOptions): Metricdef metric_placements_failed(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricPlacementsFailed(MetricOptions props)public Metric MetricPlacementsFailed(MetricOptions? props = null)func MetricPlacementsFailed(Props MetricOptions) Metric#
Game session placement requests that failed for any reason since the last report.
metricPlacementsStarted(props?: MetricOptions): Metricdef metric_placements_started(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricPlacementsStarted(MetricOptions props)public Metric MetricPlacementsStarted(MetricOptions? props = null)func MetricPlacementsStarted(Props MetricOptions) Metric#
New game session placement requests that were added to the queue since the last report.
metricPlacementsSucceeded(props?: MetricOptions): Metricdef metric_placements_succeeded(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricPlacementsSucceeded(MetricOptions props)public Metric MetricPlacementsSucceeded(MetricOptions? props = null)func MetricPlacementsSucceeded(Props MetricOptions) Metric#
Game session placement requests that resulted in a new game session since the last report.
metricPlacementsTimedOut(props?: MetricOptions): Metricdef metric_placements_timed_out(self, props: typing.Optional[MetricOptions] = None) -> Metricpublic Metric metricPlacementsTimedOut(MetricOptions props)public Metric MetricPlacementsTimedOut(MetricOptions? props = null)func MetricPlacementsTimedOut(Props MetricOptions) Metric#
Game session placement requests that reached the queue's timeout limit without being fulfilled since the last report.
toString(): stringdef to_string(self, ) -> strpublic String toString()public string ToString()func ToString() *string#
Returns a string representation of this construct.
with(...mixins: IMixin[]): IConstructdef with(self, mixins: IMixin) -> IConstructpublic IConstruct with(IMixin mixins)public IConstruct With(IMixin mixins)func With(Mixins IMixin) IConstruct#
Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the start of the call, so constructs added by a mixin will not be visited. Use multiple with() calls if subsequent mixins should apply to added constructs.