

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

# 的生产就绪配置 CloudFront MediaTailor
<a name="cf-comprehensive-configuration"></a>

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

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

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

## 三源架构
<a name="cf-three-origin-architecture"></a>

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

你的内容来源  
这是您的真实内容来源 MediaTailor。例如，这可能是 AWS Elemental MediaPackage V2 或其他内容分发服务。该来源在广告插入之前提供您的原创内容。常见示例包括：  
+ MediaPackage V2 打包配置
+ 第三方内容交付网络
+ 本地流媒体服务器
+ 包含静态内容的 Amazon S3 存储桶

MediaTailor 区段起源  
该来源使用主机名，`segments.mediatailor.region.amazonaws.com`并在对实际的广告段进行编码后 MediaTailor 提供这些广告段。这些是包含广告的视频片段。这个起源处理：  
+ 转码后的广告细分格式与您的内容相同
+ 来自`/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`

根据内容类型选择源请求策略，以防止缓存中毒，同时确保正常运行。关键区别在于可缓存和不可缓存的内容：
+ **清单（不可缓存）**：用于`AllViewer`转发动态内容所需的所有标题。由于清单未被缓存，因此不存在缓存中毒的风险。
+ **区段（可缓存）**：`None`用于获得最佳性能。
+ **S3 来源**：`CORS-S3Origin`用于亚马逊 S3 存储桶
+ **MediaPackage 来源**：用`CORS-S3Origin`于 MediaPackage V2 端点

![\[Origins table showing ContentOrigin, MediaTailorSegments, and MediaTailorManifests with their respective details.\]](http://docs.aws.amazon.com/zh_cn/mediatailor/latest/ug/images/origins-cdn.png)


## 缓存行为的优先级和配置
<a name="cf-behavior-precedence"></a>

MediaTailor 需要特定的缓存行为配置才能正确处理不同类型的请求。缓存行为的优先级至关重要，因为按顺序（从小到大） CDNs 处理缓存行为，并将该行为用于第一个匹配的路径模式。了解此优先顺序对于故障排除至关重要：
+ **优先级 0**：首先评估最具体的模式（比如`/tm/*`）
+ **更高的优先级数字**：按顺序评估不太具体的模式
+ **默认行为**：捕获所有与其他模式不匹配的请求

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

![\[Table showing behaviors with path patterns, origins, and policies for different URL paths.\]](http://docs.aws.amazon.com/zh_cn/mediatailor/latest/ug/images/bhv.png)


### 优先级 0：广告区段路径行为
<a name="cf-transcode-manage-behavior"></a>

此行为处理来自细分路径行为的重定向请求，为实际的广告细分提供服务。 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
+ **起源请求政策：**`None`
+ **响应标头政策：**`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  有关响应标头策略中包含的内容的详细信息，请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 [CORS-with-preflight-and-](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)。

#### 根据其他设置调整这些设置 CDNs
<a name="adapting-to-other-cdns"></a>

如果您使用的是以外的 CDN CloudFront，请查找可完成以下操作的等效设置。

**路径模式匹配**  
为`/tm/*`路径模式配置特定的行为以处理 MediaTailor 广告细分

**缓存密钥配置**  
在缓存密钥中包含`Origin`标头，以确保针对不同来源分别缓存响应

**标头转发**  
将标`Origin`题和其他与 CORS 相关的标头转发到原点

**响应标头管理**  
配置您的 CDN 以确保响应中`Access-Control-Allow-Origin`包含标头

具体的术语和配置选项因CDN提供商而异，但基本原理保持不变。

### 优先级 1：服务器引导的广告插入行为
<a name="cf-sgai-behavior"></a>

当客户配置引导模式[MediaTailor 服务器引导的广告插入概述和实现](server-guided.md)（提供可缓存的清单）时，此行为会处理 (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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)中的。您也可以在第三方 CDN 中使用托管策略中的相同设置。
+ **起源请求政策：**`None`
+ **响应标头政策：**`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  有关响应标头策略中包含的内容的详细信息，请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 [CORS-with-preflight-and-](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)。

### 优先级 2：个性化清单行为
<a name="cf-personalized-manifest-behavior"></a>

此行为处理个性化清单请求。 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-policy-caching-disabled)中的。
+ **起源请求政策：**`AllViewer`

  对于个性化清单，请使用该`AllViewer`政策转发动态内容所需的所有标题。
+ **响应标头政策：**`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  有关响应标头策略中包含的内容的详细信息，请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 [CORS-with-preflight-and-](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)。

**接受编码标头**  
我们建议您的 CDN 保留观看者的`Accept-Encoding`标题。此标题提供了有关压缩个性化清单的 MediaTailor 说明。

在中 CloudFront，`AllViewerAndCloudFrontHeaders`原始请求策略包括来自查看者的`Accept-Encoding`标头的直通。如果您使用其他 CDN，请确保它保留此标头。

以下是如何 MediaTailor 处理标`Accept-Encoding`题。
+ **传统设备：**不支持 gzip TVs 的旧智能设备不会发送 Accept-Encoding 标头，因此 MediaTailor 会返回未压缩的清单
+ **现代设备：**iPhone、Chrome 浏览器和其他现代客户端会发送 Accept-Encoding 标头， MediaTailor 允许在交付之前压缩清单

### 优先级 3：服务器端信标路径行为
<a name="cf-segment-path-behavior"></a>

此行为处理的请求 MediaTailor 会导致重定向。[服务器端跟踪](ad-reporting-server-side.md)这些请求对于跟踪信标至关重要，因此每个请求都必须由 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](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-policy-caching-disabled)中的。
+ **起源请求政策：**`AllViewer`

  对于服务器端信标请求，使用`AllViewer`策略转发跟踪所需的所有标头。由于这些请求未被缓存，因此不存在缓存中毒的风险。
+ **响应标头政策：**`Managed-CORS-with-preflight-and-SecurityHeadersPolicy`

  有关响应标头策略中包含的内容的详细信息，请参阅 CloudFront 用户指南SecurityHeadersPolicy中的 [CORS-with-preflight-and-](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)。

 MediaTailor 处理这些请求时，它会返回 302 重定向响应，其路径指向实际分段位置。例如，对的请求`/segment/ad123.ts`可能会在区段源`/tm/encoded-ad-segment.ts`上重定向到。

### 优先级 4：内容来源路径行为
<a name="cf-default-behavior"></a>

如果请求路径与任何其他模式都不匹配， CloudFront 则应用默认行为。此行为将请求直接发送到内容来源，不进行任何处理 MediaTailor。这允许在需要时直接访问您的内容来源（例如 MediaPackage V2）。 CloudFront 将以下行为应用于所有不包含任何先前路径模式的请求。
+ **路径模式：**`(*)`
+ **来源：**您使用域名为内容来源创建的来源。

  前面关于起源的章节中的示例就是**ContentOrigin**这样。
+ **缓存策略：**`Managed-CachingOptimized`

  有关 CloudFront 托管缓存策略中包含的内容的详细信息，请参阅 CloudFront 用户指南[CachingOptimized](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-caching-optimized)中的。您也可以在第三方 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-](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-response-headers-policies.html#managed-response-headers-policies-cors-preflight-security)。