

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

# 使用设置基本 CloudFront 集成 MediaTailor
<a name="cloudfront-basic-setup"></a>

AWS Elemental MediaTailor 与 Amazon 的集成 CloudFront 可提高您的观众的内容交付性能。本主题将指导您为设置基本 CloudFront 发行版 MediaTailor。通过这种集成，您的观众可以通过 CloudFront 网络访问个性化内容。您还将学习如何为不同的内容类型配置适当的缓存。

有关通过传递 CloudFront 用于授权和路由的查询参数的信息，请参见[MediaTailor 清单查询参数](manifest-query-parameters.md)。有关使用动态变量的高级路由，请参阅[MediaTailor 多个内容源的域变量](variables-domains.md)。

## 先决条件
<a name="cf-basic-prerequisites"></a>

在 CloudFront 使用进行配置之前 MediaTailor，请确保您具备以下条件：
+ 具有创建和管理 CloudFront分配权限的活跃 AWS 账户
+ 已配置的 MediaTailor 播放配置（请参阅[AWS Elemental MediaTailor 用于插入广告](configurations.md)）
+ 您的内容源服务器已正确设置并可以访问
+ 对视频流媒体概念的基本理解 (HLS/DASH)

## 配置 CloudFront 分发
<a name="cf-basic-configuration"></a>

按照以下步骤为以下各项创建和配置 CloudFront 分发 MediaTailor：

**为创建 CloudFront 分配 MediaTailor**

1. 登录 AWS 管理控制台并在 [https://console.aws.amazon.com/cloudfront/v3/](https://console.aws.amazon.com/cloudfront/v3/home) hom CloudFront e 中打开控制台。

1. 选择 **Create Distribution**（创建分配）。

1. 对于 **Origin 域名**，请输入您的 MediaTailor 终端节点 URL（例如`a1b2c3d4.mediatailor.us-west-2.amazonaws.com`）。

1. 对于**协议**，请选择**仅限 HTTPS**。

1. 在 “**名称**” 中，输入一个可以帮助您识别此来源的名称（例如，`mediatailor-origin`）。

1. 配置默认的缓存行为设置：

   1. 对于**路径模式**，使用默认值 (`*`)。

   1. 对于 “**自动压缩对象**”，选择 “**是**”。

   1. 对于**查看器协议策略**，请选择**将 HTTP 重定向到 HTTPS**。

   1. 对于 “**允许的 HTTP 方法**”，选择 **GET、HEAD**。

   1. 在**缓存策略**中，选择**CachingDisabled**。

   1. 在 O **rigin 请求策略**中，选择**AllViewer**转发默认行为的所有标头。
**注意**  
默认行为 AllViewer 用于安全处理任何与特定路径模式不匹配的内容。清单和区段的特定缓存行为将使用适当的策略单独配置。

1. 配置分发设置：

   1. 对于**价格等级**，请选择与您的受众位置最匹配的选项。

   1. 对于 **AWS WAF Web ACL**，请选择现有的 Web ACL 或保留为 “**请勿启用安全保护**”。

   1. 对于**默认根对象**，请留空。

   1. 对于**标准日志记录**，请选择开**启**以启用日志记录。

1. 选择 **Create Distribution**（创建分配）。

## 配置缓存行为
<a name="cf-cache-behaviors"></a>

创建发行版后，您需要配置其他缓存行为以适当地处理不同类型的内容。本节介绍的基本缓存行为设置 CloudFront。

有关全面的缓存优化，包括高级 TTL 设置、缓存密钥配置和性能调整，请参阅 CDN 优化指南[针对 CDN 和 MediaTailor 集成的缓存优化](cdn-optimize-caching.md)中的。

### 配置清单缓存行为
<a name="cf-manifest-behavior"></a>

不要缓存清单，因为清单包含个性化内容。按照以下步骤配置缓存行为：

**配置清单缓存行为**

1. 在 CloudFront 控制台中，选择您的发行版。

1. 选择**行为**选项卡。

1. 选择**创建行为**。

1. 在**路径模式**中，输入`*.m3u8`以匹配 HLS 多变体播放列表和媒体播放列表。

1. 在 O **rigin** 中，选择您的 MediaTailor 起运地。

1. 在**缓存策略**中，选择**CachingDisabled**。

1. 在 O **rigin 请求策略**中，选择**AllViewer**转发动态内容所需的所有标题。

1. 选择**创建**。

1. 使用路径模式对 DASH 清单重复这些步骤`*.mpd`进行匹配 MPDs。

此配置可确保每位观众都能收到包含其特定广告内容的个性化清单。CDN 不会缓存这些清单，因此每个请求都会直接发送到。 MediaTailor

### 配置分段缓存行为
<a name="cf-segment-behavior"></a>

为广告细分和内容区段配置单独的缓存行为，以优化效果并确保正确处理 CORS。

#### 配置广告区段缓存行为
<a name="cf-ad-segment-behavior"></a>

通过`/tm/*`路径模式投放的广告区段需要特定的配置才能正确处理 CORS。按照以下步骤进行操作：

**配置广告区段缓存行为**

1. 在 CloudFront 控制台中，选择您的发行版。

1. 选择**行为**选项卡。

1. 选择**创建行为**。

1. 在 “**路径模式**” 中`/tm/*`，输入匹配投放的广告区段 MediaTailor。

1. 对于 **Origin**，选择您的 MediaTailor 分段来源（使用`segments.mediatailor.region.amazonaws.com`主机名）。

1. 在**缓存策略**中，选择**CachingOptimized**。

1. 在 O **rigin 请求策略**中，选择**无**。

1. 对于**响应标头策略**，请选择 **CORS-with-preflight-and-SecurityHeadersPolicy** 以确保响应中包含正确的 CORS 标头。

1. 选择**创建**。

#### 配置内容分段缓存行为
<a name="cf-content-segment-behavior"></a>

内容分段可以使用标准缓存策略来获得最佳性能。为不同的区段格式配置单独的行为：

**配置内容分段缓存行为**

1. 在 CloudFront 控制台中，选择您的发行版。

1. 选择**行为**选项卡。

1. 选择**创建行为**。

1. 在**路径模式**中，输入`*.ts`以匹配 HLS 内容分段。

1. 在 O **rigin** 中，选择您的内容来源。

1. 在**缓存策略**中，选择**CachingOptimized**。

1. 在 O **rigin 请求策略**中，选择**无**。

1. 对于**响应标头策略**，请选择 **CORS-with-preflight-and-SecurityHeadersPolicy** 以确保对所有内容类型的 CORS 处理保持一致。

1. 选择**创建**。

1. 使用适当的路径模式对其他内容段格式重复以下步骤：
   + `*.mp4`用于 MP4 细分
   + `*.m4s`适用于 DASH 区段
   + `*.cmfv`并`*.cmfa`适用于 CMAF 细分市场

此配置可确保通过适当的 CORS 处理来适当地缓存广告细分和内容区段。广告细分使用带有 CORS 保护的 MediaTailor 区段来源，而内容细分则使用您的内容来源并经过优化的缓存策略。

## 更新 MediaTailor 配置
<a name="cf-mediatailor-config"></a>

设置好 CloudFront 发行版后，请更新您的 MediaTailor 配置以使用该 CloudFront 域名：

**更新您的 MediaTailor 配置**

1. 打开 [MediaTailor 控制台](https://console.aws.amazon.com/mediatailor/home)。

1. 选择要更新的配置。

1. 在 **CDN 配置**部分，在 **CDN 内容 CloudFront分段前缀**字段中输入您的分发域名（例如`d1234abcdef.cloudfront.net`）。

1. 保存更改。

使用此配置， MediaTailor 生成 URLs 指向您的 CloudFront分发而不是直接指向原点的清单。

## 测试您的集成
<a name="cf-basic-testing"></a>

配置 CloudFront 发行版并更新 MediaTailor 配置后，请测试集成：

**测试您的 CloudFront 和 MediaTailor 集成**

1. 通过您的 CloudFront 发行版请求清单（例如，`https://d1234abcdef.cloudfront.net/v1/master/12345/my-config/index.m3u8`）。

1. 验证清单中是否 URLs 包含指向您的 CloudFront域名的区段。

1. 通过视频播放器播放内容，并验证内容和广告的播放是否正确。

1. 检查 CloudFront 日志，确保请求路由正确。

## 示例配置
<a name="cf-basic-example"></a>

以下是 MediaTailor 具有适当缓存行为的 CloudFront 分发配置示例：

**Example CloudFront 分发配置示例**  

```
{
  "DefaultCacheBehavior": {
    "TargetOriginId": "mediatailor-origin",
    "ViewerProtocolPolicy": "redirect-to-https",
    "AllowedMethods": {
      "Quantity": 2,
      "Items": ["GET", "HEAD"]
    },
    "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
    "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1",
    "Comment": "Default behavior with CachingDisabled and AllViewer"
  },
  "CacheBehaviors": [
    {
      "PathPattern": "*.m3u8",
      "TargetOriginId": "mediatailor-origin",
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
      "OriginRequestPolicyId": "59781a5b-3903-41f3-afcb-af62929ccde1",
      "Comment": "Manifest behavior with CachingDisabled and AllViewer"
    },
    {
      "PathPattern": "*.ts",
      "TargetOriginId": "mediatailor-origin", 
      "ViewerProtocolPolicy": "redirect-to-https",
      "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
      "OriginRequestPolicyId": "88a5eaf4-2fd4-4709-b370-b4c650ea3fcf",
      "Comment": "Segment behavior with CachingOptimized and HostHeaderOnly"
    }
  ]
}
```

此示例显示：
+ **默认行为**：使用`CachingDisabled`和`AllViewer`来安全处理任何与特定路径模式不匹配的内容
+ **清单行为 (\$1.m3u8)**：使用和用于动态内容 `CachingDisabled` `AllViewer`
+ **区段行为 (\$1.ts)：用途**和 `CachingOptimized` `CORS-with-preflight-and-SecurityHeadersPolicy`

## 后续步骤
<a name="cf-basic-next-steps"></a>

设置基本 CloudFront 集成后 MediaTailor，请考虑以下步骤：
+ 使用其他 CloudFront 功能优化性能（参见[利用 CloudFront 功能优化 MediaTailor 性能](cloudfront-performance-optimization.md)）
+ 使用 MQAR 实现多区域弹性（参见）[MediaTailor 使用 MQAR 实现多区域弹性](media-quality-resiliency.md)
+ 设置监控和故障排除（请参阅[监控您的和 MediaTailor 集成， CloudFront 并对其进行故障排除](monitoring-and-troubleshooting.md)）