As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Registrando anotações, metadados e IDs de usuário
nota
X-Ray SDK/Daemon Aviso de manutenção — Em 25 de fevereiro de 2026, AWS X-Ray SDKs/Daemon ele entrará no modo de manutenção, onde AWS limitará os lançamentos do X-Ray SDK e do Daemon para tratar apenas de problemas de segurança. Para obter mais informações sobre a linha do tempo do suporte, consulte Cronograma de suporte do X-Ray SDK e do Daemon Support. Recomendamos migrar para o. OpenTelemetry Para obter mais informações sobre como migrar para OpenTelemetry, consulte Migração da X-Ray instrumentação para a instrumentação. OpenTelemetry
Na classe de modelos de jogos, o aplicativo registra objetos Game em um bloco de metadados toda vez que salva um jogo no DynamoDB. Separadamente, o aplicativo registra IDs de jogos em anotações para serem usados com expressões de filtragem.
exemplo src/main/java/scorekeep/GameModel.java — Anotações e metadados
import com.amazonaws.xray.AWSXRay;
import com.amazonaws.xray.entities.Segment;
import com.amazonaws.xray.entities.Subsegment;
...
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();
}
}No controlador de movimento, o aplicativo registra IDs de usuário com setUser. Os IDs de usuário são registrados em um campo separado nos segmentos e são indexados para serem usados com pesquisa.
exemplo src/main/java/scorekeep/MoveController.java — ID de usuário
import com.amazonaws.xray.AWSXRay;
...
@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);
}