registerGameServer method

Future<RegisterGameServerOutput> registerGameServer({
  1. required String gameServerGroupName,
  2. required String gameServerId,
  3. required String instanceId,
  4. String? connectionInfo,
  5. String? gameServerData,
})

This API works with the following fleet types: EC2 (FleetIQ)

Creates a new game server resource and notifies Amazon GameLift Servers FleetIQ that the game server is ready to host gameplay and players. This operation is called by a game server process that is running on an instance in a game server group. Registering game servers enables Amazon GameLift Servers FleetIQ to track available game servers and enables game clients and services to claim a game server for a new game session.

To register a game server, identify the game server group and instance where the game server is running, and provide a unique identifier for the game server. You can also include connection and game server data.

Once a game server is successfully registered, it is put in status AVAILABLE. A request to register a game server may fail if the instance it is running on is in the process of shutting down as part of instance balancing or scale-down activity.

Learn more

Amazon GameLift Servers FleetIQ Guide

May throw ConflictException. May throw InternalServiceException. May throw InvalidRequestException. May throw LimitExceededException. May throw UnauthorizedException.

Parameter gameServerGroupName : A unique identifier for the game server group where the game server is running.

Parameter gameServerId : A custom string that uniquely identifies the game server to register. Game server IDs are developer-defined and must be unique across all game server groups in your Amazon Web Services account.

Parameter instanceId : The unique identifier for the instance where the game server is running. This ID is available in the instance metadata. EC2 instance IDs use a 17-character format, for example: i-1234567890abcdef0.

Parameter connectionInfo : Information that is needed to make inbound client connections to the game server. This might include the IP address and port, DNS name, and other information.

Parameter gameServerData : A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers.

Implementation

Future<RegisterGameServerOutput> registerGameServer({
  required String gameServerGroupName,
  required String gameServerId,
  required String instanceId,
  String? connectionInfo,
  String? gameServerData,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'GameLift.RegisterGameServer'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'GameServerGroupName': gameServerGroupName,
      'GameServerId': gameServerId,
      'InstanceId': instanceId,
      if (connectionInfo != null) 'ConnectionInfo': connectionInfo,
      if (gameServerData != null) 'GameServerData': gameServerData,
    },
  );

  return RegisterGameServerOutput.fromJson(jsonResponse.body);
}