本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的生产就绪配置 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
根据您的具体内容来源要求查看和调整来源请求政策。该示例使用 S3 源策略,但自定义源可能需要不同的策略。在选择源请求策略时,请考虑以下因素:
-
S3 来源:
Managed-CORS-S3Origin
用于亚马逊 S3 存储桶 -
自定义来源:使用
Managed-AllViewer
或Managed-AllViewerAndCloudFrontHeaders-2022-6
用于自定义 HTTP 来源 -
MediaPackage 来源:用
Managed-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
Managed-CachingOptimized
缓存策略应配置为在缓存密钥中包含 Origin 标头,以防止 CORS 缓存中毒问题。如果缓存密钥中没有Origin
标头,则可能会出现以下情况:-
不带
Origin
标头的请求由接收和缓存 CloudFront -
带有
Origin
标头的后续请求会收到缓存的响应(缺少 CORS 标头) -
由于缺少 CORS 标头,浏览器拒绝响应,导致播放失败
有关 CloudFront 托管缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingOptimized中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
-
起源请求政策:
Managed-CORS-S3Origin
有关 CloudFront 托管源请求策略中包含的内容的详细信息,请参阅用户指南中的 cors-s3Origin。 CloudFront 您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
响应标头政策:
Managed-CORS-with-preflight-and-SecurityHeadersPolicy
使用
Managed-CORS-with-preflight-and-SecurityHeadersPolicy
响应标头策略对于防止 CORS 缓存中毒至关重要。此政策可确保在响应中 CloudFront 包含Access-Control-Allow-Origin
标题,这是基于网络的玩家访问来自不同来源的广告细分所必需的。有关响应标头策略中包含的内容的详细信息,请参阅 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 将以下行为应用于所有具有/i-media/*
路径模式的请求。SGAI 允许更好的缓存性能,因为清单不是特定于查看者的。
-
路径模式:
/i-media/*
(SGAI 的 iMedia 路径)与此模式 URLs 相匹配的示例:
-
https://your-distribution.cloudfront.net/i-media/your-config/manifest.m3u8
-
https://your-distribution.cloudfront.net/i-media/your-config/playlist.mpd
-
-
来源:您使用
manifests.mediatailor.
域名创建的来源。region
.amazonaws.com前面关于起源的章节中的示例就是MediaTailorManifests这样。
-
缓存策略:
Managed-CachingOptimized
有关 CloudFront 托管缓存策略中包含的内容的详细信息,请参阅 CloudFront 用户指南CachingOptimized中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
起源请求政策:
Managed-CORS-S3Origin
有关 CloudFront 托管源请求策略中包含的内容的详细信息,请参阅用户指南中的 cors-s3Origin。 CloudFront 您也可以在第三方 CDN 中使用托管策略中的相同设置。
-
响应标头政策:
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中的。
-
起源请求政策:
Managed-AllViewerAndCloudFrontHeaders-2022-6
有关原始请求策略中包含的内容的详细信息,请参阅用户指南中的 AllViewerAndCloudFrontHeaders-2022-6。 CloudFront
-
响应标头政策:
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中的。
-
起源请求政策:
Managed-AllViewerAndCloudFrontHeaders-2022-6
有关原始请求策略中包含的内容的详细信息,请参阅用户指南中的 AllViewerAndCloudFrontHeaders-2022-6。 CloudFront
-
响应标头政策:
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
-
Origin 请求策略:配置为将适当的标头和查询字符串参数传递给您的内容来源。有关可用的托管源请求策略的信息,请参阅 CF 开发者指南中的使用托管源请求策略。
-
响应标头政策:
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-。