updateGameServer method
This API works with the following fleet types: EC2 (FleetIQ)
Updates information about a registered game server to help Amazon GameLift Servers FleetIQ track game server availability. This operation is called by a game server process that is running on an instance in a game server group.
Use this operation to update the following types of game server information. You can make all three types of updates in the same request:
-
To update the game server's utilization status from
AVAILABLE(when the game server is available to be claimed) toUTILIZED(when the game server is currently hosting games). Identify the game server and game server group and specify the new utilization status. You can't change the status from toUTILIZEDtoAVAILABLE. -
To report health status, identify the game server and game server group
and set health check to
HEALTHY. If a game server does not report health status for a certain length of time, the game server is no longer considered healthy. As a result, it will be eventually deregistered from the game server group to avoid affecting utilization metrics. The best practice is to report health every 60 seconds. - To change game server metadata, provide updated game server data.
Learn more
Amazon GameLift Servers FleetIQ Guide
May throw InternalServiceException.
May throw InvalidRequestException.
May throw NotFoundException.
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 update.
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.
Parameter healthCheck :
Indicates health status of the game server. A request that includes this
parameter updates the game server's LastHealthCheckTime timestamp.
Parameter utilizationStatus :
Indicates if the game server is available or is currently hosting
gameplay. You can update a game server status from AVAILABLE
to UTILIZED, but you can't change a the status from
UTILIZED to AVAILABLE.
Implementation
Future<UpdateGameServerOutput> updateGameServer({
required String gameServerGroupName,
required String gameServerId,
String? gameServerData,
GameServerHealthCheck? healthCheck,
GameServerUtilizationStatus? utilizationStatus,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.UpdateGameServer'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'GameServerGroupName': gameServerGroupName,
'GameServerId': gameServerId,
if (gameServerData != null) 'GameServerData': gameServerData,
if (healthCheck != null) 'HealthCheck': healthCheck.value,
if (utilizationStatus != null)
'UtilizationStatus': utilizationStatus.value,
},
);
return UpdateGameServerOutput.fromJson(jsonResponse.body);
}