的生产就绪配置 CloudFront MediaTailor - AWS Elemental MediaTailor

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

的生产就绪配置 CloudFront MediaTailor

这种 CloudFront 分发配置提供了大规模投放服务器端广告 MediaTailor 内容所需的一切。复制此配置并根据您的特定来源和要求对其进行自定义。

此配置可以完成什么

此配置创建了生产就绪的 CloudFront 发行版,该发行版以最佳的缓存和性能处理所有 MediaTailor请求类型。它包括三个来源(您的内容、 MediaTailor 区段和 MediaTailor 清单),以及四种缓存行为,可以正确路由请求并适当地缓存内容。

何时使用此配置

此设置非常适合需要在服务器端插入广告的直播和混合工作流程。 video-on-demand

三源架构

MediaTailor 使用三源架构模式来优化内容交付和广告插入性能。在广告插入工作流程中,每个来源都有特定的用途:

你的内容来源

这是你真正的内容来源,供你参考 MediaTailor。例如,这可能是 AWS Elemental MediaPackage V2 或其他内容分发服务。该来源在广告插入之前提供您的原创内容。常见的例子包括:

  • MediaPackage V2 打包配置

  • 第三方内容交付网络

  • 本地流媒体服务器

  • 包含静态内容的 Amazon S3 存储桶

MediaTailor 区段起源

该来源使用主机名,segments.mediatailor.region.amazonaws.com并在对实际的广告段进行编码后 MediaTailor 提供这些广告段。这些是包含广告的视频片段。这个 Origin 处理:

  • 转码后的广告细分格式与您的内容相同

  • 来自/segment/*路径模式的重定向请求

  • 经过处理以进行服务器端广告插入的广告区段

MediaTailor 表明起源

此来源使用主机名manifests.mediatailor.region.amazonaws.com,可用作指定 AWS 区域中播放配置的区域主机名。 MediaTailor 根据请求中的路径选择正确的播放配置。该起源提供:

  • 个性化的 HLS 和 DASH 清单,其中包含针对特定观众的广告插入

  • 可缓存内容的服务器引导式广告插入 (SGAI) 清单

  • 服务器端报告的广告跟踪和信标处理

使用 origin 主机名manifests.mediatailor.region.amazonaws.com,如果多个播放配置位于指定区域,并且您在请求路径中包含播放配置名称,则可以拥有适用于相同 CloudFront 发行版的多个播放配置。例如:

  • 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-AllViewerManaged-AllViewerAndCloudFrontHeaders-2022-6用于自定义 HTTP 来源

  • MediaPackage 来源:用Managed-CORS-S3Origin于 MediaPackage V2 端点

Origins table showing ContentOrigin, MediaTailorSegments, and MediaTailorManifests with their respective details.

缓存行为的优先级和配置

MediaTailor 需要特定的缓存行为配置才能正确处理不同类型的请求。缓存行为的优先级至关重要,因为按顺序(从小到大) CDNs 处理缓存行为,并将该行为用于第一个匹配的路径模式。要进行故障排除,必须了解此优先顺序:

  • 优先级 0:首先评估最具体的模式(比如/tm/*

  • 更高的优先级数字:按顺序评估不太具体的模式

  • 默认行为:捕获所有与其他模式不匹配的请求

如果请求的行为不符合预期,请检查您的路径模式是否不会以意想不到的方式重叠。

Table showing behaviors with path patterns, origins, and policies for different URL paths.

优先级 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标头,则可能会出现以下情况:

    1. 不带Origin标头的请求由接收和缓存 CloudFront

    2. 带有Origin标头的后续请求会收到缓存的响应(缺少 CORS 标头)

    3. 由于缺少 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-