

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对 CDN 集成 MediaTailor 和 CDN 集成问题进行故障排除
<a name="cdn-troubleshooting"></a>

这份全面的故障排除指南涵盖了所有 AWS Elemental MediaTailor 实现中常见的内容分发网络 (CDN) 集成问题，包括服务器端广告插入 (SSAI)、渠道组装和集成。 AWS Elemental MediaPackage 当你的 CDN 和 MediaTailor 集成遇到问题时，请使用这种系统的诊断方法快速确定根本原因并实施经过验证的解决方案。

无论您的具体工作流程如何，本指南都适用于所有 MediaTailor CDN 集成。有关特定服务或工作流程的问题，请参阅本指南末尾提及的相关疑难解答部分。

**开始之前：**准备好以下物品以进行高效的故障排除：
+ 演示问题的回放 URLs 示例
+ 问题发生时段的 CDN 访问日志
+ MediaTailor 配置名称和 AWS 区域
+ 玩家类型和版本（例如，HLS.js 1.4.0、Video.js 8.0）
+ 出现问题的设备和浏览器信息

**相关话题：**
+ 有关操作设置和故障排除准备工作，请参阅 [对 CDN 集成进行故障排除](#cdn-troubleshooting)
+ 有关日志分析和错误代码参考，请参见 [CDN 集成日志分析参考](cdn-log-error-reference.md)
+ 有关升级和获取更多帮助，请参阅 [获取 CDN 集成支持](cdn-get-help.md)

# MediaTailor 和 CDN 集成的诊断清单
<a name="quick-diagnostic-checklist"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 集成问题可能以多种方式表现出来。使用此清单快速确定您遇到的问题类型：

1. **该问题是否影响了所有观众或特定观众？**
   + 所有观众 → 可能有 CDN 或 MediaTailor 配置问题
   + 特定观众 → 可能存在个性化或定位问题

1. **清单是否正确加载？**
   + 否 → CDN 路由或 MediaTailor 连接问题
   + 是的，但是内容不对 → 缓存或个性化问题

1. **区段加载是否正确？**
   + 内容分段失败 → Origin 连接问题
   + 广告区段失败 → 广告投放或转码问题

1. **广告的插入是否正确？**
   + 未显示任何广告 → 检查 ADS 连接和配置
   + 出现错误的广告 → 检查广告定位参数和个性化设置
   + 广告无法播放 → 查看广告转码和区段可用性

1. **播放是否流畅且不间断？**
   + 缓冲问题 → 检查 CDN 缓存性能和源站响应时间
   + 播放错误 → 检查清单语法和片段可用性
   + 广告过渡问题 → 检查广告中断时间和区段对齐情况

1. **是否有特定的错误代码或消息？**
   + HTTP 4xx 错误 → 检查 CDN 的路由和配置
   + HTTP 5xx 错误 → 检查源服务器和 MediaTailor 服务运行状况
   + 玩家特定的错误 → 检查清单格式和玩家兼容性

**基于您的诊断的后续步骤：**

CDN 配置问题  
有关 CDN 路由和缓存故障排除的详细信息，请参阅[对 CDN 集成 MediaTailor 和 CDN 集成问题进行故障排除](cdn-troubleshooting.md)。

清单和播放问题  
有关清单验证和播放疑难解答，请参阅[CDN 集成测试程序](cdn-testing-procedures.md)。

广告插入和定位问题  
有关特定于广告的故障排除（包括 ADS 连接和广告投放），请参阅工作流程特定的疑难解答文档。

性能和监控问题  
有关性能分析和监控设置，请参见[监控 MediaTailor CDN 的运营和性能](cdn-monitoring.md)。

日志分析和错误代码  
有关详细的日志分析和错误代码参考，请参阅[CDN 集成日志分析和错误代码参考 MediaTailor](cdn-log-error-reference.md)。

测试和验证  
有关全面的测试程序，请参阅[CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)。

如果您需要即时帮助或无法使用链接的资源解决问题，[获取 CDN 和集成的支持和 MediaTailor 故障排除帮助](cdn-get-help.md)请参阅，了解上报程序。

# CDN 集成测试程序
<a name="cdn-testing-procedures"></a>

在将 MediaTailor CDN 集成部署到生产环境之前，必须进行适当的测试。这些测试程序有助于识别不同设备和平台之间的配置问题、性能问题和兼容性问题。

## 基本集成验证
<a name="basic-integration-testing"></a>

执行以下基本测试以验证您的 CDN 集成是否正常运行：

1. **测试清单交付**：
   + 通过您的 CDN 请求清单并验证它是否返回了有效的响应
   + 验证清单是否包含预期的内容和广告插入点
   + 检查清单是否 URLs 使用你的 CDN 域名，而不是来源
   + 使用 HLS 或 DASH 验证工具验证清单语法

1. **验证网址重写**：
   + 检查清单 URLs 中的内容段是否指向你的 CDN 域名
   + 验证广告区段 URLs 指向你的 CDN 域名
   + 确保所有亲属 URLs 都得到正确解析

1. **测试内容播放**：
   + 通过视频播放器播放内容并验证播放流畅
   + 验证内容和广告都能畅通无阻地播放
   + 检查内容和广告之间的过渡是否正确
   + 测试搜索和擦洗功能

1. **验证 CDN 路由**：
   + 监控 CDN 访问日志，确保请求路由正确
   + 验证缓存 hit/miss 模式是否符合预期
   + 检查是否只有在缓存未命中时才会发出源请求

## 高级测试程序
<a name="advanced-integration-testing"></a>

执行以下额外测试以进行全面验证：

1. **跨平台兼容性测试**：
   + 在多台设备（台式机、手机、平板电脑、智能电视）上进行测试
   + 验证不同浏览器的兼容性
   + 使用各种视频播放器（HLS.js、Video.js、原生播放器）进行测试
   + 在不同的操作系统上进行验证

1. **性能测试**：
   + 衡量清单请求的响应时间（目标：缓存时间小于 100 毫秒）
   + 测试不同比特率下的片段加载性能
   + 验证启动时间是否符合性能目标
   + 在各种网络条件下进行测试

1. **广告跟踪验证**：
   + 验证广告跟踪信标是否正确触发
   + 检查广告分析数据的准确性
   + 测试印象和完成跟踪
   + 验证点击功能

1. **错误状态测试**：
   + 测试源暂时不可用时的行为
   + 验证是否对格式错误的请求进行优雅处理
   + 测试 CDN 故障转移场景
   + 验证错误消息的清晰度和实用性

## 创建测试环境
<a name="test-environment-setup"></a>

设置一个反映您的生产配置的测试环境以进行全面验证：

1. 设置单独的 CDN 发行版进行测试：
   + 创建与生产版本具有相同缓存行为的测试 CDN 分发
   + 配置反映您的生产设置的测试来源
   + 使用单独的域名以避免与生产流量发生冲突

1. 创建测试 MediaTailor 配置：
   + 使用与制作相同的设置来设置测试回放配置
   + 配置测试广告决策服务器端点
   + 使用与您的制作广告格式相匹配的测试广告内容

1. 实施系统的测试流程：
   + 为配置更改创建测试清单
   + 为您的团队记录测试程序
   + 尽可能设置自动测试

## 在多个场景中进行测试
<a name="multi-scenario-testing"></a>

在不同的场景和条件下验证您的集成，以确保全面覆盖：

1. 使用多种玩家类型和设备进行测试：
   + 使用不同的视频播放器（网络、手机、联网电视）进行测试
   + 在不同的操作系统和浏览器上进行验证
   + 测试各种网络条件和连接速度

1. 创建自动测试脚本：
   + 自动验证清单请求
   + 创建脚本以测试广告插入场景
   + 针对高流量场景实施性能测试

1. 验证广告定位和个性化：
   + 使用不同的用户资料和定位参数进行测试
   + 验证广告决策服务器集成
   + 在广告不可用时测试备用场景

## 测试工具和技术
<a name="testing-tools-techniques"></a>

使用以下工具和技术进行有效的测试：

浏览器开发者工具  
使用 “网络” 选项卡检查 HTTP 请求和响应  
监控控制台 JavaScript 是否存在错误和警告  
验证响应标头和缓存行为  
查看时序信息以进行性能分析

命令行测试  
使用 curl 来测试特定的标题 URLs 并检查标题：  

```
curl -I "https://your-cdn-domain.com/path/to/manifest.m3u8"
```
使用 wget 进行下载测试和时序分析  
使用像 httpie 这样的工具进行更具可读性的 HTTP 测试

视频播放器测试  
使用多个玩家实现进行测试  
使用玩家调试模式检查内部行为  
监控玩家事件和错误回调  
验证自适应比特率切换行为

CDN 分析和监控  
在测试期间监控实时 CDN 指标  
查看访问日志以了解请求模式  
如果有 CDN 特定的测试工具，请使用  
为测试验证设置临时警报

有关其他全面的测试方法和系统验证方法，请参阅[CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)。

# 对 CDN 清单 404 错误进行故障排除 MediaTailor
<a name="common-integration-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 清单 404 错误是一个常见的集成问题，会导致无法开始播放。本节提供清单交付失败的 step-by-step疑难解答。

多变体播放列表、媒体播放列表或 MPD 请求返回 404 错误  
**快速修复（先试）：**  

1. 验证您的 URL 中的 MediaTailor 配置名称是否完全匹配（区分大小写）

1. 在 MediaTailor 没有 CDN 的情况下直接测试清单网址：`curl -v "https://your-emt-endpoint.mediatailor.region.amazonaws.com/v1/master/hls/config-name/master.m3u8"`

1. 如果直接测试有效，请检查清单请求的 CDN 路由规则
**如果快速修复不起作用：**  
**症状：**玩家无法开始播放，清单请求在 CDN 日志中返回 HTTP 404 错误。  
**错误消息示例：**  
+ 浏览器控制台：`"Failed to load resource: the server responded with a status of 404 (Not Found)"`
+ 玩家错误：`"MANIFEST_LOAD_ERROR"`或 `"NETWORK_ERROR"`
+ CDN 日志：`GET /v1/master/hls/example-config/master.m3u8 404`
**解决方法：**  
确认您的 CDN 路由规则配置正确，可以将多变体播放列表、媒体播放列表和 MPD 请求转发到。 MediaTailor  
检查 MediaTailor 配置是否存在且设置正确。  
确保您的 CDN 行为模式与预期的清单请求路径相匹配（例如`*.m3u8`，`*.mpd`）。

# 诊断 CDN 清单的交付问题和错误 MediaTailor
<a name="diagnose-manifest-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 清单投放问题可能会妨碍广告的正确插入和播放。如果观众在多变播放列表、媒体播放列表中收到不正确或不一致的广告，或者 MPDs：

1. 检查缓存的清单：
   + 验证所有多变体播放列表、媒体播放列表和 MPD 路径的 TTL 设置均设置为 0
   + 确认您的 CDN 没有缓存多变体播放列表、媒体播放列表，或者没有缓存 TTL MPDs 设置
   + 查看 CDN 日志以了解缓存状态 — 清单请求应显示`Miss`或`RefreshHit`，不是 `Hit`

1. 验证 CDN 路由配置：
   + 确认清单请求正在路由到 MediaTailor 终端节点，而不是缓存或从源站提供服务
   + 检查 CDN 行为模式是否正确匹配清单路径（\$1.m3u8、\$1.mpd）
   + 验证查询参数是否被转发到以 MediaTailor 进行个性化设置
   +  URLs 直接针对清单进行测试 MediaTailor 以隔离 CDN 和服务问题

1. 检查标题转发配置：
   + 验证是否正在转发所需的标头（请参阅[MediaTailor CDN 集成所需的标头](cdn-configuration.md#cdn-required-headers)）
   + 确认已转发 User-Agent 标头以用于特定设备的广告定位
   + 检查 X-Forwarded-For标题是否已转发以进行地理定位
   + 确保已转发 “接受编码” 标头以支持压缩

1. 验证清单内容和结构：
   + 检查清单中是否包含预期的广告插入标记（HLS 为 EXT-X-CUE-OUT/IN）
   + 验证清单 URLs 中的区段使用您的 CDN 域名，而不是源域名
   + 确认广告区段已正确插入且可访问
   + 使用验证工具测试清单语法（HLS 为 ffprobe，DASH 为 mp4box）

1. 测试不同的场景：
   + 使用不同的会话进行测试 IDs 以验证个性化设置是否有效
   + 从不同的地理位置进行测试以验证地理位置定位
   + 使用不同的 User-Agent 字符串进行测试以验证设备定位
   + 比较带有 CDN 和不使用 CDN 的清单响应，以找出差异

**其他疑难解答资源：**
+ 有关 CDN 缓存配置的详细信息，请参阅 [针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)
+ 有关全面的 CDN 路由设置，请参阅 [为以下各项设置 CDN 路由行为 MediaTailor](cdn-routing-behaviors.md)
+ 有关标头转发的要求，请参阅 [MediaTailor CDN 集成所需的标头](cdn-configuration.md#cdn-required-headers)
+ 有关日志分析和错误代码，请参见 [CDN 集成日志分析和错误代码参考 MediaTailor](cdn-log-error-reference.md)
+ 有关测试程序和验证的信息，请参见 [CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)

**成功标准：**解决后，玩家应正常开始播放，广告应按预期显示。清单请求应在 CDN 日志中返回 HTTP 200 状态码，并且清单应包含经过适当个性化的广告内容。

# 解决 CDN 分段交付和加载问题 MediaTailor
<a name="diagnose-segment-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 分段交付问题可能会导致缓冲和播放中断。如果玩家无法加载分段或体验缓冲：

1. 查看 CDN 路由规则：
   + 验证内容分段是否被路由到正确的来源
   + 确认广告区段已路由到正确的 MediaTailor 广告存储位置
   + 检查分段文件扩展名是否与您的 CDN 行为模式相匹配
   + 验证清单 URLs 中的分段是否使用正确的 CDN 域
   + 有关设置路由和行为路径模式的详细说明，请参阅 [为以下各项设置 CDN 路由行为 MediaTailor](cdn-routing-behaviors.md)

1. 验证 CORS 配置：
   + 对于网络玩家，请确保您的 CDN 已通过或正确设置 CORS 标头
   + 使用浏览器开发者工具进行测试以识别与 CORS 相关的错误
   + 验证印前检查选项请求是否得到正确处理

1. 测试区段的可访问性和性能：
   +  URLs 直接测试各个区段以验证其是否可访问
   + 检查分段响应时间并确定性能瓶颈
   + 验证分段文件大小是否适合您的带宽目标
   + 从不同的地理位置加载测试区段

1. 验证分段的 CDN 缓存行为：
   + 验证内容分段是否具有适当的 TTL 设置（通常比清单长）
   + 检查是否根据个性化要求适当缓存了广告区段
   + 监控内容和广告细分的缓存命中率
   + 确保缓存密钥不包含会降低缓存效率的不必要参数

1. 检查源服务器的连接和运行状况：
   + 验证源服务器对分段请求的响应是否正确
   + 检查负载下的源服务器容量和响应时间
   + 验证源服务器是否有预期的分段文件可用
   + 如果配置了多个源站，则测试源故障转移场景

1. 解决特定于广告细分的问题：
   + 验证广告区段是否已正确转码且可用于 MediaTailor
   + 检查广告区段 URLs 是否在清单中正确生成
   + 使用不同的广告定位参数测试广告细分加载情况
   + 监控可能导致区段不可用的广告转码延迟

1. 验证玩家的兼容性和行为：
   + 使用不同的玩家类型和版本加载测试片段
   + 检查玩家缓冲区设置和分段请求模式
   + 验证玩家对失败的分段请求的错误处理
   + 测试自适应比特率切换和分段选择逻辑

**其他疑难解答资源：**
+ 有关 CDN 路由和行为配置，请参阅 [为以下各项设置 CDN 路由行为 MediaTailor](cdn-routing-behaviors.md)
+ 有关 CDN 缓存优化的信息，请参阅 [针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)
+ 有关 CORS 配置指南，请参阅 [CDN 集成安全最佳实践 MediaTailor](cdn-security-best-practices.md)
+ 有关性能监控和分析的信息，请参见 [监控 MediaTailor CDN 的运营和性能](cdn-monitoring.md)
+ 有关全面的测试程序，请参阅 [CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)
+ 有关日志分析和错误诊断，请参见 [CDN 集成日志分析和错误代码参考 MediaTailor](cdn-log-error-reference.md)

**成功标准：**解决后，玩家应顺利加载片段，而不会出现缓冲中断。细分请求应返回带有适当响应时间的 HTTP 200 状态码，并且内容和广告区段都应可访问并正确缓存。

# 修复 CDN 会话管理和跟踪问题 MediaTailor
<a name="diagnose-session-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 会话管理对于适当的广告个性化和跟踪至关重要。如果您遇到与会话相关的错误或请求中的行为不一致：

1. 检查会话 ID 的一致性：
   + 确认您的播放器在单个播放会话的所有请求中都保持相同的会话 ID
   + 检查 CDN 日志以确认会话 IDs 已正确转发
   + 确保 IDs 在查询参数中对会话进行了正确的 URL 编码
   + 使用 CloudWatch 日志验证请求间的会话 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 日志查询来验证会话行为：
   + **验证调试会话是否处于活动状态：**

     ```
     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 查询参数转发配置包括会话相关参数
   + 检查 CDN 是否未缓存本应特定于会话的响应

**常见的会话错误消息：**
+ `ConflictException`(HTTP 409)-同一会话的多个同步播放列表请求。**解决方案：**确保您的玩家按照 HLS 规范逐个请求播放列表
+ `NotFoundException`(HTTP 404)-会话不可用或配置不存在。**解决方案：**检查您的配置有效性并重新初始化会话
+ `BadRequestException`(HTTP 400)-会话 ID 无效或请求格式不正确。**解决方案：**验证请求格式和会话 ID 的有效性

**其他疑难解答资源：**
+ 有关完整的调试日志记录设置和字段参考，请参阅 [生成 AWS Elemental MediaTailor 调试日志](debug-log-mode.md)
+ 有关 CloudWatch 日志查询示例和日志分析，请参阅 [将 AWS Elemental MediaTailor 日志直接写入 Amazon CloudWatch 日志](monitoring-cw-logs.md)
+ 有关 CDN 查询参数转发配置，请参阅 [为以下各项设置 CDN 路由行为 MediaTailor](cdn-routing-behaviors.md)
+ 有关全面的错误代码参考，请参阅 [对播放进行故障排除 MediaTailor](playback-errors.md)

**成功标准：**解决后，会话应正确初始化， IDs 在请求之间保持会话的一致性，调试日志应显示正确`SESSION_INITIALIZED`的事件和清单生成而不会出现错误。

# 解决 CDN 广告中断时间和同步问题 MediaTailor
<a name="diagnose-timing-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 广告中断时间必须与内容标记精确同步。如果广告的展示时间不正确或广告中断时间不一致：

1. 验证内容中的广告插播标记：
   + 检查 SCTE-35 标记是否正确放置在您的原始内容中
   + 验证广告时长是否与实际广告内容长度相符
   + 确认广告中断时间与内容界限一致
   + 验证来源清单中的 SCTE-35 标记格式和计时准确性
   + 使用不同的内容类型（直播与视频点播）测试广告插播标记

1. 检查 CDN 缓存对时间的影响：
   + 确保清单 TTL 设置为 0 以防止计时偏差
   + 确认没有缓存对时间敏感的参数
   + 检查内容源和 CDN 之间是否存在时钟同步问题 MediaTailor
   + 监控长时间直播中的时序偏差
   + 验证 CDN 边缘服务器与 NTP 的时间同步

1. 验证 SCTE-35 标记的实现：
   + 验证 EXT-X-DATERANGE标签是否包含正确的 SCTE35出局和持续时间规格
   + 使用明确的提示计时 SCTE35时，请检查是否有配对的出局和 SCTE35输入标记
   + 验证 START-DATE 时间戳是否与实际内容时间一致
   + 测试不同的 SCTE-35 标记格式（基于持续时间的标记与配对标记）

1. 测试不同场景下的广告中断时间：
   + 将广告中断时间与直接 MediaTailor 请求与 CDN 请求进行比较
   + 测试不同 CDN 边缘位置的计时一致性
   + 根据不同的玩家类型和缓冲行为验证广告中断时间
   + 监控流量高峰时段的计时精度

1. 使用日志和监控调试计时问题：
   + 启用调试日志记录以跟踪广告插播时间处理时间
   + 监控广告插入时序模式的 CloudWatch 指标
   + 查看 CDN 日志，了解与计时相关的请求模式
   + 使用播放器调试工具从客户角度验证广告中断时间

**预期的时序容差：**
+ 广告中断时间应与内容中的 SCTE-35 标记保持一致
+ 广告时长应与您的广告决策服务器响应中指定的持续时间一致
+ 内容源 MediaTailor、和 CDN 之间的时钟同步应在 1 秒以内
+ SCTE-35 标记计时应精确到实际内容计时的 100 毫秒以内

**其他疑难解答资源：**
+ 有关 SCTE-35 标记格式和实现的信息，请参阅 [整合用于 MediaTailor 广告插入的内容来源](integrating-origin.md)
+ 有关调试日志记录设置和时序分析，请参见 [生成 AWS Elemental MediaTailor 调试日志](debug-log-mode.md)
+ 有关 CDN 缓存配置和时序影响，请参阅 [针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)
+ 有关包括时序验证在内的全面测试程序，请参阅 [CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)
+ 有关监控广告投放时间和效果的信息，请参阅 [监控 MediaTailor CDN 的运营和性能](cdn-monitoring.md)

**成功标准：**解决后，广告插播时间应精确按照 SCTE-35 标记指定的时间显示，所有 CDN 边缘位置和玩家类型的时机保持一致。调试日志应显示准确的广告插播时间处理时间，而不会出现偏差或同步错误。

# 优化 CDN 性能并解决延迟问题 MediaTailor
<a name="diagnose-performance-issues"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 集成性能直接影响观众体验和广告投放质量。如果您遇到响应时间慢或性能下降的情况：

## 绩效衡量技术
<a name="performance-measurement-techniques"></a>

在对性能问题进行故障排除之前，请确定基线测量和持续监控：

1. 衡量关键绩效指标：
   + **响应时间：**清单请求应在 200 毫秒内完成，分段请求应在 100 毫秒内完成
   + **缓存命中率：**内容区段 > 95%，广告区段 > 90%
   + **原始请求量：**缓存优化后，应少于总请求量的 5%
   + **第一帧播放时间：**初始播放应在 2-3 秒内开始

1. 使用性能衡量工具：
   + **CDN 分析仪表板：**监控缓存性能、响应时间和错误率
   + **CloudWatch 指标：**跟踪 MediaTailor服务指标，包括 GetManifest .Latency
   + **浏览器开发者工具：**衡量客户端性能和网络时序
   + **命令行工具：**使用带有计时选项的 curl 来衡量特定请求

1. 实施持续监控：
   + 为响应时间下降设置自动性能警报
   + 监控不同地理区域的绩效
   + 在交通高峰时段追踪表现
   + 比较配置更改前后的性能指标

**绩效衡量资源：**
+ 有关全面的性能监控设置，请参见 [监控 MediaTailor CDN 的运营和性能](cdn-monitoring.md)
+ 有关性能测试程序，请参见 [CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)
+ 有关 CloudWatch 指标和监控，请参阅 [AWS Elemental MediaTailor 使用 Amazon CloudWatch 指标进行监控](monitoring-cloudwatch-metrics.md)

## CDN 缓存性能问题
<a name="cache-performance-troubleshooting"></a>

缓存性能问题是最常见的 CDN 集成问题之一。这些问题会影响所有 MediaTailor 实现，并可能显著影响观众体验和成本。

**缓存命中率低**  
**症状**：源站请求量高、延迟增加、带宽成本增加、观看者体验不佳  
**目标值**：  
+ 内容分段：95% 或更高的缓存命中率
+ 广告细分：90% 或更高的缓存命中率
+ 清单：因实现而异（不应缓存个性化清单）
**常见原因：**  
+ 不同内容类型的 TTL 设置不正确
+ 缓存密钥配置包括不必要的查询参数
+ 来自来源的缓存控制标头配置不正确
+ 频繁的缓存失效或清除
+ 地理分布问题（内容未在边缘位置缓存）
**解决方案**  

1. 查看并优化 TTL 设置：
   + 内容分段：将 TTL 设置为与片段持续时间或更长时间相匹配
   + 广告细分：将可重复使用的广告的 TTL 设置为 24 小时或更长时间
   + 静态资产：将 TTL 设置为 24 小时或更长时间

   有关全面的 TTL 建议和缓存优化策略，请参阅[针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)。

1. 优化缓存密钥配置：
   + 从缓存密钥中移除不必要的查询参数
   + 确保仅包含影响内容的参数
   + 标准化参数顺序和区分大小写

1. 验证源缓存控制标头是否设置正确

1. 为高流量实现实现实现实现原点屏蔽（或等效的 CDN 功能）。Origin shield 功能在主要版本中可用， CDNs 但可能有不同的名称（例如 O CloudFront rigin Shield、Fastly Shield、Cloudflare Argo 分层缓存）。如果您的 CDN 不提供此功能，则可以在联系 [AWS S](https://aws.amazon.com/premiumsupport/) uppor MediaTailor t 时将其启用。

1. 查看缓存失效策略并减少不必要的清除
**验证步骤**：  

1. 使用 CDN 分析仪表板监控缓存命中率

1.  URLs 使用 curl 进行特定测试以验证缓存标头

1. 比较更改前后的源站请求量

**源站请求量高**  
**症状**：到达 MediaTailor 源站的请求数量出乎意料地高、源服务器负载增加、成本更高  
**预期模式**：当缓存命中率处于最佳状态时，原始请求应少于查看者请求总数的 5%  
**常见原因：**  
+ 由于 TTL 值较低，缓存丢失
+ 缓存密钥碎片（唯一缓存密钥过多）
+ 没有缓存内容的区域的地理流量激增
+ 频繁的缓存失效
**解决方案**  

1. 分析请求模式以确定缓存丢失的原因

1. 根据内容类型和更新频率优化 TTL 设置

1. 为新内容实施缓存预热策略

1. 考虑 Origin shield 的实现（适用于不同 CDNs 名称的主打——详情[Origin Shield 实现](cdn-advanced-optimization.md#origin-shield-optimization)请参阅）
**警报阈值**：当源请求超过请求总数的 10% 或比基线增加 50% 时设置警报

## 常见的 HTTP 错误解决方法
<a name="http-error-troubleshooting"></a>

CDN 集成中的 HTTP 错误通常表示配置问题或服务问题。这些错误模式在所有 MediaTailor实现中都是一致的。

**404 未找到错误**  
**症状**：清单或分段请求返回 HTTP 404，玩家无法加载内容，玩家日志中返回 “MANIFEST\$1LOAD\$1ERROR”  
**常见原因：**  
+ CDN 源配置不正确（ MediaTailor 端点 URL 错误）
+ 缓存行为路径模式缺失或不正确
+ CDN 配置中的网址重写问题
+ MediaTailor 配置名称或播放端点错误
+ 直播内容的时间问题（请求 future 片段）
**诊断步骤：**  

1. 直接针对 MediaTailor 来源测试相同的 URL（绕过 CDN）

1. 验证 CDN 源配置是否与 MediaTailor 播放端点匹配

1. 检查 CDN 缓存行为路径模式和优先级

1. 查看 CDN 访问日志，了解请求路由的详细信息

1. 验证 MediaTailor 配置名称和区域设置
**解决方案**  
+ 更正 CDN 源配置以匹配 MediaTailor 播放端点
+ 更新缓存行为路径模式以正确路由请求
+ 修复 URL 重写规则（如果适用）
+ 验证 MediaTailor 配置是否存在且处于活动状态

**403 禁止的错误**  
**症状**：请求返回 HTTP 403、访问被拒绝消息、身份验证失败  
**常见原因：**  
+ 所需的查询参数缺失或不正确 MediaTailor
+ CDN 未转发所需的标头或参数
+ IP 地址限制或地理封锁
+ 身份验证令牌问题（如果使用已签名 URLs）
**解决方案**  
+ 验证所有必需的查询参数均已包含并已转发
+ 检查标头和参数转发的 CDN 配置
+ 查看 IP 限制和地理设置
+ 验证身份验证令牌和签名流程

**400 错误请求错误**  
**症状**：请求返回 HTTP 400、请求格式错误、参数验证失败  
**常见原因：**  
+ 查询参数格式错误或 URL 编码问题
+ 无效的参数值或格式
+ 缺少特定 MediaTailor 功能所需的参数
+ 已超出网址长度限制
**解决方案**  
+ 验证查询参数格式和 URL 编码
+ 根据 MediaTailor API 要求检查参数值
+ 确保包含所有必需的参数
+ 查看网址长度并考虑参数优化

**5xx 服务器错误**  
**症状**：请求返回 HTTP 500、502、503 或 504 错误，间歇性服务故障  
**常见原因：**  
+ MediaTailor 服务问题或容量限制
+ CDN 源连接问题
+ 源站响应缓慢导致的超时问题
+ 服务暂时降级
**解决方案**  
+ 检查 S AWS ervice Health Dashboar MediaTailor d 了解服务状态
+ 验证 CDN 源连接和超时设置
+ 使用指数退避实现重试逻辑
+ 监控服务运行状况的 MediaTailor CloudWatch 指标
+ 如果问题仍然存在，请联系 Su AWS pport

1. 衡量基准性能：
   + 直接测试清单请求响应时间 MediaTailor （目标：<200 毫秒）
   + 衡量清单请求的 CDN 响应时间（目标：缓存命中率小于 100 毫秒）
   + 查看来自源站和 CDN 的区段加载时间

1. 分析 CDN 的性能：
   + 检查内容细分的缓存命中率（目标为：热门内容的缓存命中率> 80%）
   + 验证源盾牌（或等效的 CDN 功能）是否已在与您的来源相同的 AWS 区域中启用和配置。不同 CDNs 使用不同的名称来实现此功能
   + 监控 CDN 边缘位置性能和地理分布

**性能基准：**
+ 监控清单生成响应时间，并与您的基准性能进行比较
+ CDN 缓存命中率明显快于源站请求
+ ADS 响应时间不应导致清单生成延迟

**其他疑难解答资源：**
+ 有关全面的性能优化策略，请参阅 [CDN 和 MediaTailor 集成的性能优化指南](cdn-optimization.md)
+ 有关 Origin Shield 实现的详细信息，请参阅 [Origin Shield 实现](cdn-advanced-optimization.md#origin-shield-optimization)
+ 有关 CDN 缓存优化的信息，请参阅 [针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)
+ 有关性能监控和指标，请参见 [监控 MediaTailor CDN 的运营和性能](cdn-monitoring.md)
+ 有关性能测试程序，请参见 [CDN 和集成的测试和 MediaTailor 验证](cdn-integration-testing.md)

**成功标准：**解决后，响应时间应达到目标基准（清单小于 200 毫秒，分段小于 100 毫秒），大多数内容类型的缓存命中率应超过 90%，原始请求量应小于总请求量的 5%。所有地理区域和设备类型的性能都应保持一致。

# 修复 CDN 跨设备和平台的不一致行为 MediaTailor
<a name="resolve-inconsistent-behavior"></a>

AWS Elemental MediaTailor 内容分发网络 (CDN) 集成应在所有设备和平台上提供一致的广告投放。如果广告在不同设备上的行为有所不同：

1. 确保所有 CDN 行为之间一致的标头转发。
   + 验证 User-Agent X-Forwarded-For、和自定义定位标头的转发是否一致
   + 检查标头转发规则是否适用于所有相关的缓存行为

1. 验证播放器与您的 CDN 配置的兼容性。
   + 使用多种玩家类型（HLS.js、Video.js、原生玩家）进行测试，找出特定于玩家的问题
   + 检查玩家特定的标题要求或网址处理差异

1. 使用多种设备类型进行测试，以确定特定于设备的问题。
   + 在测试中包括移动设备、平板电脑 TVs、智能和桌面浏览器
   + 测试不同的操作系统和浏览器版本
   + 验证特定设备的广告定位是否能正常运行

如果您已按照这些故障排除步骤进行操作但仍需要帮助，请参阅[获取 CDN 集成支持](cdn-get-help.md)。

## 疑难解答准备
<a name="troubleshooting-preparation"></a>

设置工具和流程以简化出现 CDN 集成问题时的故障排除。主动准备可以在出现问题时更快、更有效地进行故障排除。

### 启用全面日志
<a name="enable-comprehensive-logging"></a>

详细的日志对于诊断 CDN 集成问题至关重要。配置日志记录以捕获故障排除期间所需的信息。

1. 启用详细的 CDN 访问日志：
   + 为所有处理 MediaTailor请求的缓存行为配置日志记录
   + 在日志条目中包含查询字符串和自定义标头
   + 设置日志分析工具以识别模式和异常情况
   + 启用实时日志，以便在直播活动期间立即检测问题
   + 配置日志保留策略以维护历史故障排除数据

1. 配置 MediaTailor 日志：
   + 为您的 MediaTailor 配置启用访问日志
   + 设置 CloudWatch 日志组以便集中管理日志
   + 配置日志过滤器以识别错误模式

1. 设置源服务器日志：
   + 在内容来源服务器上启用详细访问日志
   + 在日志中包含请求标头和响应代码
   + 监控源服务器性能指标

### 添加诊断请求标头
<a name="add-diagnostic-headers"></a>

自定义标头有助于跟踪通过 CDN 的请求并识别路由问题。

1. 配置 CDN 诊断标头：
   + 为每个请求添加唯一标识符（例如，`X-Request-ID`）
   + 在请求标头中包含特定于 CDN 的信息
   + 添加边缘位置或 POP（接入点）信息以跟踪地理路由
   + 包括缓存状态标头（命中、未命中、 RefreshHit），用于缓存行为分析

1. 添加用于调试的响应标头：
   + 包括服务器标识标头
   + 为性能分析添加计时信息
   + 包括清单请求的缓存控制标头

### 建立基准性能指标
<a name="establish-baseline-metrics"></a>

记录正常性能范围，以便在故障排除期间快速识别异常：

1. **记录基线指标**：
   + 不同内容类型的缓存命中率
   + 响应时间百分位数（P50、P95、P99）
   + 按状态码划分的错误率
   + 按一天中的时间请求音量模式

1. **记录绩效预期**：
   + 目标缓存命中率（内容命中率超过 95%，广告命中率超过 90%）
   + 可接受的响应时间（缓存 <100 毫秒，原点 <500 毫秒）
   + 最大可接受错误率（4xx 为 < 1%，5xx 为 < 0.1%）

1. **创建绩效仪表板**：设置监控仪表板，显示当前指标与基准值的比较。

### 准备疑难解答工具
<a name="prepare-troubleshooting-tools"></a>

设置有效排除故障所需的工具和访问权限：

1. **命令行工具**：
   + `curl`用于测试 HTTP 请求和响应
   + `dig`或者`nslookup`用于 DNS 故障排除
   + 用于清单验证的 HLS/DASH 验证工具
   + 日志分析工具（grep、awk 或专业日志分析器）

1. **访问权限**：
   + 访问 CDN 管理控制台以进行配置审查
   + MediaTailor 用于配置验证的控制台访问权限
   + CloudWatch 访问指标和日志分析
   + 用于后端故障排除的源服务器访问权限

1. **文档：**
   + 网络架构图
   + CDN 和 MediaTailor 配置文档
   + 上报程序的联系信息
   + 常见场景的运行手册疑难解答

## 特定于工作流程的疑难解答指南
<a name="workflow-specific-troubleshooting"></a>

这份通用故障排除指南涵盖了所有 MediaTailor CDN 集成的常见问题。有关特定工作流程或服务的问题，请查阅以下专门的疑难解答资源：

服务器端广告插入 (SSAI) 疑难解答  
有关特定于 SSAI 的问题，包括广告插入失败、广告过渡问题和个性化问题，请参阅特定于工作流程的 SSAI 疑难解答文档。  
**常见的 SSAI 特定问题**：  
+ 广告插入失败和空广告中断
+ 广告过渡时序和同步问题
+ 个性化和定位问题
+ 广告跟踪和分析差异

频道组装疑难解答  
有关特定于渠道汇编的问题，包括清单生成问题和时移功能，请参阅频道汇编工作流程文档。  
**常见的频道组装问题**：  
+ 清单生成和编译错误
+ 时移窗口和 DVR 功能问题
+ 源内容可用性和故障转移问题
+ 节目时间表和元数据同步

MediaPackage 集成疑难解答  
有关 MediaPackage 具体问题，包括清单筛选和 EMP 端点问题，请参阅[CDN 集成疑难解答](cdn-emp-troubleshooting.md)。  
**常见的 MediaPackage 集成问题**：  
+ 清单筛选参数错误
+ MediaPackage 端点连接问题
+ EMP 特有的缓存行为问题
+ MediaPackage 源站身份验证问题

CloudFront 具体故障排除  
有关 CloudFront 具体的配置和设置问题，请参阅 CloudFront集成文档。  
**常见 CloudFront 问题**：  
+ 分发配置和缓存行为设置
+ 源站访问身份和安全配置
+ CloudFront 特定的错误代码和响应
+ 地理限制和边缘位置问题

**其他资源**：
+ 有关性能优化指南，请参阅 [CDN 性能优化](cdn-optimization.md)
+ 有关监控和警报设置，请参阅 [内容分发网络监控](cdn-monitoring.md)
+ 如需一般支持和帮助，请参阅 [获取 CDN 集成支持](cdn-get-help.md)