

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

# 修正 MediaTailor 的 CDN 工作階段管理和追蹤問題
<a name="diagnose-session-issues"></a>

AWS Elemental MediaTailor 內容交付網路 (CDN) 工作階段管理對於適當的廣告個人化和追蹤至關重要。如果您在請求之間遇到工作階段相關錯誤或不一致的行為：

1. 檢查工作階段 ID 一致性：
   + 確認您的播放器在單一播放工作階段的所有請求中維持相同的工作階段 ID
   + 檢查 CDN 日誌以確認工作階段 IDs已正確轉送
   + 確保工作階段 IDs查詢參數中正確編碼 URL
   + 使用 CloudWatch Logs 驗證請求之間的工作階段 ID 一致性 （請參閱下面的驗證步驟）

1. 驗證工作階段初始化：
   + 確認第一個資訊清單請求已成功建立工作階段
   + 檢查工作階段參數轉送是否正確 （例如 `aws.sessionId`)
   + 使用偵錯日誌驗證工作階段初始化 （請參閱下面的偵錯日誌設定）

1. 針對詳細的工作階段疑難排解啟用偵錯記錄：
   + **對於伺服器端報告：**`?aws.logMode=DEBUG`新增至播放請求：

     ```
     GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.logMode=DEBUG
     ```
   + **對於用戶端報告：**包含在您的工作階段初始化請求內文`"logMode": "DEBUG"`中
   + **重要：**此`DEBUG`值區分大小寫
   + 同時允許最多 10 個作用中偵錯工作階段

1. 使用 CloudWatch Logs 查詢來驗證工作階段行為：
   + **驗證偵錯工作階段是否作用中：**

     ```
     fields @timestamp, @message
     | filter sessionId = "your-session-id-here"
     | filter eventType = "SESSION_INITIALIZED" # client-side reporting
     or mediaTailorPath like "/v1/master" # server-side reporting HLS
     or mediaTailorPath like "/v1/dash" # server-side reporting DASH
     ```
   + **檢視工作階段的所有事件：**

     ```
     fields @timestamp, @message, eventType, mediaTailorPath
     | filter sessionId = "your-session-id-here"
     | sort @timestamp asc
     ```
   + **檢查工作階段的資訊清單產生：**

     ```
     fields @timestamp, responseBody, @message
     | filter mediaTailorPath like "/v1/master/" and eventType = "GENERATED_MANIFEST" and sessionId = "your-session-id-here"
     ```

1. 透過 CDN 轉送測試工作階段參數：
   + 直接針對 MediaTailor 使用工作階段參數測試資訊清單請求 （繞過 CDN)
   + 比較含和不含 CDN 的工作階段行為，以識別轉送問題
   + 驗證 CDN 查詢參數轉送組態包含工作階段相關參數
   + 檢查 CDN 是否未快取應特定於工作階段的回應

**常見的工作階段錯誤訊息：**
+ `ConflictException` (HTTP 409) - 相同工作階段的多個同時播放清單請求。**解決方案：**確保您的玩家根據 HLS 規格一次請求播放清單
+ `NotFoundException` (HTTP 404) - 工作階段無法使用或組態不存在。**解決方案：**檢查您的組態有效性並重新初始化工作階段
+ `BadRequestException` (HTTP 400) - 工作階段 ID 無效或請求格式不正確。**解決方案：**驗證請求格式和工作階段 ID 有效性

**其他疑難排解資源：**
+ 如需完整的偵錯記錄設定和欄位參考，請參閱 [產生 AWS Elemental MediaTailor 偵錯日誌](debug-log-mode.md)
+ 如需 CloudWatch Logs 查詢範例和日誌分析，請參閱 [將 AWS Elemental MediaTailor 日誌直接寫入 Amazon CloudWatch Logs](monitoring-cw-logs.md)
+ 如需 CDN 查詢參數轉送組態，請參閱 [設定 MediaTailor 的 CDN 路由行為](cdn-routing-behaviors.md)
+ 如需完整的錯誤代碼參考，請參閱 [從 MediaTailor 對播放進行故障診斷](playback-errors.md)

**成功條件：**解決時，工作階段應正確初始化，在請求之間維持一致的工作階段 IDs，偵錯日誌應顯示適當的`SESSION_INITIALIZED`事件和資訊清單產生，而不會發生錯誤。