describeContainerGroupPortMappings method

Future<DescribeContainerGroupPortMappingsOutput> describeContainerGroupPortMappings({
  1. required ContainerGroupType containerGroupType,
  2. required String fleetId,
  3. String? computeName,
  4. String? containerName,
  5. String? instanceId,
})

This API works with the following fleet types: Container

Retrieves the port mappings for a container group running on a container fleet. Port mappings show how container ports are mapped to connection ports on the fleet instance. Use this operation to find the connection port for a specific container on a fleet instance.

Request options

  • Get port mappings for a game server container group. Provide the fleet ID, set ContainerGroupType to GAME_SERVER, and specify the ComputeName for the game server container group.
  • Get port mappings for a per-instance container group. Provide the fleet ID, set ContainerGroupType to PER_INSTANCE, and specify the InstanceId for the instance.
  • Optionally filter results to a single container by providing a ContainerName.
Results

This operation returns the fleet ID, fleet ARN, location, container group definition ARN, container group type, compute name (for game server container groups), instance ID, and a list of ContainerGroupPortMapping objects. Each object contains the container name, runtime ID, and a list of port mappings that show how container ports map to connection ports on the instance.

Learn more

Connect to containers

Create a container group definition

May throw InternalServiceException. May throw InvalidRequestException. May throw LimitExceededException. May throw NotFoundException. May throw UnauthorizedException. May throw UnsupportedRegionException.

Parameter containerGroupType : The type of container group to retrieve port mappings for.

  • GAME_SERVER -- Get port mappings for a game server container group.
  • PER_INSTANCE -- Get port mappings for a per-instance container group.

Parameter fleetId : A unique identifier for the container fleet. You can use either the fleet ID or ARN value.

Parameter computeName : A unique identifier for the compute resource for which to retrieve port mappings. For a container fleet, a compute represents a game server container group running on a fleet instance. You can use either the compute name or ARN value.

When ContainerGroupType is GAME_SERVER, this parameter is required.

When ContainerGroupType is PER_INSTANCE, do not provide this parameter. If you provide a compute name with PER_INSTANCE, the request fails with an InvalidRequestException.

Parameter containerName : A container name to filter the results. When provided, the operation returns port mappings for the specified container only. If no container with the specified name exists in the container group, the request fails with a NotFoundException.

If not provided, the operation returns port mappings for all containers in the container group.

Parameter instanceId : A unique identifier for the fleet instance to retrieve port mappings for.

When ContainerGroupType is PER_INSTANCE, this parameter is required.

When ContainerGroupType is GAME_SERVER, this parameter is optional. If you provide an instance ID, it must match the instance that's running the specified compute. If the instance ID doesn't match, the request fails with an InvalidRequestException.

Implementation

Future<DescribeContainerGroupPortMappingsOutput>
    describeContainerGroupPortMappings({
  required ContainerGroupType containerGroupType,
  required String fleetId,
  String? computeName,
  String? containerName,
  String? instanceId,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'GameLift.DescribeContainerGroupPortMappings'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ContainerGroupType': containerGroupType.value,
      'FleetId': fleetId,
      if (computeName != null) 'ComputeName': computeName,
      if (containerName != null) 'ContainerName': containerName,
      if (instanceId != null) 'InstanceId': instanceId,
    },
  );

  return DescribeContainerGroupPortMappingsOutput.fromJson(jsonResponse.body);
}