

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.

# Enregistrement des annotations, des métadonnées et des ID utilisateur
<a name="scorekeep-annotations"></a>

**Note**  
X-Ray SDK/Daemon Avis de maintenance — Le 25 février 2026, il passera en mode maintenance, où les versions du X-Ray SDK et du démon AWS seront limitées pour résoudre uniquement les problèmes de sécurité. AWS X-Ray SDKs/Daemon Pour plus d'informations sur la chronologie du support, consultez[Chronologie du support pour le SDK et Daemon X-Ray](xray-sdk-daemon-timeline.md). Nous vous recommandons de migrer vers OpenTelemetry. Pour plus d'informations sur la migration vers OpenTelemetry, consultez la section [ Migration d'une X-Ray instrumentation à OpenTelemetry une autre. ](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html)

Dans la classe des modèles de jeu, l'application enregistre `Game` des objets dans un [ bloc de ](xray-sdk-java-segment.md#xray-sdk-java-segment-metadata) métadonnées chaque fois qu'elle enregistre un jeu dans DynamoDB. L'application enregistre séparément les ID de jeu dans les [annotations](xray-sdk-java-segment.md#xray-sdk-java-segment-annotations) en vue d'une utilisation avec les [expressions de filtre](xray-console-filters.md).

**Example [`src/main/java/scorekeep/GameModel.java`](https://github.com/awslabs/eb-java-scorekeep/tree/xray/src/main/java/scorekeep/GameModel.java) — Annotations et métadonnées**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
import [com.amazonaws.xray.entities.Segment](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/entities/Segment.html);
import [com.amazonaws.xray.entities.Subsegment](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/entities/Subsegment.html);
...
  public void saveGame(Game game) throws SessionNotFoundException {
    // wrap in subsegment
    Subsegment subsegment = AWSXRay.beginSubsegment("## GameModel.saveGame");
    try {
      // check session
      String sessionId = game.getSession();
      if (sessionModel.loadSession(sessionId) == null ) {
        throw new SessionNotFoundException(sessionId);
      }
      Segment segment = AWSXRay.getCurrentSegment();
      subsegment.putMetadata("resources", "game", game);
      segment.putAnnotation("gameid", game.getId());
      mapper.save(game);
    } catch (Exception e) {
      subsegment.addException(e);
      throw e;
    } finally {
      AWSXRay.endSubsegment();
    }
  }
```

Dans le contrôleur de déplacement, l'application enregistre les [ID utilisateur](xray-sdk-java-segment.md#xray-sdk-java-segment-userid) avec `setUser`. Les ID utilisateur sont enregistrés dans un champ distinct des segments et indexés en vue d'une utilisation avec la recherche.

**Example [src/main/java/scorekeep/MoveController.java](https://github.com/awslabs/eb-java-scorekeep/tree/xray/src/main/java/scorekeep/MoveController.java) — Identifiant utilisateur**  

```
import [com.amazonaws.xray.AWSXRay](https://docs.aws.amazon.com/xray-sdk-for-java/latest/javadoc/com/amazonaws/xray/AWSXRay.html);
...
  @RequestMapping(value="/{userId}", method=RequestMethod.POST)
  public Move newMove(@PathVariable String sessionId, @PathVariable String gameId, @PathVariable String userId, @RequestBody String move) throws SessionNotFoundException, GameNotFoundException, StateNotFoundException, RulesException {
    AWSXRay.getCurrentSegment().setUser(userId);
    return moveFactory.newMove(sessionId, gameId, userId, move);
  }
```