Aufzeichnung von Anmerkungen, Metadaten und Benutzer-IDs - AWS X-Ray

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.

Aufzeichnung von Anmerkungen, Metadaten und Benutzer-IDs

In der Spielmodellklasse zeichnet die Anwendung Game jedes Mal Objekte in einem Metadatenblock auf, wenn sie ein Spiel in DynamoDB speichert. Unabhängig davon erfasst die Anwendung Spiel-IDs in Anmerkungen zur Verwendung mit Filterausdrücken.

Beispiel src/main/java/scorekeep/GameModel.java – Anmerkungen und Metadaten
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(); } }

Im Bewegungs-Controller erfasst die Anwendung Benutzer-IDs mit setUser. Benutzer-IDs werden in einem eigenen Feld aufgezeichnet und zur Suche indiziert.

Beispiel src/main/java/scorekeep/MoveController.java – Benutzer-ID
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); }