registerGameServer method
This operation is used with the Amazon GameLift FleetIQ solution and game server groups.
Creates a new game server resource and notifies GameLift 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 GameLift 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. When a game client or service requests a game server by calling ClaimGameServer, this information is returned in the response.
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
Related operations
- RegisterGameServer
- ListGameServers
- ClaimGameServer
- DescribeGameServer
- UpdateGameServer
- DeregisterGameServer
May throw InvalidRequestException. May throw ConflictException. May throw UnauthorizedException. May throw InternalServiceException. May throw LimitExceededException.
Parameter gameServerGroupName :
A unique identifier for the game server group where the game server is
running. Use either the GameServerGroup name or ARN value.
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 AWS 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 using ListGameServers or
ClaimGameServer.
Implementation
Future<RegisterGameServerOutput> registerGameServer({
required String gameServerGroupName,
required String gameServerId,
required String instanceId,
String? connectionInfo,
String? gameServerData,
}) async {
ArgumentError.checkNotNull(gameServerGroupName, 'gameServerGroupName');
_s.validateStringLength(
'gameServerGroupName',
gameServerGroupName,
1,
256,
isRequired: true,
);
ArgumentError.checkNotNull(gameServerId, 'gameServerId');
_s.validateStringLength(
'gameServerId',
gameServerId,
3,
128,
isRequired: true,
);
ArgumentError.checkNotNull(instanceId, 'instanceId');
_s.validateStringLength(
'instanceId',
instanceId,
19,
19,
isRequired: true,
);
_s.validateStringLength(
'connectionInfo',
connectionInfo,
1,
512,
);
_s.validateStringLength(
'gameServerData',
gameServerData,
1,
1024,
);
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);
}