

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# SDK del servidor de Go para Amazon GameLift Servers: acciones
<a name="integration-server-sdk-go-actions"></a>

Utilice la referencia del SDK 5.x del servidor para integrar su juego multijugador para el alojamiento con Amazon GameLift Servers. Para obtener ayuda con el proceso de integración, consulte [Adición de Amazon GameLift Servers al servidor de juegos con el SDK del servidor](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go` define las acciones del SDK del servidor Go.

[SDK del servidor de Go para Amazon GameLift Servers: tipos de datos](integration-server-sdk-go-datatypes.md)

**Topics**
+ [SDK del servidor de Go para Amazon GameLift Servers: tipos de datos](integration-server-sdk-go-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk-go-getsdkversion)
+ [InitMetrics()](#integration-server-sdk-go-initmetrics)
+ [InitMetricsFromEnvironment()](#integration-server-sdk-go-initmetricsfromenv)
+ [InitSDK()](#integration-server-sdk-go-initsdk)
+ [ProcessReady()](#integration-server-sdk-go-processready)
+ [ProcessEnding()](#integration-server-sdk-go-processending)
+ [ActivateGameSession()](#integration-server-sdk-go-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk-go-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk-go-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk-go-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk-go-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk-go-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk-go-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk-go-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk-go-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk-go-getfleetrolecredentials)
+ [Destroy()](#integration-server-sdk-go-destroy)

## GetSdkVersion()
<a name="integration-server-sdk-go-getsdkversion"></a>

Devuelve el número de versión actual del SDK integrado en el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk-go-getsdkversion-syntax"></a>

```
func GetSdkVersion() (string, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getsdkversion-return"></a>

Si funciona correctamente, devuelve la versión del SDK actual como una cadena. La cadena devuelta solo incluye el número de versión (por ejemplo, `5.0.0`). Si no funciona, devuelve un mensaje de error, como `common.SdkVersionDetectionFailed`.

### Ejemplo
<a name="integration-server-sdk-go-getsdkversion-example"></a>

```
version, err := server.GetSdkVersion()
```

## InitMetrics()
<a name="integration-server-sdk-go-initmetrics"></a>

Inicializa la recopilación de métricas para el SDK de Amazon GameLift Servers. Este método configura los informes de métricas para ayudar a supervisar el rendimiento y el estado de los servidores. Llame a este método después de [InitSDK()](#integration-server-sdk-go-initsdk), pero antes de [ProcessReady()](#integration-server-sdk-go-processready).

### Sintaxis
<a name="integration-server-sdk-go-initmetrics-syntax"></a>

```
func InitMetrics() error
func InitMetrics(metricsParameters MetricsParameters) error
```

### Parameters
<a name="integration-server-sdk-go-initmetrics-parameter"></a>

MetricsParameters (opcional)  
Objeto `MetricsParameters` que configura la recopilación de métricas. Si no se proporciona, se utiliza la configuración de métricas predeterminada. La MetricsParameters estructura contiene los siguientes campos:  
+ `StatsdHost`: el nombre de host o dirección IP del servidor de StatsD.
+ `StatsdPort`: número de puerto del servidor de StatsD.
+ `CrashReporterHost`: nombre de host o dirección IP del servidor que notifica el bloqueo.
+ `CrashReporterPort`: número de puerto del servidor que notifica el bloqueo.
+ `FlushIntervalMs`: intervalo en milisegundos para vaciar los datos de las métricas al servidor.
+ `MaxPacketSize`: tamaño máximo de paquete para las métricas, en bytes.
Para obtener más información sobre la MetricsParameters estructura, consulte [Server SDK 5.x para los tipos de datos de C\#](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html).

### Valor devuelto
<a name="integration-server-sdk-go-initmetrics-return"></a>

Si se realiza correctamente, devuelve un error `nil` para indicar que la recopilación de métricas se ha inicializado correctamente.

### Ejemplo
<a name="integration-server-sdk-go-initmetrics-example"></a>

Inicialización de las métricas con la configuración predeterminada:

```
err := server.InitMetrics()
```

Inicialización de las métricas con una configuración personalizada:

```
metricsParams := MetricsParameters{
    StatsdHost:        "localhost",
    StatsdPort:        8125,
    CrashReporterHost: "localhost",
    CrashReporterPort: 9125,
    FlushIntervalMs:   5000,
    MaxPacketSize:     1024,
}

err := server.InitMetrics(metricsParams)
```

## InitMetricsFromEnvironment()
<a name="integration-server-sdk-go-initmetricsfromenv"></a>

Inicializa la recopilación de métricas para el SDK de Amazon GameLift Servers utilizando la configuración de las variables de entorno. Este método configura los informes de métricas utilizando la configuración predeterminada derivada del entorno de tiempo de ejecución.

Llame a este método después de [InitSDK()](#integration-server-sdk-go-initsdk), pero antes de [ProcessReady()](#integration-server-sdk-go-processready).

### Sintaxis
<a name="integration-server-sdk-go-initmetricsfromenv-syntax"></a>

```
func InitMetricsFromEnvironment() error
```

### Valor devuelto
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

Si se realiza correctamente, devuelve un error `nil` para indicar que la recopilación de métricas se ha inicializado correctamente con la configuración del entorno.

### Ejemplo
<a name="integration-server-sdk-go-initmetricsfromenv-example"></a>

```
err := server.InitMetricsFromEnvironment()
```

## InitSDK()
<a name="integration-server-sdk-go-initsdk"></a>

Inicializa el SDK de Amazon GameLift Servers. Llame a este método en el lanzamiento, antes de cualquier otra inicialización relacionada con Amazon GameLift Servers. Este método establece la comunicación entre el servidor y el servicio Amazon GameLift Servers.

### Sintaxis
<a name="integration-server-sdk-go-initsdk-syntax"></a>

```
func InitSDK(params ServerParameters) error 
```

### Parameters
<a name="integration-server-sdk-go-initsdk-parameter"></a>

[ServerParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-serverparameters)  
Para inicializar un servidor de juegos en una flota de Amazon GameLift Servers Anywhere, cree un objeto `ServerParameters` con la siguiente información:  
+ La URL WebSocket utilizada para conectarse al servidor de juegos. 
+ El ID del proceso utilizado para alojar su servidor de juegos. 
+ El ID del proceso utilizado para alojar los procesos del servidor de juegos. 
+ El ID de la flota de Amazon GameLift Servers que contiene su recurso de computación de Amazon GameLift Servers Anywhere.
+ El token de autorización generado por la operación de Amazon GameLift Servers. 
Para inicializar un servidor de juegos en una flota de EC2 administrada de Amazon GameLift Servers, cree un objeto `ServerParameters` sin parámetros. Con esta llamada, el agente de Amazon GameLift Servers configura el entorno informático y se conecta automáticamente al servicio Amazon GameLift Servers por usted. 

### Valor devuelto
<a name="integration-server-sdk-go-initsdk-return"></a>

Si funciona correctamente, devuelve el error `nil` para indicar que el proceso del servidor está listo para llamar a [ProcessReady()](#integration-server-sdk-go-processready). 

**nota**  
Si las llamadas a `InitSDK()` no funcionan en las compilaciones de juegos implementadas en las flotas de Anywhere, compruebe el parámetro `ServerSdkVersion` que se utiliza al crear el recurso de compilación. Debe establecer este valor de forma explícita en la versión del SDK del servidor en uso. El valor predeterminado de este parámetro es 4.x, que no es compatible. Para resolver este problema, cree una compilación nueva e impleméntela en una flota nueva.

### Ejemplo
<a name="integration-server-sdk-go-initsdk-example"></a>

Ejemplo de Amazon GameLift Servers Anywhere

```
//Define the server parameters
serverParameters := ServerParameters {
  WebSocketURL: "wss://us-west-1.api.amazongamelift.com",
  ProcessID: "PID1234",
  HostID: "HardwareAnywhere",
  FleetID: "aarn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa",
  AuthToken: "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

Ejemplo de EC2 administrado por Amazon GameLift Servers

```
//Define the server parameters
serverParameters := ServerParameters {}

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
err := server.InitSDK(serverParameters)
```

## ProcessReady()
<a name="integration-server-sdk-go-processready"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor de juegos está listo para alojar sesiones de juego. Llame a este método después de invocar [InitSDK()](#integration-server-sdk-go-initsdk). Se debe llamar a este método solo una vez por proceso.

### Sintaxis
<a name="integration-server-sdk-go-processready-syntax"></a>

```
func ProcessReady(param ProcessParameters) error
```

### Parameters
<a name="integration-server-sdk-go-processready-parameter"></a>

**ProcessParameters**  
Es un objeto [ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) que comunica la siguiente información sobre el proceso del servidor:  
+ Nombres de los métodos de devolución de llamada, implementados en el código de servidor de juegos, que el servicio Amazon GameLift Servers invoca para comunicarse con el proceso del servidor.
+ El número de puerto de escucha del servidor de proceso.
+ El tipo de datos [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log) que contiene la ruta a cualquier archivo específico de la sesión de juego que desea que Amazon GameLift Servers capture y almacene.

### Valor devuelto
<a name="integration-server-sdk-go-processready-return"></a>

Devuelve un error con un mensaje de error si el método falla. Devuelve `nil` si el método se realiza correctamente.

### Ejemplo
<a name="integration-server-sdk-go-processready-example"></a>

Este ejemplo ilustra las implementaciones tanto de la función de llamada [ProcessReady()](#integration-server-sdk-go-processready) como de la función de delegación.

```
// Define the process parameters
processParams := ProcessParameters {
  OnStartGameSession: gameProcess.OnStartGameSession,
  OnUpdateGameSession: gameProcess.OnGameSessionUpdate,
  OnProcessTerminate: gameProcess.OnProcessTerminate,
  OnHealthCheck: gameProcess.OnHealthCheck,
  Port: port,
  LogParameters: LogParameters {    // logging and error example
    []string {"C:\\game\\logs", "C:\\game\\error"}
  }
}

err := server.ProcessReady(processParams)
```

## ProcessEnding()
<a name="integration-server-sdk-go-processending"></a>

Informa a Amazon GameLift Servers de que el proceso del servidor está finalizando. Llame a este método después de realizar todas las demás tareas de limpieza (lo que incluye el cierre de la sesión de juegos activa) y antes de finalizar el proceso. Según el resultado de `ProcessEnding()`, el proceso finaliza con éxito (0) o error (-1) y genera un evento de flota. Si el proceso finaliza con un error, el evento de flota generado será `SERVER_PROCESS_TERMINATED_UNHEALTHY`.

### Sintaxis
<a name="integration-server-sdk-go-processending-syntax"></a>

```
func ProcessEnding() error
```

### Valor devuelto
<a name="integration-server-sdk-go-processending-return"></a>

Devuelve un código de error 0 o un código de error definido.

### Ejemplo
<a name="integration-server-sdk-go-processending-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```

## ActivateGameSession()
<a name="integration-server-sdk-go-activategamesession"></a>

Notifica a Amazon GameLift Servers que el proceso del servidor ha iniciado una sesión de juego y que está listo para recibir las conexiones de los jugadores. Se llama a esta acción como parte de la función de devolución de llamada `onStartGameSession()`, después de la inicialización de todas las sesiones de juego.

### Sintaxis
<a name="integration-server-sdk-go-activategamesession-syntax"></a>

```
func ActivateGameSession() error
```

### Valor devuelto
<a name="integration-server-sdk-go-activategamesession-return"></a>

Devuelve un error con un mensaje de error si el método falla.

### Ejemplo
<a name="integration-server-sdk-go-activategamesession-example"></a>

Este ejemplo muestra cómo se llama a `ActivateGameSession()` como parte de la función de delegación `onStartGameSession()`. 

```
func OnStartGameSession(GameSession gameSession) {
  // game-specific tasks when starting a new game session, such as loading map   
  // Activate when ready to receive players   
  err := server.ActivateGameSession();
}
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy"></a>

Actualiza la capacidad de la sesión de juego actual para aceptar sesiones de jugador nuevas. Una sesión de juego se puede configurar para que acepte o deniegue todas las sesiones nuevas de los jugadores.

### Sintaxis
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-syntax"></a>

```
func UpdatePlayerSessionCreationPolicy(policy model.PlayerSessionCreationPolicy) error
```

### Parameters
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-parameter"></a>

**playerSessionCreationPolítica**  
Valor de cadena que indica si la sesión de juego acepta jugadores nuevos.   
Los valores válidos son:  
+ **`model.AcceptAll`**: se aceptan todas las sesiones de jugador nuevas.
+ **`model.DenyAll`**: se rechazan todas las sesiones de jugador nuevas.

### Valor devuelto
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

Devuelve un error con un mensaje de error si se produce un error.

### Ejemplo
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-example"></a>

Este ejemplo establece la política de participación en la sesión de juego actual para aceptar todos los jugadores.

```
err := server.UpdatePlayerSessionCreationPolicy(model.AcceptAll)
```

## GetGameSessionId()
<a name="integration-server-sdk-go-getgamesessionid"></a>

Recupera el ID de la sesión de juego alojada por el proceso del servidor.

### Sintaxis
<a name="integration-server-sdk-go-getgamesessionid-syntax"></a>

```
func GetGameSessionID() (string, error)
```

### Parameters
<a name="integration-server-sdk-go-getgamesessionid-parameter"></a>

Esta acción no tiene parámetros.

### Valor devuelto
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

Si funciona correctamente, devuelve el ID de sesión del juego y el error nil. En el caso de los procesos inactivos que no se han activado aún con una sesión de juego, la llamada devuelve una cadena vacía y el error `nil`.

### Ejemplo
<a name="integration-server-sdk-go-getgamesessionid-example"></a>

```
gameSessionID, err := server.GetGameSessionID()
```

## GetTerminationTime()
<a name="integration-server-sdk-go-getterm"></a>

Devuelve la hora a la que está programada el cierre de un proceso de servidor, si hay una hora de terminación disponible. Un proceso del servidor realiza esta acción después de recibir una devolución de llamada `onProcessTerminate()` desde Amazon GameLift Servers. Amazon GameLift Servers llama a `onProcessTerminate()` por los motivos siguientes: 
+ Cuando el proceso del servidor ha informado de un mal estado o no ha respondido a Amazon GameLift Servers.
+ Al finalizar la instancia durante un evento de reducción vertical.
+ [Cuando se finaliza una instancia debido a la interrupción de una instancia de spot](spot-tasks.md).

### Sintaxis
<a name="integration-server-sdk-go-getterm-syntax"></a>

```
func GetTerminationTime() (int64, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getterm-return"></a>

Si se ejecuta correctamente, devuelve la marca temporal en segundos en la que está previsto que el proceso del servidor se cierre y finalice el error `nil`. El valor es la hora de terminación expresado en ciclos transcurridos desde `0001 00:00:00`. Por ejemplo, el valor de la fecha y hora `2020-09-13 12:26:40 -000Z` es igual a `637355968000000000` ciclos. Si no hay una hora de terminación disponible, devuelve un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-getterm-example"></a>

```
terminationTime, err := server.GetTerminationTime()
```

## AcceptPlayerSession()
<a name="integration-server-sdk-go-acceptplayersession"></a>

Notifica a Amazon GameLift Servers que un jugador con el ID de sesión de jugador especificado se ha conectado al proceso del servidor y requiere validación. Amazon GameLift Servers verifica que el ID de sesión de jugador es válido. Una vez validada la sesión del jugador, Amazon GameLift Servers cambia el estado del espacio de jugador de `RESERVED` a `ACTIVE`. 

### Sintaxis
<a name="integration-server-sdk-go-acceptplayersession-syntax"></a>

```
func AcceptPlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-acceptplayersession-parameter"></a>

`playerSessionId`  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk-go-acceptplayersession-example"></a>

Este ejemplo gestiona una solicitud de conexión que incluye la validación y el rechazo de una sesión de jugador no válida. IDs 

```
func ReceiveConnectingPlayerSessionID(conn Connection, playerSessionID string) {
    err := server.AcceptPlayerSession(playerSessionID)
    if err != nil {
        connection.Accept()
    } else {
        connection.Reject(err.Error())
    }
}
```

## RemovePlayerSession()
<a name="integration-server-sdk-go-removeplayersession"></a>

Informa a Amazon GameLift Servers de que un jugador se ha desconectado del proceso del servidor. Como respuesta, Amazon GameLift Servers cambia el espacio del jugador para que esté disponible. 

### Sintaxis
<a name="integration-server-sdk-go-removeplayersession-syntax"></a>

```
func RemovePlayerSession(playerSessionID string) error
```

### Parameters
<a name="integration-server-sdk-go-removeplayersession-parameter"></a>

**`playerSessionId`**  
ID único emitido por Amazon GameLift Servers cuando se crea una nueva sesión de jugador.

### Valor devuelto
<a name="integration-server-sdk-go-removeplayersession-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-removeplayersession-example"></a>

```
err := server.RemovePlayerSession(playerSessionID)
```

## DescribePlayerSessions()
<a name="integration-server-sdk-go-describeplayersessions"></a>

Recupera datos de sesión de jugador, incluida la configuración, los metadatos de la sesión y los datos de jugador. Utilice este método para obtener información sobre los siguientes elementos:
+ Una sesión para un jugador
+ Todas las sesiones del jugador en una sesión de juego
+ Todas las sesiones de jugador están asociadas a un único ID de jugador

### Sintaxis
<a name="integration-server-sdk-go-describeplayersessions-syntax"></a>

```
func DescribePlayerSessions(req request.DescribePlayerSessionsRequest) (result.DescribePlayerSessionsResult, error) {
	return srv.describePlayerSessions(&req)
}
```

### Parameters
<a name="integration-server-sdk-go-describeplayersessions-parameter"></a>

**[DescribePlayerSessionsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-playersessions)**  
Es un objeto `DescribePlayerSessionsRequest` que describe las sesiones de jugador a recuperar.

### Valor devuelto
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

Si funciona correctamente, devuelve un objeto `DescribePlayerSessionsResult` que contiene un conjunto de objetos de sesión de jugador que se ajusta a los parámetros de la solicitud.

### Ejemplo
<a name="integration-server-sdk-go-describeplayersessions-example"></a>

En este ejemplo se solicitan todas las sesiones de jugador conectadas activamente a una sesión de juego específica. Al omitir *NextToken*y establecer el valor *límite* en 10, Amazon GameLift Servers devuelve los registros de las sesiones de los primeros 10 jugadores que coincidan con la solicitud.

```
// create request
describePlayerSessionsRequest := request.NewDescribePlayerSessions() 
describePlayerSessionsRequest.GameSessionID, _ = server.GetGameSessionID() // get ID for the current game session
describePlayerSessionsRequest.Limit = 10                                 // return the first 10 player sessions
describePlayerSessionsRequest.PlayerSessionStatusFilter = "ACTIVE"         // Get all player sessions actively connected to the game session

describePlayerSessionsResult, err := server.DescribePlayerSessions(describePlayerSessionsRequest)
```

## StartMatchBackfill()
<a name="integration-server-sdk-go-startmatchbackfill"></a>

Envía una solicitud para encontrar nuevos jugadores para ranuras abiertas en una sesión de juego creada con FlexMatch. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Esta acción es asíncrona. Si se emparejan nuevos jugadores, Amazon GameLift Servers ofrece datos actualizados del emparejador mediante la función de devolución de llamada `OnUpdateGameSession()`.

Un proceso del servidor solo puede tener una solicitud de reposición de emparejamiento activa a la vez. Para enviar una nueva solicitud, en primer lugar llame a [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) para cancelar la solicitud original.

### Sintaxis
<a name="integration-server-sdk-go-startmatchbackfill-syntax"></a>

```
func StartMatchBackfill(req request.StartMatchBackfillRequest) (result.StartMatchBackfillResult, error)
```

### Parameters
<a name="integration-server-sdk-go-startmatchbackfill-parameter"></a>

**[StartMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-startmatchbackfillrequest)**  
Un StartMatchBackfillRequest objeto comunica la siguiente información:  
+ Un ID de ticket que se asignará a la solicitud de reposición. Esta información es opcional; si no se proporciona ningún ID, Amazon GameLift Servers genera uno.
+ El creador de emparejamientos al que se enviará la solicitud. El ARN de configuración completo es obligatorio. Este valor se encuentra en los datos del emparejador de la sesión de juego.
+ El ID de la sesión de juego que se va a reponer.
+ Datos del emparejador disponibles para los jugadores actuales de la sesión de juego.

### Valor devuelto
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

Devuelve un objeto `StartMatchBackfillResult` con el ID del ticket de reposición de emparejamiento o un error con un mensaje de error. 

### Ejemplo
<a name="integration-server-sdk-go-startmatchbackfill-example"></a>

```
// form the request
startBackfillRequest := request.NewStartMatchBackfill()
startBackfillRequest.RequestID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"          // optional
startBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
var matchMaker model.MatchmakerData
if err := matchMaker.UnmarshalJSON([]byte(gameSession.MatchmakerData)); err != nil {    
    return
}
startBackfillRequest.Players = matchMaker.Players
res, err := server.StartMatchBackfill(startBackfillRequest)

// Implement callback function for backfill
func OnUpdateGameSession(myGameSession model.GameSession) {
    // game-specific tasks to prepare for the newly matched players and update matchmaker data as needed
}
```

## StopMatchBackfill()
<a name="integration-server-sdk-go-stopmatchbackfill"></a>

Cancela una solicitud de reposición de emparejamiento activa. Para obtener más información, consulte [Característica de reposición de FlexMatch](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Sintaxis
<a name="integration-server-sdk-go-stopmatchbackfill-syntax"></a>

```
func StopMatchBackfill(req request.StopMatchBackfillRequest) error
```

### Parameters
<a name="integration-server-sdk-go-stopmatchbackfill-parameter"></a>

**[StopMatchBackfillRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)**  
Un StopMatchBackfillRequest objeto que identifica el billete de emparejamiento que se va a cancelar:   
+ ID del ticket que se asignará a la solicitud de reposición
+ El emparejador al que se envió la solicitud de reposición
+ La sesión de juego asociada a la solicitud de reposición.

### Valor devuelto
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

Devuelve un resultado genérico correcto o erróneo con un mensaje de error.

### Ejemplo
<a name="integration-server-sdk-go-stopmatchbackfill-example"></a>

```
stopBackfillRequest := request.NewStopMatchBackfill()  // Use this function to create request
stopBackfillRequest.TicketID = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"
stopBackfillRequest.MatchmakingConfigurationArn = "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MyMatchmakerConfig"
                
//error
err := server.StopMatchBackfill(stopBackfillRequest)
```

## GetComputeCertificate()
<a name="integration-server-sdk-go-getcomputecertificate"></a>

Recupera la ruta al certificado TLS utilizado para cifrar la conexión de red entre el servidor de juegos y el cliente de juego. Puede utilizar la ruta del certificado al registrar el dispositivo informático en una flota de Amazon GameLift Servers Anywhere. Para obtener más información, consulte [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Sintaxis
<a name="integration-server-sdk-go-getcomputecertificate-syntax"></a>

```
func GetComputeCertificate() (result.GetComputeCertificateResult, error)
```

### Valor devuelto
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

Devuelve un objeto `GetComputeCertificateResult` que contiene los siguientes elementos: 
+  CertificatePath: la ruta al certificado TLS de su recurso informático. Cuando se utiliza una flota administrada por Amazon GameLift Servers, la ruta contiene los siguientes elementos: 
  + `certificate.pem`: el certificado del usuario final. La cadena de certificados completa es la combinación del `certificateChain.pem` adjunto a este certificado.
  + `certificateChain.pem`: la cadena de certificados que contiene el certificado raíz y los certificados intermedios.
  + `rootCertificate.pem`: el certificado raíz.
  + `privateKey.pem`: la clave privada del certificado del usuario final.
+ ComputeName: el nombre del recurso informático.

### Ejemplo
<a name="integration-server-sdk-go-getcomputecertificate-example"></a>

```
tlsCertificate, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk-go-getfleetrolecredentials"></a>

Recupera las credenciales de la función de servicio que has creado para extender los permisos a la otra Servicios de AWS . Amazon GameLift Servers Estas credenciales permiten que su servidor de juegos utilice sus recursos de AWS . Para obtener más información, consulte [Configuración de un rol de servicio de IAM para Amazon GameLift Servers](setting-up-role.md).

### Sintaxis
<a name="integration-server-sdk-go-getfleetrolecredentials-syntax"></a>

```
func GetFleetRoleCredentials(
  req request.GetFleetRoleCredentialsRequest,
) (result.GetFleetRoleCredentialsResult, error) {
  return srv.getFleetRoleCredentials(&req)
}
```

### Parameters
<a name="integration-server-sdk-go-getfleetrolecredentials-parameters"></a>

[GetFleetRoleCredentialsRequest](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)  
Credenciales de rol que amplían el acceso limitado a tus AWS recursos al servidor del juego.

### Valor devuelto
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

Devuelve un objeto `GetFleetRoleCredentialsResult` que contiene los siguientes elementos: 
+ AssumedRoleUserArn - El nombre de recurso de Amazon (ARN) del usuario al que pertenece la función de servicio. 
+ AssumedRoleId - El ID del usuario al que pertenece el rol de servicio. 
+ AccessKeyId - El ID de la clave de acceso para autenticar y proporcionar acceso a sus AWS recursos. 
+ SecretAccessKey - El identificador de la clave de acceso secreta para la autenticación. 
+ SessionToken - Un token para identificar la sesión activa actual que interactúa con tus AWS recursos. 
+ Vencimiento: el tiempo que queda hasta que caduquen las credenciales de la sesión.

### Ejemplo
<a name="integration-server-sdk-go-getfleetrolecredentials-example"></a>

```
// form the customer credentials request
getFleetRoleCredentialsRequest := request.NewGetFleetRoleCredentials()
getFleetRoleCredentialsRequest.RoleArn = "arn:aws:iam::123456789012:role/service-role/exampleGameLiftAction"

credentials, err := server.GetFleetRoleCredentials(getFleetRoleCredentialsRequest)
```

## Destroy()
<a name="integration-server-sdk-go-destroy"></a>

Libera de la memoria el SDK del servidor de juegos de Amazon GameLift Servers. Como práctica recomendada, llame a este método después de `ProcessEnding()` y antes de finalizar el proceso. Si utiliza una flota de Anywhere y no va a finalizar los procesos del servidor después de cada sesión de juego, llame a `Destroy()` y, a continuación, a `InitSDK()` para reinicializar antes de informar a Amazon GameLift Servers de que el proceso está listo para organizar una sesión de juego con `ProcessReady()`.

### Sintaxis
<a name="integration-server-sdk-go-destroy-syntax"></a>

```
func Destroy() error {
	return srv.destroy()
}
```

### Valor devuelto
<a name="integration-server-sdk-go-destroy-return"></a>

Devuelve un error con un mensaje de error si el método falla.

### Ejemplo
<a name="integration-server-sdk-go-destroy-example"></a>

```
// operations to end game sessions and the server process
defer func() {
  err := server.ProcessEnding()
  server.Destroy()
  if err != nil {
    fmt.Println("ProcessEnding() failed. Error: ", err)
    os.Exit(-1)
  } else {
    os.Exit(0)
  }
}
```