記錄標註、中繼資料及使用者 ID - AWS X-Ray

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

記錄標註、中繼資料及使用者 ID

在遊戲模型類別中,每次將遊戲儲存到 DynamoDB 時,應用程式都會在中繼資料區塊中記錄Game物件。應用程式還會另外在標註中記錄遊戲 ID,用於篩選條件表達式

範例 src/main/java/scorekeep/GameModel.java— 註釋和元數據
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(); } }

在移動控制器中,應用程序使用記錄用戶 ID setUser。區段會將使用者 ID 記錄在單獨的欄位中,並建立索引以用於搜尋。

範例 src /主/爪/記分/. Java MoveController-用戶識別碼
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); }