getInstanceAccess method
This API works with the following fleet types: EC2
Requests authorization to remotely connect to an instance in an Amazon GameLift Servers managed fleet. Use this operation to connect to instances with game servers that use Amazon GameLift Servers server SDK 4.x or earlier. To connect to instances with game servers that use server SDK 5.x or later, call https://docs.aws.amazon.com/gamelift/latest/apireference/API_GetComputeAccess.
To request access to an instance, specify IDs for the instance and the fleet it belongs to. You can retrieve instance IDs for a fleet by calling DescribeInstances with the fleet ID.
If successful, this operation returns an IP address and credentials. The returned credentials match the operating system of the instance, as follows:
- For a Windows instance: returns a user name and secret (password) for use with a Windows Remote Desktop client.
-
For a Linux instance: returns a user name and secret (RSA private key) for
use with an SSH client. You must save the secret to a
.pemfile. If you're using the CLI, see the example Get credentials for a Linux instance for tips on automatically saving the secret to a.pemfile.
Remotely connect to fleet instances
Related actions
May throw InternalServiceException.
May throw InvalidRequestException.
May throw NotFoundException.
May throw UnauthorizedException.
Parameter fleetId :
A unique identifier for the fleet that contains the instance you want to
access. You can request access to instances in EC2 fleets with the
following statuses: ACTIVATING, ACTIVE, or
ERROR. Use either a fleet ID or an ARN value.
Parameter instanceId :
A unique identifier for the instance you want to access. You can access an
instance in any status.
Implementation
Future<GetInstanceAccessOutput> getInstanceAccess({
required String fleetId,
required String instanceId,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'GameLift.GetInstanceAccess'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'FleetId': fleetId,
'InstanceId': instanceId,
},
);
return GetInstanceAccessOutput.fromJson(jsonResponse.body);
}