

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# SDK 5.x du serveur C\+\+ (Unreal) pour Amazon GameLift Servers -- Actions
<a name="integration-server-sdk5-unreal-actions"></a>

Utilisez la référence du SDK du serveur Amazon GameLift Servers Unreal 5.x pour vous aider à préparer votre jeu multijoueur en vue de son utilisation avec. Amazon GameLift Servers Pour plus de détails sur le processus d'intégration, consultez[Ajoutez Amazon GameLift Servers à votre serveur de jeu avec le SDK du serveur](gamelift-sdk-server-api.md). Si vous utilisez le Amazon GameLift Servers plugin pour Unreal, consultez également[Amazon GameLift Serversplugin pour Unreal Engine](unreal-plugin.md).

**Note**  
Cette rubrique décrit l'API Amazon GameLift Servers C\+\+ que vous pouvez utiliser lorsque vous créez pour Unreal Engine. Plus précisément, cette documentation s'applique au code que vous compilez avec l'`-DBUILD_FOR_UNREAL=1`option. 

[SDK 5.x du serveur C\+\+ (Unreal) pour Amazon GameLift Servers -- Types de données](integration-server-sdk5-unreal-datatypes.md)

**Topics**
+ [SDK 5.x du serveur C\+\+ (Unreal) pour Amazon GameLift Servers -- Types de données](integration-server-sdk5-unreal-datatypes.md)
+ [GetSdkVersion()](#integration-server-sdk5-unreal-getsdkversion)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk)
+ [InitSDK()](#integration-server-sdk5-unreal-initsdk-anywhere)
+ [ProcessReady()](#integration-server-sdk5-unreal-processready)
+ [ProcessEnding()](#integration-server-sdk5-unreal-processending)
+ [ActivateGameSession()](#integration-server-sdk5-unreal-activategamesession)
+ [UpdatePlayerSessionCreationPolicy()](#integration-server-sdk5-unreal-updateplayersessioncreationpolicy)
+ [GetGameSessionId()](#integration-server-sdk5-unreal-getgamesessionid)
+ [GetTerminationTime()](#integration-server-sdk5-unreal-getterm)
+ [AcceptPlayerSession()](#integration-server-sdk5-unreal-acceptplayersession)
+ [RemovePlayerSession()](#integration-server-sdk5-unreal-removeplayersession)
+ [DescribePlayerSessions()](#integration-server-sdk5-unreal-describeplayersessions)
+ [StartMatchBackfill()](#integration-server-sdk5-unreal-startmatchbackfill)
+ [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill)
+ [GetComputeCertificate()](#integration-server-sdk5-unreal-getcomputecertificate)
+ [GetFleetRoleCredentials()](#integration-server-sdk5-unreal-getfleetrolecredentials)
+ [Détruire ()](#integration-server-sdk5-unreal-ref-destroy)

## GetSdkVersion()
<a name="integration-server-sdk5-unreal-getsdkversion"></a>

Renvoie le numéro de version actuel du kit SDK intégré dans le processus serveur.

### Syntaxe
<a name="integration-server-sdk5-unreal-getsdkversion-syntax"></a>

```
FGameLiftStringOutcome GetSdkVersion();
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-getsdkversion-return"></a>

En cas de réussite, renvoie la version actuelle du kit SDK en tant qu'objet [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). L'objet renvoyé inclut le numéro de version (exemple`5.0.0`). En cas d'échec, renvoie un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-getsdkversion-example"></a>

```
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();  
```

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk"></a>

Initialise le Amazon GameLift Servers SDK pour un parc EC2 géré. Appelez cette méthode au lancement, avant que toute autre initialisation associée ne se Amazon GameLift Servers produise. Cette méthode lit les paramètres du serveur depuis l'environnement hôte afin de configurer la communication entre le serveur et le Amazon GameLift Servers service. Il utilise un jeton d'idempuissance, de sorte que vous pouvez réessayer cet appel en toute sécurité en cas d'échec.

### Syntaxe
<a name="integration-server-sdk5-unreal-initsdk-syntax"></a>

```
FGameLiftGenericOutcome InitSDK()
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-initsdk-return"></a>

En cas de succès, renvoie un `InitSdkOutcome` objet indiquant que le processus serveur est prêt à être appelé[ProcessReady()](#integration-server-sdk5-unreal-processready). 

### Exemple
<a name="integration-server-sdk5-unreal-initsdk-example"></a>

```
//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
FGameLiftGenericOutcome initSdkOutcome = GameLiftSdkModule->InitSDK();
```

## InitSDK()
<a name="integration-server-sdk5-unreal-initsdk-anywhere"></a>

Initialise le Amazon GameLift Servers SDK pour une flotte Anywhere ou une flotte de conteneurs gérés. Appelez cette méthode au lancement, avant que toute autre initialisation associée ne se Amazon GameLift Servers produise. Cette méthode nécessite des paramètres de serveur explicites pour configurer la communication entre le serveur et le Amazon GameLift Servers service. Il utilise un jeton d'idempuissance, de sorte que vous pouvez réessayer cet appel en toute sécurité en cas d'échec.

### Syntaxe
<a name="integration-server-sdk5-unreal-initsdk-anywhere-syntax"></a>

```
FGameLiftGenericOutcome InitSDK(serverParameters)
```

### Parameters
<a name="integration-server-sdk5-unreal-initsdk-anywhere-parameter"></a>

[FServerParamètres](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-serverparameters)  
Pour initialiser un serveur de jeu sur une flotte Amazon GameLift Servers Anywhere, créez un `ServerParameters` objet avec les informations suivantes :  
+ URL WebSocket utilisée pour vous connecter à votre serveur de jeu. 
+ ID du processus utilisé pour héberger votre serveur de jeu. 
+ L'ID de l'ordinateur hébergeant les processus de votre serveur de jeu. 
+ L'ID du Amazon GameLift Servers parc contenant votre ordinateur Amazon GameLift Servers Anywhere.
+ Le jeton d'autorisation généré par l'Amazon GameLift Serversopération. 

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-initsdk-anywhere-return"></a>

En cas de succès, renvoie un `InitSdkOutcome` objet indiquant que le processus serveur est prêt à être appelé[ProcessReady()](#integration-server-sdk5-unreal-processready). 

**Note**  
Si les appels à échouent pour `InitSDK()` les builds de jeu déployés sur des flottes Anywhere, vérifiez le `ServerSdkVersion` paramètre utilisé lors de la création de la ressource de build. Vous devez définir explicitement cette valeur en fonction de la version du SDK du serveur utilisée. La valeur par défaut de ce paramètre est 4.x, ce qui n'est pas compatible. Pour résoudre ce problème, créez une nouvelle version et déployez-la sur une nouvelle flotte.

### Exemple
<a name="integration-server-sdk5-unreal-initsdk-anywhere-example"></a>

```
//Define the server parameters
FServerParameters serverParameters;
parameters.m_authToken = "1111aaaa-22bb-33cc-44dd-5555eeee66ff"; 
parameters.m_fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa";
parameters.m_hostId = "HardwareAnywhere"; 
parameters.m_processId = "PID1234";
parameters.m_webSocketUrl = "wss://us-west-1.api.amazongamelift.com"; 

//Call InitSDK to establish a local connection with the Amazon GameLift Servers Agent to enable further communication.
FGameLiftGenericOutcome initSdkOutcome = GameLiftSdkModule->InitSDK(serverParameters);
```

## ProcessReady()
<a name="integration-server-sdk5-unreal-processready"></a>

Amazon GameLift ServersIndique que le processus du serveur est prêt à héberger des sessions de jeu. Appelez cette méthode après l'avoir invoquée. [InitSDK()](#integration-server-sdk5-unreal-initsdk) Cette méthode ne doit être appelée qu'une seule fois par processus.

### Syntaxe
<a name="integration-server-sdk5-unreal-processready-syntax"></a>

`GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);`

### Parameters
<a name="integration-server-sdk5-unreal-processready-parameter"></a>

**processParameters**  
[FProcessParamètres](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-process)Objet communiquant les informations suivantes concernant le processus du serveur :  
+ Noms des méthodes de rappel implémentées dans le code du serveur de jeu que le Amazon GameLift Servers service invoque pour communiquer avec le processus du serveur.
+ Numéro de port sur lequel le processus serveur écoute.
+ Chemin vers les fichiers spécifiques à une session de jeu que vous voulez qu'Amazon GameLift Servers capture et stocke.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-processready-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-processready-example"></a>

Cet exemple illustre les implémentations de l'appel [ProcessReady()](#integration-server-sdk5-unreal-processready) et de la fonction déléguée.

```
//Calling ProcessReady tells Amazon GameLift Servers this game server is ready to receive incoming game sessions!
UE_LOG(GameServerLog, Log, TEXT("Calling Process Ready"));
FGameLiftGenericOutcome processReadyOutcome = GameLiftSdkModule->ProcessReady(*params);
```

## ProcessEnding()
<a name="integration-server-sdk5-unreal-processending"></a>

Amazon GameLift ServersIndique que le processus du serveur est en train de se terminer. Appelez cette méthode après toutes les autres tâches de nettoyage (y compris la fermeture de la session de jeu active) et avant de terminer le processus. En fonction du résultat de`ProcessEnding()`, le processus se termine avec succès (0) ou erreur (-1) et génère un événement de flotte. Si le processus se termine par une erreur, l'événement de flotte généré est`SERVER_PROCESS_TERMINATED_UNHEALTHY`).

### Syntaxe
<a name="integration-server-sdk5-unreal-processending-syntax"></a>

```
FGameLiftGenericOutcome ProcessEnding()
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-processending-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-processending-example"></a>

```
//OnProcessTerminate callback. Amazon GameLift Servers will invoke this callback before shutting down an instance hosting this game server.
//It gives this game server a chance to save its state, communicate with services, etc., before being shut down.
//In this case, we simply tell Amazon GameLift Servers we are indeed going to shutdown.
params->OnTerminate.BindLambda([=]() {
  UE_LOG(GameServerLog, Log, TEXT("Game Server Process is terminating"));
  GameLiftSdkModule->ProcessEnding();
});
```

## ActivateGameSession()
<a name="integration-server-sdk5-unreal-activategamesession"></a>

Amazon GameLift ServersIndique que le processus du serveur a activé une session de jeu et qu'il est maintenant prêt à recevoir les connexions des joueurs. Cette action doit être appelée dans le cadre de la fonction de `onStartGameSession()` rappel, après toute initialisation de session de jeu.

### Syntaxe
<a name="integration-server-sdk5-unreal-activategamesession-syntax"></a>

```
FGameLiftGenericOutcome ActivateGameSession()
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-activategamesession-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-activategamesession-example"></a>

Cet exemple montre l'`ActivateGameSession()`appel dans le cadre de la fonction de `onStartGameSession()` délégation. 

```
//When a game session is created, Amazon GameLift Servers sends an activation request to the game server and passes along the game session object containing game properties and other settings.
//Here is where a game server should take action based on the game session object.
//Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession()
auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession)
{
  FString gameSessionId = FString(gameSession.GetGameSessionId());
  UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId);
  GameLiftSdkModule->ActivateGameSession();
};
```

## UpdatePlayerSessionCreationPolicy()
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy"></a>

Met à jour la capacité de la session de jeu à accepter de nouvelles sessions de joueur. Une session de jeu peut être définie pour accepter ou refuser toutes les nouvelles sessions joueur.

### Syntaxe
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-syntax"></a>

```
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
```

### Parameters
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-parameter"></a>

**playerCreationSessionPolitique**  
Valeur de chaîne indiquant si la session de jeu accepte ou non de nouveaux joueurs.   
Les valeurs valides sont les suivantes :  
+ **ACCEPT\_ALL — Accepte toutes les** sessions de nouveaux joueurs.
+ **DENY\_ALL — Refuse toutes les** sessions de nouveaux joueurs.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-updateplayersessioncreationpolicy-example"></a>

Cet exemple définit la stratégie de participation de la session de jeu actuelle de manière à ce que tous les joueurs soient acceptés.

```
FGameLiftGenericOutcome outcome = GameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::ACCEPT_ALL);
```

## GetGameSessionId()
<a name="integration-server-sdk5-unreal-getgamesessionid"></a>

Récupère l'ID de la session de jeu hébergée par le processus serveur actif. 

Pour les processus inactifs qui ne sont pas activés lors d'une session de jeu, l'appel renvoie un[FGameLiftError](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-gamelifterror).

### Syntaxe
<a name="integration-server-sdk5-unreal-getgamesessionid-syntax"></a>

```
FGameLiftStringOutcome GetGameSessionId()
```

### Parameters
<a name="integration-server-sdk5-unreal-getgamesessionid-parameter"></a>

Cette action n'a aucun paramètre.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-getgamesessionid-return"></a>

En cas de réussite, renvoie l'ID de session de jeu en tant qu'objet [FGameLiftStringOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-awsstringoutcome). En cas d'échec, renvoie un message d'erreur. »

Pour les processus inactifs qui ne sont pas activés lors d'une session de jeu, l'appel renvoie `Success` = `True` et `GameSessionId` =`""`.

### Exemple
<a name="integration-server-sdk5-unreal-getgamesessionid-example"></a>

```
//When a game session is created, Amazon GameLift Servers sends an activation request to the game server and passes along the game session object containing game properties and other settings.
//Here is where a game server should take action based on the game session object.
//Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession()
auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession)
{
  FString gameSessionId = FString(gameSession.GetGameSessionId());
  UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId);
  GameLiftSdkModule->ActivateGameSession();
};
```

## GetTerminationTime()
<a name="integration-server-sdk5-unreal-getterm"></a>

Renvoie l'heure d'arrêt planifiée pour un processus serveur, si une heure de résiliation est disponible. Un processus serveur prend des mesures après avoir reçu un `onProcessTerminate()` rappel deAmazon GameLift Servers. Amazon GameLift Serversappels `onProcessTerminate()` pour les raisons suivantes : 
+ Lorsque le processus du serveur a signalé un mauvais état de santé ou n'a pas réponduAmazon GameLift Servers.
+ Lorsque vous mettez fin à l'instance lors d'un événement de réduction de la taille.
+ Lorsqu'une instance est interrompue en raison d'une interruption [ponctuelle](spot-tasks.md).

### Syntaxe
<a name="integration-server-sdk5-unreal-getterm-syntax"></a>

```
AwsDateTimeOutcome GetTerminationTime()
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-getterm-return"></a>

En cas de succès, renvoie l'heure de fin sous forme d'`AwsDateTimeOutcome`objet. La valeur est le délai de résiliation, exprimé en ticks écoulés depuis. `0001 00:00:00` Par exemple, la valeur de la date et de l'heure `2020-09-13 12:26:40 -000Z` est égale à celle `637355968000000000` des ticks. Si aucune heure de résiliation n'est disponible, renvoie un message d'erreur.

Si le processus n'a pas reçu de ` ProcessParameters.OnProcessTerminate()` rappel, un message d'erreur est renvoyé. Pour plus d'informations sur l'arrêt d'un processus serveur, consultez[Répondre à une notification d'arrêt du processus du serveur](gamelift-sdk-server-api.md#gamelift-sdk-server-terminate).

### Exemple
<a name="integration-server-sdk5-unreal-getterm-example"></a>

```
AwsDateTimeOutcome TermTimeOutcome = GameLiftSdkModule->GetTerminationTime();
```

## AcceptPlayerSession()
<a name="integration-server-sdk5-unreal-acceptplayersession"></a>

Amazon GameLift ServersIndique qu'un joueur avec l'identifiant de session de joueur spécifié s'est connecté au processus du serveur et doit être validé. Amazon GameLift Serversvérifie que l'identifiant de session du joueur est valide. Une fois la session du joueur validée, le statut de l'emplacement du joueur Amazon GameLift Servers passe de RÉSERVÉ à ACTIF. 

### Syntaxe
<a name="integration-server-sdk5-unreal-acceptplayersession-syntax"></a>

```
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-acceptplayersession-parameter"></a>

playerSessionId  
Identifiant unique émis Amazon GameLift Servers lors de la création d'une nouvelle session de joueur.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-acceptplayersession-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur. 

### Exemple
<a name="integration-server-sdk5-unreal-acceptplayersession-example"></a>

Cet exemple traite une demande de connexion qui inclut la validation et le rejet d'une session de joueur non valide. IDs

```
bool GameLiftManager::AcceptPlayerSession(const FString& playerSessionId, const FString& playerId)
{
  #if WITH_GAMELIFT
  UE_LOG(GameServerLog, Log, TEXT("Accepting GameLift PlayerSession: %s . PlayerId: %s"), *playerSessionId, *playerId);
  FString gsId = GetCurrentGameSessionId();
  if (gsId.IsEmpty()) {
    UE_LOG(GameServerLog, Log, TEXT("No GameLift GameSessionId. Returning early!"));
    return false;
  }
  
  if (!GameLiftSdkModule->AcceptPlayerSession(playerSessionId).IsSuccess()) {
    UE_LOG(GameServerLog, Log, TEXT("PlayerSession not Accepted."));
    return false;
  }

  // Add PlayerSession from internal data structures keeping track of connected players
  connectedPlayerSessionIds.Add(playerSessionId);
  idToPlayerSessionMap.Add(playerSessionId, PlayerSession{ playerId, playerSessionId });
  return true;
  #else
  return false;
  #endif
}
```

## RemovePlayerSession()
<a name="integration-server-sdk5-unreal-removeplayersession"></a>

Indique Amazon GameLift Servers qu'un joueur s'est déconnecté du processus serveur. En réponse, Amazon GameLift Servers change l'emplacement du joueur pour le rendre disponible. 

### Syntaxe
<a name="integration-server-sdk5-unreal-removeplayersession-syntax"></a>

```
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
```

### Parameters
<a name="integration-server-sdk5-unreal-removeplayersession-parameter"></a>

**`playerSessionId`**  
Identifiant unique émis Amazon GameLift Servers lors de la création d'une nouvelle session de joueur.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-removeplayersession-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-removeplayersession-example"></a>

```
bool GameLiftManager::RemovePlayerSession(const FString& playerSessionId)
{
  #if WITH_GAMELIFT
  UE_LOG(GameServerLog, Log, TEXT("Removing GameLift PlayerSession: %s"), *playerSessionId);

  if (!GameLiftSdkModule->RemovePlayerSession(playerSessionId).IsSuccess()) {
    UE_LOG(GameServerLog, Log, TEXT("PlayerSession Removal Failed"));
    return false;
  }

  // Remove PlayerSession from internal data structures that are keeping track of connected players
  connectedPlayerSessionIds.Remove(playerSessionId);
  idToPlayerSessionMap.Remove(playerSessionId);

  // end the session if there are no more players connected
  if (connectedPlayerSessionIds.Num() == 0) {
    EndSession();
  }

  return true;
  #else
  return false;
  #endif
}
```

## DescribePlayerSessions()
<a name="integration-server-sdk5-unreal-describeplayersessions"></a>

Récupère les données de session du joueur, notamment les paramètres, les métadonnées de session et les données du joueur. Utilisez cette méthode pour obtenir des informations sur les points suivants :
+ Une session solo
+ Toutes les sessions des joueurs dans une session de jeu
+ Toutes les sessions de joueur associées à un identifiant de joueur unique

### Syntaxe
<a name="integration-server-sdk5-unreal-describeplayersessions-syntax"></a>

```
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
```

### Parameters
<a name="integration-server-sdk5-unreal-describeplayersessions-parameter"></a>

**[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)**  
[FGameLiftDescribePlayerSessionsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-playersessions)Objet qui décrit les sessions de joueur à récupérer.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-describeplayersessions-return"></a>

En cas de réussite, renvoie un objet [FGameLiftDescribePlayerSessionsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-describeplayersessionsoutcome) qui contient un ensemble d'objets de session de joueur correspondant aux paramètres de la demande.

### Exemple
<a name="integration-server-sdk5-unreal-describeplayersessions-example"></a>

Cet exemple demande toutes les sessions de joueur activement connectées à une session de jeu spécifiée. En omettant *NextToken*et en définissant la valeur *limite* sur 10, Amazon GameLift Servers renvoie les 10 premiers enregistrements de session de joueur correspondant à la demande.

```
void GameLiftManager::DescribePlayerSessions()
{
  #if WITH_GAMELIFT
  FString localPlayerSessions;
  for (auto& psId : connectedPlayerSessionIds)
  {
    PlayerSession ps = idToPlayerSessionMap[psId];
    localPlayerSessions += FString::Printf(TEXT("%s : %s  ; "), *(ps.playerSessionId), *(ps.playerId));
  }
  UE_LOG(GameServerLog, Log, TEXT("LocalPlayerSessions: %s"), *localPlayerSessions);

  UE_LOG(GameServerLog, Log, TEXT("Describing PlayerSessions in this GameSession"));
  FGameLiftDescribePlayerSessionsRequest request;
  request.m_gameSessionId = GetCurrentGameSessionId();

  FGameLiftDescribePlayerSessionsOutcome outcome = GameLiftSdkModule->DescribePlayerSessions(request);
  LogDescribePlayerSessionsOutcome(outcome);
  #endif
}
```

## StartMatchBackfill()
<a name="integration-server-sdk5-unreal-startmatchbackfill"></a>

Envoie une demande de recherche de nouveaux joueurs pour des emplacements ouverts dans une session de jeu créée avec FlexMatch. Pour plus d'informations, voir la [fonction de FlexMatch remblayage](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

Cette action est asynchrone. Si de nouveaux joueurs sont jumelés, Amazon GameLift Servers fournit des données de matchmaking mises à jour à l'aide de la fonction de rappel. `OnUpdateGameSession()`

Un processus de serveur ne peut comporter qu'une seule requête de renvoi de correspondance à la fois. Pour envoyer une nouvelle requête, appelez d'abord [StopMatchBackfill()](#integration-server-sdk5-unreal-stopmatchbackfill) pour annuler la requête d'origine.

### Syntaxe
<a name="integration-server-sdk5-unreal-startmatchbackfill-syntax"></a>

```
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-startmatchbackfill-parameter"></a>

**[FStartMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-startmatchbackfillrequest)**  
Un StartMatchBackfillRequest objet qui communique les informations suivantes :  
+ ID de ticket à attribuer à la requête de renvoi. Ces informations sont facultatives ; si aucun identifiant n'est fourni, il en Amazon GameLift Servers générera un.
+ Matchmaker auquel envoyer la requête. L'ARN de configuration complet est obligatoire. Cette valeur se trouve dans les données du matchmaker de la session de jeu.
+ ID de la session de jeu à compléter.
+ Les données de matchmaking disponibles pour les joueurs actuels de la session de jeu.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-startmatchbackfill-return"></a>

Renvoie un `StartMatchBackfillOutcome` objet avec l'identifiant du ticket de remplacement correspondant, ou un échec avec un message d'erreur. 

### Exemple
<a name="integration-server-sdk5-unreal-startmatchbackfill-example"></a>

```
FGameLiftStringOutcome FGameLiftServerSDKModule::StartMatchBackfill(const FStartMatchBackfillRequest& request) 
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::StartMatchBackfillRequest sdkRequest;
  sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId));
  sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn));
  sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn));
  for (auto player : request.m_players) {
    Aws::GameLift::Server::Model::Player sdkPlayer;
    sdkPlayer.SetPlayerId(TCHAR_TO_UTF8(*player.m_playerId));
    sdkPlayer.SetTeam(TCHAR_TO_UTF8(*player.m_team));
    for (auto entry : player.m_latencyInMs) {
      sdkPlayer.WithLatencyMs(TCHAR_TO_UTF8(*entry.Key), entry.Value);
    }

    std::map<std::string, Aws::GameLift::Server::Model::AttributeValue> sdkAttributeMap;
    for (auto attributeEntry : player.m_playerAttributes) {
      FAttributeValue value = attributeEntry.Value;
      Aws::GameLift::Server::Model::AttributeValue attribute;
      switch (value.m_type) {
        case FAttributeType::STRING:
          attribute = Aws::GameLift::Server::Model::AttributeValue(TCHAR_TO_UTF8(*value.m_S));
        break;
        case FAttributeType::DOUBLE:
          attribute = Aws::GameLift::Server::Model::AttributeValue(value.m_N);
        break;
        case FAttributeType::STRING_LIST:
          attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringList();
          for (auto sl : value.m_SL) {
            attribute.AddString(TCHAR_TO_UTF8(*sl));
          };
        break;
        case FAttributeType::STRING_DOUBLE_MAP:
          attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringDoubleMap();
          for (auto sdm : value.m_SDM) {
            attribute.AddStringAndDouble(TCHAR_TO_UTF8(*sdm.Key), sdm.Value);
          };
        break;
      }
      sdkPlayer.WithPlayerAttribute((TCHAR_TO_UTF8(*attributeEntry.Key)), attribute);
    }
    sdkRequest.AddPlayer(sdkPlayer);
  }
  auto outcome = Aws::GameLift::Server::StartMatchBackfill(sdkRequest);
  if (outcome.IsSuccess()) {
    return FGameLiftStringOutcome(outcome.GetResult().GetTicketId());
  }
  else {
    return FGameLiftStringOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftStringOutcome("");
  #endif
}
```

## StopMatchBackfill()
<a name="integration-server-sdk5-unreal-stopmatchbackfill"></a>

Annule une demande de remplacement de match active. Pour plus d'informations, voir la [fonction de FlexMatch remblayage](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-backfill.html).

### Syntaxe
<a name="integration-server-sdk5-unreal-stopmatchbackfill-syntax"></a>

```
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
```

### Parameters
<a name="integration-server-sdk5-unreal-stopmatchbackfill-parameter"></a>

**[FStopMatchBackfillRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-stopmatchbackfillrequest)**  
Un StopMatchBackfillRequest objet identifiant le ticket de matchmaking à annuler :   
+ L'identifiant du ticket attribué à la demande de remblayage.
+ L'entremetteur à qui la demande de remblayage a été envoyée.
+ La session de jeu associée à la demande de remplacement.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-stopmatchbackfill-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-stopmatchbackfill-example"></a>

```
FGameLiftGenericOutcome FGameLiftServerSDKModule::StopMatchBackfill(const FStopMatchBackfillRequest& request)
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::StopMatchBackfillRequest sdkRequest;
  sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId));
  sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn));
  sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn));
  auto outcome = Aws::GameLift::Server::StopMatchBackfill(sdkRequest);
  if (outcome.IsSuccess()) {
    return FGameLiftGenericOutcome(nullptr);
  }
  else {
    return FGameLiftGenericOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGenericOutcome(nullptr);
  #endif
}
```

## GetComputeCertificate()
<a name="integration-server-sdk5-unreal-getcomputecertificate"></a>

Récupère le chemin d'accès au certificat TLS utilisé pour chiffrer la connexion réseau entre votre ressource de calcul Amazon GameLift Servers Anywhere et. Amazon GameLift Servers Vous pouvez utiliser le chemin du certificat lorsque vous enregistrez votre appareil informatique dans un parc Amazon GameLift Servers Anywhere. Pour plus d'informations, voir, [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html).

### Syntaxe
<a name="integration-server-sdk5-unreal-getcomputecertificate-syntax"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
```

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-getcomputecertificate-return"></a>

Renvoie un `GetComputeCertificateResponse` objet contenant les éléments suivants : 
+ CertificatePath: chemin d'accès au certificat TLS sur votre ressource de calcul. 
+ HostName: nom d'hôte de votre ressource de calcul.

### Exemple
<a name="integration-server-sdk5-unreal-getcomputecertificate-example"></a>

```
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
{
  #if WITH_GAMELIFT
  auto outcome = Aws::GameLift::Server::GetComputeCertificate();
  if (outcome.IsSuccess()) {
    auto& outres = outcome.GetResult();
    FGameLiftGetComputeCertificateResult result;
    result.m_certificate_path = UTF8_TO_TCHAR(outres.GetCertificatePath());
    result.m_computeName = UTF8_TO_TCHAR(outres.GetComputeName());
    return FGameLiftGetComputeCertificateOutcome(result);
  }
  else {
    return FGameLiftGetComputeCertificateOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGetComputeCertificateOutcome(FGameLiftGetComputeCertificateResult());
  #endif
}
```

## GetFleetRoleCredentials()
<a name="integration-server-sdk5-unreal-getfleetrolecredentials"></a>

Récupère les informations d'identification du rôle IAM qui autorisent l'interaction avec Amazon GameLift Servers d'autres utilisateurs. Services AWS Pour de plus amples informations, veuillez consulter [Connectez votre serveur de jeu Amazon GameLift Servers hébergé à d'autres AWS ressources](gamelift-sdk-server-resources.md).

### Syntaxe
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-syntax"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
```

### Parameters
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-parameters"></a>

[FGameLiftGetFleetRoleCredentialsRequest](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsrequest)

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-return"></a>

Renvoie un objet [FGameLiftGetFleetRoleCredentialsOutcome](integration-server-sdk5-unreal-datatypes.md#integration-server-sdk5-unreal-dataypes-getfleetrolecredentialsoutcome).

### Exemple
<a name="integration-server-sdk5-unreal-getfleetrolecredentials-example"></a>

```
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
{
  #if WITH_GAMELIFT
  Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest sdkRequest;
  sdkRequest.SetRoleArn(TCHAR_TO_UTF8(*request.m_roleArn));
  sdkRequest.SetRoleSessionName(TCHAR_TO_UTF8(*request.m_roleSessionName));

  auto outcome = Aws::GameLift::Server::GetFleetRoleCredentials(sdkRequest);

  if (outcome.IsSuccess()) {
    auto& outres = outcome.GetResult();
    FGameLiftGetFleetRoleCredentialsResult result;
    result.m_assumedUserRoleArn = UTF8_TO_TCHAR(outres.GetAssumedUserRoleArn());
    result.m_assumedRoleId = UTF8_TO_TCHAR(outres.GetAssumedRoleId());
    result.m_accessKeyId = UTF8_TO_TCHAR(outres.GetAccessKeyId());
    result.m_secretAccessKey = UTF8_TO_TCHAR(outres.GetSecretAccessKey());
    result.m_sessionToken = UTF8_TO_TCHAR(outres.GetSessionToken());
    result.m_expiration = FDateTime::FromUnixTimestamp(outres.GetExpiration());
    return FGameLiftGetFleetRoleCredentialsOutcome(result);
  }
  else {
    return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftError(outcome.GetError()));
  }
  #else
  return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftGetFleetRoleCredentialsResult());
  #endif
}
```

## Détruire ()
<a name="integration-server-sdk5-unreal-ref-destroy"></a>

Libère de la mémoire le SDK du serveur de Amazon GameLift Servers jeu. Il est recommandé d'appeler cette méthode après `ProcessEnding()` et avant de terminer le processus. Si vous utilisez une flotte Anywhere et que vous n'interrompez pas les processus du serveur après chaque session de jeu, appelez `Destroy()` puis `InitSDK()` réinitialisez avant de signaler Amazon GameLift Servers que le processus est prêt à héberger une session de jeu avec. `ProcessReady()`

### Syntaxe
<a name="integration-server-sdk5-unreal-ref-destroy-syntax"></a>

```
FGameLiftGenericOutcome Destroy();
```

### Parameters
<a name="integration-server-sdk5-unreal-ref-destroy-parameter"></a>

Il n'y a aucun paramètre.

### Valeur renvoyée
<a name="integration-server-sdk5-unreal-ref-destroy-return"></a>

Renvoie un résultat générique consistant en un succès ou un échec avec un message d'erreur.

### Exemple
<a name="integration-server-sdk5-unreal-ref-destroy-example"></a>

```
// First call ProcessEnding()
FGameLiftGenericOutcome processEndingOutcome = GameLiftSdkModule->ProcessEnding();
  
// Then call Destroy() to free the SDK from memory
FGameLiftGenericOutcome destroyOutcome = GameLiftSdkModule->Destroy();
  
// Exit the process with success or failure
if (processEndingOutcome.IsSuccess() && destroyOutcome.IsSuccess()) 
    {
    UE_LOG(GameServerLog, Log, TEXT("Server process ending successfully"));
}
else {
    if (!processEndingOutcome.IsSuccess()) {
        const FGameLiftError& error = processEndingOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("ProcessEnding() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
    if (!destroyOutcome.IsSuccess()) {
        const FGameLiftError& error = destroyOutcome.GetError();
        UE_LOG(GameServerLog, Error, TEXT("Destroy() failed. Error: %s"),
        error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage);
    }
}
```