

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

# MediaTailor 参数疑难解答指南
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor 为解决中与参数相关的常见问题提供了指导 MediaTailor，包括字符限制、URL 编码问题和配置别名错误。

## 字符限制错误
<a name="parameter-character-restriction-errors"></a>

包含不支持的字符的参数值可能会导致错误或意外行为。

**常见症状**  
以下症状可能表示存在字符限制问题：
+ 参数未出现在清单中 URLs
+ 会话初始化期间的 HTTP 400 错误
+ 参数值被截断或损坏
+ 由于格式错误，ADS 请求失败 URLs

**解决步骤**  
要解决字符限制错误，请执行以下操作：

1. 查看不支持的字符的参数值：`:`、、`?`、`&`、`=`、`%` `/`

1. 对特殊字符应用正确的 URL 编码（请参阅）[MediaTailor 参数参考和限制](parameter-comprehensive-reference.md)

1. 避免使用双字符，例如`%%%`或 `==`

1. 如果 URLs 无法使用完整参数格式，请考虑使用其他参数格式

**Example 网址编码示例**  
而不是使用：  

```
manifest.redirect_url=https://example.com/path?param=value
```
使用 URL 编码格式：  

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## 长度限制错误
<a name="parameter-length-limitation-errors"></a>

超过长度限制的参数可能会被截断或导致错误。

**长度限制**  
适用以下长度限制（有关完整[MediaTailor 参数参考和限制](parameter-comprehensive-reference.md)详细信息，请参阅）：
+ 清单查询参数（总计）：2000 个字符
+ ADS 参数名称：10,000 个字符
+ ADS 参数值：25,000 个字符
+ 广告 URLs：25,000 个字符

**解决策略**  
要处理长度限制，请执行以下操作：

1. 尽可能使用较短的参数名称和值

1. 将较大的参数值拆分为多个较小的参数

1. 使用配置别名将短别名映射到较长的值（请参阅）[MediaTailor 配置别名概述](configuration-aliases-overview.md)

1. 考虑使用外部存储来存储带有参数引用的大型数据

## 配置别名错误
<a name="parameter-configuration-alias-errors"></a>

配置别名问题可能导致 HTTP 400 错误或参数值意外。

**常见的配置别名错误**  
配置别名通常会出现以下错误：
+ HTTP 400 错误：别名值缺失或无效
+ 域变量无法正确解析
+ 玩家参数未被替换为别名值

**解决方案清单**  
要解决配置别名错误，请执行以下操作：

1. 验证所有域变量均定义为 `ConfigurationAliases`

1. 确保玩家参数变量使用`player_params.`前缀

1. 确认关键域变量的别名值列表是详尽无遗的 URLs (`VideoContentSourceUrl`,`AdSegmentUrlPrefix`,`ContentSegmentUrlPrefix`)

1. 检查会话初始化请求是否指定了有效的别名值

1. 验证 ConfigurationAliases 参数的 JSON 结构

有关详细的故障排除指南，请参阅[MediaTailor 配置别名疑难解答指南](configuration-aliases-troubleshooting.md)。

**Example 配置别名验证**  
确保您的配置包括所有必需的别名：  

```
"ConfigurationAliases": {
    "player_params.origin_domain": {
        "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
        "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
        // Must include all possible values used in session initialization
    }
}
```

## 参数处理流程问题
<a name="parameter-processing-flow-issues"></a>

了解参数处理流程有助于解决参数转发和转换问题。

**参数处理顺序**  
MediaTailor 按以下顺序处理参数：

1. 会话初始化参数验证

1. 配置别名解析（如果适用）

1. 参数过滤（ADS 与来源 vs 清单）

1. URL 编码和格式

1. 参数应用于 URLs

**调试参数流**  
要调试参数处理问题，请执行以下操作：

1. 验证在会话初始化中是否正确指定了参数

1. 检查配置别名是否解析为预期值

1. 确认参数以正确的方式显示 URLs （清单、广告、来源）

1. 验证 URL 编码是否正确应用

**Example 参数流示例**  
会话初始化：  

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
在别名解析和处理之后：  
+ 起源请求：`https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ 清单网址：`/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## 安全性注意事项和最佳实践
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor 为参数处理实施安全措施，以防止出现常见的安全问题。

**安全措施**  
MediaTailor 实施了以下安全措施：

1. 防止数据库膨胀的输入大小限制

1. 对用户输入进行适当的编码和审查

1. 对输入进行网址编码，以防止响应损坏

**最佳实践**  
请按照以下最佳实践进行安全参数处理：
+ 发送前在客户端验证参数值
+ 使用配置别名限制可能的参数值
+ 避免在参数中包含敏感信息
+ 监控参数使用情况，以发现异常模式
+ 将参数值保持在建议的长度限制之内