本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
生产就绪型配置 CloudFront MediaTailor
这种 CloudFront 分发配置提供了大规模投放服务器端广告 MediaTailor 内容所需的一切。复制此配置并根据您的特定来源和要求对其进行自定义。
此配置可以完成什么
此配置创建了生产就绪的 CloudFront 发行版,该发行版以最佳的缓存和性能处理所有 MediaTailor请求类型。它包括三个来源(您的内容、 MediaTailor 区段和 MediaTailor 清单),以及四种缓存行为,可以正确路由请求并适当地缓存内容。
何时使用此配置
此设置非常适合需要在服务器端插入广告的直播和混合工作流程。 video-on-demand
三源架构
MediaTailor 使用三源架构模式来优化内容交付和广告插入性能。在广告插入工作流程中,每个来源都有特定的用途:
- 你的内容来源
-
这是你真正的内容来源,供你参考 MediaTailor。例如,这可能是 AWS Elemental MediaPackage V2 或其他内容分发服务。该来源在广告插入之前提供您的原创内容。常见的例子包括:
-
MediaPackage V2 打包配置
-
第三方内容交付网络
-
本地流媒体服务器
-
包含静态内容的 Amazon S3 存储桶
-
- MediaTailor 区段起源
-
该来源使用主机名,
segments.mediatailor.并在对实际的广告段进行编码后 MediaTailor 提供这些广告段。这些是包含广告的视频片段。这个 Origin 处理:region.amazonaws.com.rproxy.govskope.ca-
转码后的广告细分格式与您的内容相同
-
来自
/segment/*路径模式的重定向请求 -
经过处理以进行服务器端广告插入的广告区段
-
- MediaTailor 表明起源
-
此来源使用主机名
manifests.mediatailor.,可用作指定 AWS 区域中播放配置的区域主机名。 MediaTailor 根据请求中的路径选择正确的播放配置。该起源提供:region.amazonaws.com.rproxy.govskope.ca-
个性化的 HLS 和 DASH 清单,其中包含针对特定观众的广告插入
-
可缓存内容的服务器引导式广告插入 (SGAI) 清单
-
服务器端报告的广告跟踪和信标处理
-
使用 origin 主机名manifests.mediatailor.,如果多个播放配置位于指定区域,并且您在请求路径中包含播放配置名称,则可以拥有适用于相同 CloudFront 发行版的多个播放配置。例如:region.amazonaws.com
-
https://your-distribution.cloudfront.net/v1/master/playback-config-1/manifest.m3u8 -
https://your-distribution.cloudfront.net/v1/master/playback-config-2/manifest.m3u8
根据内容类型选择源请求策略,以防止缓存中毒,同时确保正常运行。关键区别在于可缓存和不可缓存的内容:
-
清单(不可缓存):用于
AllViewer转发动态内容所需的所有标题。由于清单未被缓存,因此不存在缓存中毒的风险。 -
区段(可缓存):
None用于获得最佳性能。 -
S3 来源:
CORS-S3Origin用于亚马逊 S3 存储桶 -
MediaPackage 来源:用
CORS-S3Origin于 MediaPackage V2 端点
缓存行为的优先级和配置
MediaTailor 需要特定的缓存行为配置才能正确处理不同类型的请求。缓存行为的优先级至关重要,因为按顺序(从小到大) CDNs 处理缓存行为,并将该行为用于第一个匹配的路径模式。了解此优先顺序对于故障排除至关重要:
-
优先级 0:首先评估最具体的模式(比如
/tm/*) -
更高的优先级数字:按顺序评估不太具体的模式
-
默认行为:捕获所有与其他模式不匹配的请求
如果请求的行为不符合预期,请检查您的路径模式是否不会以意想不到的方式重叠。
优先级 0:广告区段路径行为
此行为处理来自细分路径行为的重定向请求,为实际的广告细分提供服务。 CloudFront 将以下行为应用于所有具有/tm/*路径模式的请求。这是最高优先级的行为,因为广告区段投放对于不间断播放至关重要。
-
路径模式:
/tm/*与此模式 URLs 匹配的示例:
-
https://your-distribution.cloudfront.net/tm/ad-segment-001.ts -
https://your-distribution.cloudfront.net/tm/transcoded-ad.m4s
-
-
来源:您使用
segments.mediatailor.域名创建的来源。region.amazonaws.com前面关于起源的章节中的示例就是MediaTailorSegments这样。
-
缓存策略:
Managed-CachingOptimized有关 CloudFront 托管缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingOptimized中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
起源请求政策:
None -
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy有关响应标头策略中包含的内容的详细信息,请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 CORS-with-preflight-and-。
根据其他设置调整这些设置 CDNs
如果您使用的是以外的 CDN CloudFront,请查找可完成以下操作的等效设置。
- 路径模式匹配
-
为
/tm/*路径模式配置特定的行为以处理 MediaTailor 广告细分 - 缓存密钥配置
-
在缓存密钥中包含
Origin标头,以确保针对不同来源分别缓存响应 - 标头转发
-
将标
Origin题和其他与 CORS 相关的标头转发到原点 - 响应标头管理
-
配置您的 CDN 以确保响应中
Access-Control-Allow-Origin包含标头
具体的术语和配置选项因CDN提供商而异,但基本原理保持不变。
优先级 1:服务器引导的广告插入行为
当客户配置引导模式了解 AWS Elemental MediaTailor 服务器引导的广告插入(提供可缓存的清单)时,此行为会处理 (SGAI) 请求。 CloudFront 将以下行为应用于所有具有/v1/i-media/*路径模式的请求。SGAI 允许更好的缓存性能,因为清单不是特定于查看者的。
-
路径模式:
/v1/i-media/*(SGAI 的 iMedia 路径)与此模式 URLs 匹配的示例:
-
https://your-distribution.cloudfront.net/v1/i-media/your-config/manifest.m3u8 -
https://your-distribution.cloudfront.net/v1/i-media/your-config/playlist.mpd
-
-
来源:您使用
manifests.mediatailor.域名创建的来源。region.amazonaws.com前面关于起源的章节中的示例就是MediaTailorManifests这样。
-
缓存策略:
Managed-CachingOptimized有关 CloudFront 托管缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingOptimized中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
起源请求政策:
None -
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy有关响应标头策略中包含的内容的详细信息,请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 CORS-with-preflight-and-。
优先级 2:个性化清单行为
此行为处理个性化清单请求。 CloudFront 将以下行为应用于所有具有/v1/*路径模式的请求。 CloudFront 应用以下行为并且不缓存个性化清单,因为它们包含特定于观众的广告内容。 URLs这些行为适用于所有具有/v1/*路径模式的请求。这是核心 MediaTailor 功能,每位观看者都会收到一份带有个性化广告插页的独特清单。
-
路径模式:
/v1/*(标准 V1 MediaTailor 请求)与此模式 URLs 匹配的示例:
-
https://your-distribution.cloudfront.net/v1/master/your-config/manifest.m3u8 -
https://your-distribution.cloudfront.net/v1/dash/your-config/manifest.mpd
-
-
来源:您使用
manifests.mediatailor.域名创建的来源。region.amazonaws.com前面关于起源的章节中的示例就是MediaTailorManifests这样。
-
缓存策略:
Managed-CachingDisabled有关缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingDisabled中的。
-
起源请求政策:
AllViewer对于个性化清单,请使用该
AllViewer政策转发动态内容所需的所有标题。 -
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy有关响应标头策略中包含的内容的详细信息,请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 CORS-with-preflight-and-。
接受编码标头
我们建议您的 CDN 保留观看者的Accept-Encoding标题。此标题提供了有关压缩个性化清单的 MediaTailor 说明。
在中 CloudFront,AllViewerAndCloudFrontHeaders原始请求策略包括来自查看者的Accept-Encoding标头的直通。如果您使用其他 CDN,请确保它保留此标头。
以下是如何 MediaTailor 处理标Accept-Encoding题。
-
传统设备:不支持 gzip TVs 的旧智能设备不会发送 Accept-Encoding 标头,因此 MediaTailor 会返回未压缩的清单
-
现代设备:iPhone、Chrome 浏览器和其他现代客户端会发送 Accept-Encoding 标头, MediaTailor 允许在交付之前压缩清单
优先级 3:服务器端信标路径行为
此行为处理的请求 MediaTailor 会导致重定向。服务器端跟踪这些请求对于跟踪信标至关重要,因此每个请求都必须由 MediaTailor处理。 CloudFront 将以下行为应用于所有具有/segment/*路径模式的请求。
-
路径模式:
/segment/*与此模式 URLs 匹配的示例:
-
https://your-distribution.cloudfront.net/segment/tracking-beacon-123 -
https://your-distribution.cloudfront.net/segment/ad-request-456.ts
-
-
来源:您使用
manifests.mediatailor.域名创建的来源。region.amazonaws.com前面关于起源的章节中的示例就是MediaTailorManifests这样。
-
缓存策略:
Managed-CachingDisabled有关缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingDisabled中的。
-
起源请求政策:
AllViewer对于服务器端信标请求,使用
AllViewer策略转发跟踪所需的所有标头。由于这些请求未被缓存,因此不存在缓存中毒的风险。 -
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy有关响应标头策略中包含的内容的详细信息,请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 CORS-with-preflight-and-。
MediaTailor 处理这些请求时,它会返回 302 重定向响应,其路径指向实际分段位置。例如,对的请求/segment/ad123.ts可能会在区段源/tm/encoded-ad-segment.ts上重定向到。
优先级 4:内容来源路径行为
如果请求路径与任何其他模式都不匹配, CloudFront 则应用默认行为。此行为将请求直接发送到内容来源,不进行任何处理 MediaTailor。这允许在需要时直接访问您的内容来源(例如 MediaPackage V2)。 CloudFront 将以下行为应用于所有不包含任何先前路径模式的请求。
-
路径模式:
(*) -
来源:您使用域名为内容来源创建的来源。
前面关于起源的章节中的示例就是ContentOrigin这样。
-
缓存策略:
Managed-CachingOptimized有关 CloudFront 托管缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingOptimized中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
注意
对于低延迟 HLS 实现,请考虑使用带有低延迟 HLS (LLH) 指令的自定义缓存策略,而不是标准策略。
CachingOptimized -
起源请求政策:
None -
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy尽管默认内容来源行为通常不会面临与广告区段行为相同的 CORS 缓存中毒风险,但仍建议使用
Managed-CORS-with-preflight-and-SecurityHeadersPolicy响应标头策略并将标头包含在缓存密钥中。Origin这样可以确保对所有内容类型进行一致的 CORS 处理,并防止基于 Web 的播放器中出现潜在的播放问题。对于内容分段,
Managed-CachingOptimized缓存策略可提供良好的性能,而Managed-CORS-with-preflight-and-SecurityHeadersPolicy响应标头策略可确保正确处理 CORS。这种组合可以实现高效缓存,同时保持与需要 CORS 标头的基于 Web 的播放器的兼容性。在广告细分和内容细分中应用一致的 CORS 处理可创建更可靠的播放体验并简化故障排除。如果没有正确的 CORS 配置,玩家在内容和广告之间切换时可能会遇到不一致的行为。
有关响应标头策略中包含的内容的详细信息,请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 CORS-with-preflight-and-。