

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Go-Server-SDK für Amazon GameLift Servers -- Aktionen
<a name="integration-server-sdk-go-actions"></a>

Verwenden Sie die Server-SDK 5.x-Referenz, um Ihr Multiplayer-Spiel zum Hosten zu integrieren. Amazon GameLift Servers Hinweise zum Integrationsprozess finden Sie unter[Füge Amazon GameLift Servers es deinem Spieleserver mit dem Server-SDK hinzu](gamelift-sdk-server-api.md).

`GameLiftServerAPI.go`definiert die SDK-Aktionen des Go-Servers.

[Go-Server-SDK für Amazon GameLift Servers -- Datentypen](integration-server-sdk-go-datatypes.md)

**Topics**
+ [Go-Server-SDK für Amazon GameLift Servers -- Datentypen](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)
+ [Zerstören ()](#integration-server-sdk-go-destroy)

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

Gibt die aktuelle Versionsnummer des SDK zurück, das in den Serverprozess integriert ist.

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

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

### Rückgabewert
<a name="integration-server-sdk-go-getsdkversion-return"></a>

Gibt bei Erfolg die aktuelle SDK-Version als Zeichenfolge zurück. Die zurückgegebene Zeichenfolge enthält die Versionsnummer (Beispiel`5.0.0`). Wenn dies nicht erfolgreich ist, wird eine Fehlermeldung wie zurückgegeben`common.SdkVersionDetectionFailed`.

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

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

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

Initialisiert die Erfassung von Metriken für das Amazon GameLift Servers SDK. Mit dieser Methode werden Berichte über Metriken eingerichtet, um die Serverleistung und den Zustand zu überwachen. Rufen Sie diese Methode danach[InitSDK()](#integration-server-sdk-go-initsdk), aber vorher auf[ProcessReady()](#integration-server-sdk-go-processready).

### Syntax
<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 (Optional)  
Ein `MetricsParameters` Objekt, das die Erfassung von Metriken konfiguriert. Falls nicht angegeben, wird die Standardkonfiguration für Metriken verwendet. Die MetricsParameters Struktur enthält die folgenden Felder:  
+ `StatsdHost`- Der Hostname oder die IP-Adresse des StatsD-Servers.
+ `StatsdPort`- Die Portnummer für den StatsD-Server.
+ `CrashReporterHost`- Der Hostname oder die IP-Adresse des Crash-Reporter-Dienstes.
+ `CrashReporterPort`- Die Portnummer für den Crash-Reporter-Dienst.
+ `FlushIntervalMs`- Das Intervall in Millisekunden für das Löschen von Metrikdaten.
+ `MaxPacketSize`- Die maximale Größe von Metrikpaketen in Byte.
Weitere Informationen zur MetricsParameters Struktur finden Sie unter [Server-SDK 5.x für C\$1-Datentypen.](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk5-csharp-datatypes.html)

### Rückgabewert
<a name="integration-server-sdk-go-initmetrics-return"></a>

Bei Erfolg wird ein `nil` Fehler zurückgegeben, der darauf hinweist, dass die Metrikerfassung erfolgreich initialisiert wurde.

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

Initialisieren Sie Metriken mit der Standardkonfiguration:

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

Metriken mit benutzerdefinierter Konfiguration initialisieren:

```
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>

Initialisiert die Erfassung von Metriken für das Amazon GameLift Servers SDK mithilfe der Konfiguration aus Umgebungsvariablen. Diese Methode richtet die Metrikberichterstattung mithilfe von Standardeinstellungen ein, die von der Laufzeitumgebung abgeleitet wurden.

Rufen Sie diese Methode danach[InitSDK()](#integration-server-sdk-go-initsdk), aber vorher auf[ProcessReady()](#integration-server-sdk-go-processready).

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

```
func InitMetricsFromEnvironment() error
```

### Rückgabewert
<a name="integration-server-sdk-go-initmetricsfromenv-return"></a>

Bei Erfolg wird ein `nil` Fehler zurückgegeben, der darauf hinweist, dass die Metrikerfassung mithilfe der Umgebungskonfiguration erfolgreich initialisiert wurde.

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

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

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

Initialisiert das Amazon GameLift Servers-SDK. Rufen Sie diese Methode beim Start auf, bevor eine weitere Initialisierung im Zusammenhang Amazon GameLift Servers mit erfolgt. Diese Methode richtet die Kommunikation zwischen dem Server und dem Amazon GameLift Servers Dienst ein.

### Syntax
<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)  
Um einen Spieleserver auf einer Amazon GameLift Servers Anywhere-Flotte zu initialisieren, konstruieren Sie ein `ServerParameters` Objekt mit den folgenden Informationen:  
+ Die URL, mit der die WebSocket Verbindung zu Ihrem Spieleserver hergestellt wurde. 
+ Die ID des Prozesses, der zum Hosten deines Spieleservers verwendet wird. 
+ Die ID des Computers, auf dem deine Gameserver-Prozesse gehostet werden. 
+ Die ID der Amazon GameLift Servers Flotte, die Ihren Amazon GameLift Servers Anywhere-Computer enthält.
+ Das durch den Amazon GameLift Servers Vorgang generierte Autorisierungstoken. 
Um einen Spieleserver auf einer Amazon GameLift Servers verwalteten EC2-Flotte zu initialisieren, konstruieren Sie ein `ServerParameters` Objekt ohne Parameter. Mit diesem Aufruf richtet der Amazon GameLift Servers Agent die Rechenumgebung ein und stellt automatisch eine Verbindung zum Amazon GameLift Servers Dienst für Sie her. 

### Rückgabewert
<a name="integration-server-sdk-go-initsdk-return"></a>

Bei Erfolg wird ein `nil` Fehler zurückgegeben, der darauf hinweist, dass der Serverprozess aufrufbereit ist[ProcessReady()](#integration-server-sdk-go-processready). 

**Anmerkung**  
Wenn Aufrufe von für Spiel-Builds, die auf Anywhere-Flotten bereitgestellt werden, fehlschlagen, überprüfen Sie den `ServerSdkVersion` Parameter, der beim Erstellen der Build-Ressource verwendet wurde. `InitSDK()` Sie müssen diesen Wert explizit auf die verwendete Server-SDK-Version festlegen. Der Standardwert für diesen Parameter ist 4.x, was nicht kompatibel ist. Um dieses Problem zu beheben, erstellen Sie einen neuen Build und stellen Sie ihn in einer neuen Flotte bereit.

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

Amazon GameLift ServersIrgendwo, Beispiel

```
//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)
```

Amazon GameLift ServersBeispiel für verwaltetes EC2

```
//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>

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess bereit ist, Spielsitzungen zu hosten. Rufen Sie diese Methode nach dem Aufrufen auf[InitSDK()](#integration-server-sdk-go-initsdk). Diese Methode sollte nur einmal pro Prozess aufgerufen werden.

### Syntax
<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**  
Ein [ProcessParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-process) Objekt übermittelt die folgenden Informationen über den Serverprozess:  
+ Die Namen der im Spielservercode implementierten Callback-Methoden, die der Amazon GameLift Servers Dienst aufruft, um mit dem Serverprozess zu kommunizieren.
+ Die Portnummer, die der Serverprozess abhört.
+ Der [LogParameters](integration-server-sdk-go-datatypes.md#integration-server-sdk-go-dataypes-log) Datentyp, der den Pfad zu allen spielsitzungsspezifischen Dateien enthält, die Sie erfassen und Amazon GameLift Servers speichern möchten.

### Rückgabewert
<a name="integration-server-sdk-go-processready-return"></a>

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt. Gibt zurück`nil`, ob die Methode erfolgreich ist.

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

Dieses Beispiel veranschaulicht die Implementierung des [ProcessReady()](#integration-server-sdk-go-processready)-Aufrufs und der Delegate-Funktion.

```
// 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>

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess beendet wird. Ruft diese Methode nach allen anderen Bereinigungsaufgaben (einschließlich des Herunterfahrens der aktiven Spielsitzung) und vor dem Beenden des Vorgangs auf. Je nach Ergebnis von wird der `ProcessEnding()` Prozess mit Erfolg (0) oder Fehler (-1) beendet und generiert ein Flottenereignis. Wenn der Prozess mit einem Fehler beendet wird, ist das generierte Flottenereignis. `SERVER_PROCESS_TERMINATED_UNHEALTHY`

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

```
func ProcessEnding() error
```

### Rückgabewert
<a name="integration-server-sdk-go-processending-return"></a>

Gibt den Fehlercode 0 oder einen definierten Fehlercode zurück.

### Beispiel
<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>

BenachrichtigtAmazon GameLift Servers, dass der Serverprozess eine Spielsitzung aktiviert hat und nun bereit ist, Spielerverbindungen zu empfangen. Diese Aktion wird als Teil der `onStartGameSession()` Callback-Funktion aufgerufen, nachdem alle Spielsitzungen initialisiert wurden.

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

```
func ActivateGameSession() error
```

### Rückgabewert
<a name="integration-server-sdk-go-activategamesession-return"></a>

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt.

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

Dieses Beispiel wird als Teil der `onStartGameSession()` Delegate-Funktion `ActivateGameSession()` aufgerufen. 

```
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>

Aktualisiert die Kapazität der aktuellen Spielsitzung zur Aufnahme neuer Spielersitzungen. Eine Spielsitzung kann so eingerichtet werden, dass Sie alle neuen Spieler-Sitzungen akzeptiert oder ablehnt.

### Syntax
<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>

**playerSessionCreationRichtlinie**  
Zeichenkettenwert, der angibt, ob die Spielsitzung neue Spieler akzeptiert.   
Gültige Werte sind:  
+ **`model.AcceptAll`**— Akzeptiert alle Sitzungen mit neuen Spielern.
+ **`model.DenyAll`**— Alle Sitzungen neuer Spieler ablehnen.

### Rückgabewert
<a name="integration-server-sdk-go-updateplayersessioncreationpolicy-return"></a>

Gibt einen Fehler mit einer Fehlermeldung zurück, falls ein Fehler auftritt.

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

In diesem Beispiel werden die Richtlinien für die aktuelle Spielsitzung für neue Spieler so festgelegt, dass alle Spieler akzeptiert werden.

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

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

Ruft die ID der Spielsitzung ab, die vom aktiven Serverprozess gehostet wird.

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

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

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

Diese Aktion hat keine Parameter.

### Rückgabewert
<a name="integration-server-sdk-go-getgamesessionid-return"></a>

Bei Erfolg wird die Spielsitzungs-ID zurückgegeben und es wird kein Fehler angezeigt. Bei Prozessen im Leerlauf, die während einer Spielsitzung noch nicht aktiviert wurden, gibt der Aufruf eine leere Zeichenfolge und einen `nil` Fehler zurück.

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

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

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

Gibt die Uhrzeit zurück, zu der ein Serverprozess planmäßig heruntergefahren werden soll, sofern eine Kündigungszeit verfügbar ist. Ein Serverprozess führt diese Aktion aus, nachdem er einen `onProcessTerminate()` Rückruf von Amazon GameLift Servers erhalten hat. Amazon GameLift Serversruft `onProcessTerminate()` aus den folgenden Gründen auf: 
+ Wenn der Serverprozess einen schlechten Zustand gemeldet hat oder nicht darauf reagiert hatAmazon GameLift Servers.
+ Wenn die Instanz während eines Scale-Down-Ereignisses beendet wird.
+ [Wenn eine Instance aufgrund einer Spot-Instance-Unterbrechung beendet wird.](spot-tasks.md)

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

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

### Rückgabewert
<a name="integration-server-sdk-go-getterm-return"></a>

Bei Erfolg wird der Zeitstempel in Epochensekunden zurückgegeben, für den das Herunterfahren des Serverprozesses geplant ist, und es wird ein Fehler beim Beenden angezeigt. `nil` Der Wert ist die Endzeit, ausgedrückt in verstrichenen Ticks von. `0001 00:00:00` Der Wert für Datum und Uhrzeit `2020-09-13 12:26:40 -000Z` entspricht beispielsweise Ticks. `637355968000000000` Wenn keine Kündigungszeit verfügbar ist, wird eine Fehlermeldung zurückgegeben.

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

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

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

BenachrichtigtAmazon GameLift Servers, dass ein Spieler mit der angegebenen Spielersitzungs-ID eine Verbindung zum Serverprozess hergestellt hat und eine Bestätigung benötigt. Amazon GameLift Serversüberprüft, ob die Spielersitzungs-ID gültig ist. Nachdem die Spielersitzung bestätigt wurde, Amazon GameLift Servers ändert sich der Status des Spieler-Slots von `RESERVED` zu`ACTIVE`. 

### Syntax
<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`  
Eindeutige IDAmazon GameLift Servers, die ausgestellt wird, wenn eine neue Spielersitzung erstellt wird.

### Rückgabewert
<a name="integration-server-sdk-go-acceptplayersession-return"></a>

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg besteht, mit einer Fehlermeldung. 

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

In diesem Beispiel wird eine Verbindungsanforderung behandelt, die das Überprüfen und Ablehnen einer ungültigen Spielersitzung beinhaltet. 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>

BenachrichtigtAmazon GameLift Servers, dass ein Spieler die Verbindung zum Serverprozess getrennt hat. Amazon GameLift ServersÄndert daraufhin den Player-Slot auf verfügbar. 

### Syntax
<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`**  
Eindeutige IDAmazon GameLift Servers, die ausgestellt wird, wenn eine neue Spielersitzung erstellt wird.

### Rückgabewert
<a name="integration-server-sdk-go-removeplayersession-return"></a>

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg besteht, mit einer Fehlermeldung.

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

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

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

Ruft Spielersitzungsdaten ab, einschließlich Einstellungen, Sitzungsmetadaten und Spielerdaten. Verwenden Sie diese Methode, um Informationen zu folgenden Themen abzurufen:
+ Eine Einzelspieler-Sitzung
+ Alle Spielersitzungen in einer Spielsitzung
+ Alle Spielersitzungen, die einer einzelnen Spieler-ID zugeordnet sind

### Syntax
<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)**  
Ein `DescribePlayerSessionsRequest` Objekt beschreibt, welche Spielersitzungen abgerufen werden sollen.

### Rückgabewert
<a name="integration-server-sdk-go-describeplayersessions-return"></a>

Bei Erfolg wird ein `DescribePlayerSessionsResult` Objekt zurückgegeben, das eine Reihe von Spielersitzungsobjekten enthält, die den Anforderungsparametern entsprechen.

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

In diesem Beispiel werden alle Spielersitzungen angefordert, die aktiv mit einer bestimmten Spielsitzung verbunden sind. Wenn Sie den *Grenzwert* weglassen *NextToken*und ihn auf 10 setzen, werden die Sitzungsdatensätze der ersten 10 Spieler Amazon GameLift Servers zurückgegeben, die der Anfrage entsprechen.

```
// 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>

Sendet eine Anforderung zur Suche nach neuen Spielern für offene Slots in einer Spielsitzung, die mit FlexMatch erstellt wurde. Weitere Informationen finden Sie unter [FlexMatchBackfill-Funktion](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Diese Aktion ist asynchron. Wenn neue Spieler gematcht werden, Amazon GameLift Servers liefert es mithilfe der Callback-Funktion aktualisierte Matchmaker-Daten. `OnUpdateGameSession()`

Ein Serverprozess kann immer nur eine aktive Match-Backfill-Anforderung haben. Um eine neue Anforderung zu senden, rufen Sie zuerst [StopMatchBackfill()](#integration-server-sdk-go-stopmatchbackfill) auf, um die ursprüngliche Anforderung abzubrechen.

### Syntax
<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)**  
Ein StartMatchBackfillRequest Objekt übermittelt die folgenden Informationen:  
+ Eine Ticket-ID für die Zuordnung zur Backfill-Anforderung. Diese Information ist optional. Wenn keine ID angegeben wird, wird eine Amazon GameLift Servers generiert.
+ Der Matchmaker, an den die Anfrage gesendet werden soll. Der vollständige ARN der Konfiguration ist erforderlich. Dieser Wert ist in den Matchmaker-Daten der Spielsitzung enthalten.
+ Die ID der Spielsitzung, die aufgefüllt werden soll.
+ Die verfügbaren Matchmaking-Daten für die aktuellen Spieler der Spielsitzung.

### Rückgabewert
<a name="integration-server-sdk-go-startmatchbackfill-return"></a>

Gibt ein `StartMatchBackfillResult` Objekt mit der ID des Match-Backfill-Tickets zurück oder schlägt fehl und es wird eine Fehlermeldung angezeigt. 

### Beispiel
<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>

Bricht eine aktive Match-Backfill-Anfrage ab. Weitere Informationen finden Sie unter [FlexMatchBackfill-Funktion](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Syntax
<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)**  
Ein StopMatchBackfillRequest Objekt, das das zu stornierende Matchmaking-Ticket identifiziert:   
+ Die der Backfill-Anfrage zugewiesene Ticket-ID.
+ Der Matchmaker, an den die Backfill-Anfrage gesendet wurde.
+ Die Spielsitzung, die mit der Backfill-Anfrage verknüpft ist.

### Rückgabewert
<a name="integration-server-sdk-go-stopmatchbackfill-return"></a>

Gibt ein generisches Ergebnis zurück, das aus Erfolg oder Misserfolg besteht, mit einer Fehlermeldung.

### Beispiel
<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>

Ruft den Pfad zum TLS-Zertifikat ab, das zur Verschlüsselung der Netzwerkverbindung zwischen dem Spieleserver und deinem Spielclient verwendet wird. Du kannst den Zertifikatspfad verwenden, wenn du dein Computergerät bei einer Amazon GameLift Servers Anywhere-Flotte registrierst. Weitere Informationen finden Sie unter [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

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

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

### Rückgabewert
<a name="integration-server-sdk-go-getcomputecertificate-return"></a>

Gibt ein `GetComputeCertificateResult` Objekt zurück, das Folgendes enthält: 
+  CertificatePath: Der Pfad zum TLS-Zertifikat auf Ihrer Rechenressource. Wenn Sie eine Amazon GameLift Servers verwaltete Flotte verwenden, enthält dieser Pfad: 
  + `certificate.pem`: Das Endbenutzerzertifikat. Die vollständige Zertifikatskette ist die Kombination aus den an dieses Zertifikat `certificateChain.pem` angehängten Zertifikaten.
  + `certificateChain.pem`: Die Zertifikatskette, die das Stammzertifikat und die Zwischenzertifikate enthält.
  + `rootCertificate.pem`: Das Stammzertifikat.
  + `privateKey.pem`: Der private Schlüssel für das Endbenutzerzertifikat.
+ ComputeName: Der Name Ihrer Rechenressource.

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

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

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

Ruft die Anmeldeinformationen für die Servicerolle ab, die Sie erstellen, um die Berechtigungen auf Ihre andere AWS-Services Person auszudehnen. Amazon GameLift Servers Diese Anmeldeinformationen ermöglichen es deinem Spieleserver, deine AWS Ressourcen zu nutzen. Weitere Informationen finden Sie unter [Richten Sie eine IAM-Servicerolle ein für Amazon GameLift Servers](setting-up-role.md).

### Syntax
<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)  
Rollenanmeldedaten, mit denen der eingeschränkte Zugriff auf deine AWS Ressourcen auf den Spieleserver ausgedehnt wird.

### Rückgabewert
<a name="integration-server-sdk-go-getfleetrolecredentials-return"></a>

Gibt ein `GetFleetRoleCredentialsResult` Objekt zurück, das Folgendes enthält: 
+ AssumedRoleUserArn — Der Amazon-Ressourcenname (ARN) des Benutzers, dem die Servicerolle gehört. 
+ AssumedRoleId - Die ID des Benutzers, dem die Servicerolle gehört. 
+ AccessKeyId - Die Zugriffsschlüssel-ID zur Authentifizierung und Bereitstellung des Zugriffs auf Ihre AWS Ressourcen. 
+ SecretAccessKey - Die geheime Zugriffsschlüssel-ID für die Authentifizierung. 
+ SessionToken - Ein Token zur Identifizierung der aktuellen aktiven Sitzung, die mit Ihren AWS Ressourcen interagiert. 
+ Ablauf — Der Zeitraum, bis Ihre Sitzungsdaten ablaufen.

### Beispiel
<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)
```

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

Befreit das Amazon GameLift Servers Spieleserver-SDK aus dem Speicher. Es hat sich bewährt, diese Methode nach `ProcessEnding()` und vor dem Beenden des Prozesses aufzurufen. Wenn Sie eine Anywhere-Flotte verwenden und Serverprozesse nicht nach jeder Spielsitzung beenden, rufen Sie auf `Destroy()` und starten Sie dann `InitSDK()` erneut, bevor Sie benachrichtigen, Amazon GameLift Servers dass der Prozess bereit ist, eine Spielsitzung mit zu hosten. `ProcessReady()`

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

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

### Rückgabewert
<a name="integration-server-sdk-go-destroy-return"></a>

Gibt einen Fehler mit einer Fehlermeldung zurück, wenn die Methode fehlschlägt.

### Beispiel
<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)
  }
}
```