Note:

You are viewing the documentation for an older major version of the AWS CLI (version 1).

AWS CLI version 2, the latest major version of AWS CLI, is now stable and recommended for general use. To view this page for the AWS CLI version 2, click here. For more information see the AWS CLI version 2 installation instructions and migration guide.

[ aws . gamelift ]

terminate-game-session

Description

Ends a game session that's currently in progress. You can use this action to terminate any game session that isn't in TERMINATED or TERMINATING status. Terminating a game session is the most efficient way to free up a server process when it's hosting a game session that's in a bad state or not ending naturally. You can use this action to terminate a game session that's being hosted on any type of Amazon GameLift fleet compute, including computes for managed EC2, managed container, and Anywhere fleets.

There are two potential methods for terminating a game session:

  • With a graceful termination, the Amazon GameLift service prompts the server process to initiate its normal game session shutdown sequence. This sequence is implemented in the game server code and might involve a variety of actions to gracefully end a game session, such as notifying players, and stop the server process.
  • With a forceful termination, the Amazon GameLift service takes immediate action to terminate the game session by stopping the server process. Termination occurs without the normal game session shutdown sequence.
Request options
  • Request termination for a single game session. Provide the game session ID and the termination method.
Results

If successful, game session termination is initiated, which includes changing the game session status to TERMINATING . As a result of this action, and depending on the implementation of OnProcessTerminate() , the server process either becomes available to host a new game session, or it's recycled and a new server process started with availability to host a game session. The game session status is changed to TERMINATED , with a status reason that indicates the termination method used.

See also: AWS API Documentation

Synopsis

  terminate-game-session
--game-session-id <value>
--termination-mode <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]

Options

--game-session-id (string)

A unique identifier for the game session to be terminated. A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token> .

--termination-mode (string)

The method to use to terminate the game session. Available methods include:

  • TRIGGER_ON_PROCESS_TERMINATE – Sends an OnProcessTerminate() callback to the server process to initiate the normal game session shutdown sequence. At a minimum, the callback method must include a call to the server SDK action ProcessEnding() , which is how the server process signals that a game session is ending. If the server process doesn't call ProcessEnding() , this termination method won't be successful.
  • FORCE_TERMINATE – Takes action to stop the server process, using existing methods to control how server processes run on an Amazon GameLift managed compute.

Note

This method is not available for game sessions that are running on Anywhere fleets unless the fleet is deployed with the Amazon GameLift Agent. In this scenario, a force terminate request results in an invalid or bad request exception.

Possible values:

  • TRIGGER_ON_PROCESS_TERMINATE
  • FORCE_TERMINATE

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI 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.

--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. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

Global Options

--debug (boolean)

Turn on debug logging.

--endpoint-url (string)

Override command's default URL with the given URL.

--no-verify-ssl (boolean)

By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.

--no-paginate (boolean)

Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.

--output (string)

The formatting style for command output.

  • json
  • text
  • table

--query (string)

A JMESPath query to use in filtering the response data.

--profile (string)

Use a specific profile from your credential file.

--region (string)

The region to use. Overrides config/env settings.

--version (string)

Display the version of this tool.

--color (string)

Turn on/off color output.

  • on
  • off
  • auto

--no-sign-request (boolean)

Do not sign requests. Credentials will not be loaded if this argument is provided.

--ca-bundle (string)

The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.

--cli-read-timeout (int)

The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.

--cli-connect-timeout (int)

The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.

Output

GameSession -> (structure)

Properties describing a game session.

A game session in ACTIVE status can host players. When a game session ends, its status is set to TERMINATED .

Amazon GameLift retains a game session resource for 30 days after the game session ends. You can reuse idempotency token values after this time. Game session logs are retained for 14 days.

GameSessionId -> (string)

A unique identifier for the game session. A game session ARN has the following format: arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token> .

Name -> (string)

A descriptive label that is associated with a game session. Session names do not need to be unique.

FleetId -> (string)

A unique identifier for the fleet that the game session is running on.

FleetArn -> (string)

The Amazon Resource Name (ARN ) associated with the GameLift fleet that this game session is running on.

CreationTime -> (timestamp)

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

TerminationTime -> (timestamp)

A time stamp indicating when this data object was terminated. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057" ).

CurrentPlayerSessionCount -> (integer)

Number of players currently in the game session.

MaximumPlayerSessionCount -> (integer)

The maximum number of players that can be connected simultaneously to the game session.

Status -> (string)

Current status of the game session. A game session must have an ACTIVE status to have player sessions.

StatusReason -> (string)

Provides additional information about game session status.

  • INTERRUPTED -- The game session was hosted on an EC2 Spot instance that was reclaimed, causing the active game session to be stopped.
  • TRIGGERED_ON_PROCESS_TERMINATE – The game session was stopped by calling TerminateGameSession with the termination mode TRIGGER_ON_PROCESS_TERMINATE .
  • FORCE_TERMINATED – The game session was stopped by calling TerminateGameSession with the termination mode FORCE_TERMINATE .

GameProperties -> (list)

A set of key-value pairs that can store custom data in a game session. For example: {"Key": "difficulty", "Value": "novice"} .

(structure)

This key-value pair can store custom data about a game session. For example, you might use a GameProperty to track a game session's map, level of difficulty, or remaining time. The difficulty level could be specified like this: {"Key": "difficulty", "Value":"Novice"} .

You can set game properties when creating a game session. You can also modify game properties of an active game session. When searching for game sessions, you can filter on game property keys and values. You can't delete game properties from a game session.

For examples of working with game properties, see Create a game session with properties .

Key -> (string)

The game property identifier.

Value -> (string)

The game property value.

IpAddress -> (string)

The IP address of the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

DnsName -> (string)

The DNS identifier assigned to the instance that is running the game session. Values have the following format:

  • TLS-enabled fleets: <unique identifier>.<region identifier>.amazongamelift.com .
  • Non-TLS-enabled fleets: ec2-<unique identifier>.compute.amazonaws.com . (See Amazon EC2 Instance IP Addressing .)

When connecting to a game session that is running on a TLS-enabled fleet, you must use the DNS name, not the IP address.

Port -> (integer)

The port number for the game session. To connect to a Amazon GameLift game server, an app needs both the IP address and port number.

PlayerSessionCreationPolicy -> (string)

Indicates whether the game session is accepting new players.

CreatorId -> (string)

A unique identifier for a player. This ID is used to enforce a resource protection policy (if one exists), that limits the number of game sessions a player can create.

GameSessionData -> (string)

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session. For more information, see Start a game session .

MatchmakerData -> (string)

Information about the matchmaking process that resulted in the game session, if matchmaking was used. Data is in JSON syntax, formatted as a string. Information includes the matchmaker ID as well as player attributes and team assignments. For more details on matchmaker data, see Match Data . Matchmaker data is updated whenever new players are added during a successful backfill (see StartMatchBackfill ).

Location -> (string)

The fleet location where the game session is running. This value might specify the fleet's home Region or a remote location. Location is expressed as an Amazon Web Services Region code such as us-west-2 .