本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
MediaTailor 参数疑难解答
AWS Elemental MediaTailor 为解决中与参数相关的常见问题提供了指导 MediaTailor,包括字符限制、URL 编码问题和配置别名错误。
字符限制错误
包含不支持的字符的参数值可能会导致错误或意外行为。
常见症状
以下症状可能表示存在字符限制问题:
-
参数未出现在清单中 URLs
-
会话初始化期间的 HTTP 400 错误
-
参数值被截断或损坏
-
由于格式错误,ADS 请求失败 URLs
解决步骤
要解决字符限制错误,请执行以下操作:
-
查看不支持的字符的参数值:
:
、、?
、&
、=
、%
/
-
对特殊字符应用正确的 URL 编码(请参阅)MediaTailor 参数参考和限制
-
避免使用双字符,例如
%%%
或==
-
如果 URLs 无法使用完整参数格式,请考虑使用其他参数格式
例 网址编码示例
而不是使用:
manifest.redirect_url=https://example.com/path?param=value
使用 URL 编码格式:
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
长度限制错误
超过长度限制的参数可能会被截断或导致错误。
长度限制
适用以下长度限制(有关完整MediaTailor 参数参考和限制详细信息,请参阅):
-
清单查询参数(总计):2000 个字符
-
ADS 参数名称:10,000 个字符
-
ADS 参数值:25,000 个字符
-
广告 URLs:25,000 个字符
分辨率策略
要处理长度限制,请执行以下操作:
-
尽可能使用较短的参数名称和值
-
将较大的参数值拆分为多个较小的参数
-
使用配置别名将短别名映射到较长的值(请参阅)MediaTailor 配置别名和动态变量替换
-
考虑使用外部存储来存储带有参数引用的大型数据
配置别名错误
配置别名问题可能导致 HTTP 400 错误或参数值意外。
常见的配置别名错误
配置别名通常会出现以下错误:
-
HTTP 400 错误:别名值缺失或无效
-
域变量无法正确解析
-
玩家参数未被替换为别名值
解决方案清单
要解决配置别名错误,请执行以下操作:
-
验证所有域变量均定义为
ConfigurationAliases
-
确保玩家参数变量使用
player_params.
前缀 -
确认每个玩家参数的别名值列表都详尽无遗
-
检查会话初始化请求是否指定了有效的别名值
-
验证 ConfigurationAliases 参数的 JSON 结构
有关详细的故障排除指南,请参阅MediaTailor 配置别名疑难解答。
例 配置别名验证
确保您的配置包括所有必需的别名:
"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 } }
参数处理流程问题
了解参数处理流程有助于解决参数转发和转换问题。
参数处理顺序
MediaTailor 按以下顺序处理参数:
-
会话初始化参数验证
-
配置别名解析(如果适用)
-
参数过滤(ADS 与来源 vs 清单)
-
URL 编码和格式
-
参数应用于 URLs
调试参数流
要调试参数处理问题,请执行以下操作:
-
验证在会话初始化中是否正确指定了参数
-
检查配置别名是否解析为预期值
-
确认参数以正确的方式显示 URLs (清单、广告、来源)
-
验证 URL 编码是否正确应用
例 参数流示例
会话初始化:
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
安全注意事项和最佳实践
MediaTailor 为参数处理实施安全措施,以防止出现常见的安全问题。
安全措施
MediaTailor 实施了以下安全措施:
-
防止数据库膨胀的输入大小限制
-
对用户输入进行适当的编码和审查
-
对输入进行网址编码,以防止响应损坏
最佳实践
请遵循以下最佳实践来安全处理参数:
-
发送前在客户端验证参数值
-
使用配置别名限制可能的参数值
-
避免在参数中包含敏感信息
-
监控参数使用情况,发现异常模式
-
将参数值保持在建议的长度限制之内