

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

# MediaTailor 配置别名概述
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor 配置别名允许在 URL 域和其他支持的字段中进行动态变量替换。使用此功能可在会话初始化 URLs 期间使用多个域并进行动态配置。

## 使用案例
<a name="configuration-aliases-use-cases"></a>

配置别名可为以下场景启用复杂的多配置架构：
+ **地理路由：**使用特定地区的别名，根据观看者的位置将请求路由到不同的来源或广告服务器。有关实施指南，请参阅[CloudFront 源故障转移](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html)。
+ **基于内容的路由：**将不同的内容类型定向到专门的来源或处理管道。有关路由行为的配置，请参阅[为以下各项设置 CDN 路由行为 MediaTailor](cdn-routing-behaviors.md)。
+ **故障转移场景：**使用别名切换实现自动故障转移的备份源和广告服务器。有关实施的详细信息，请参见[MediaTailor 使用 MQAR 实现多区域弹性](media-quality-resiliency.md)和[规划您的 CDN 集成 AWS Elemental MediaTailor](planning-cdn-integration.md)。
+ **A/B 测试：**根据玩家参数路由流量，测试不同的广告服务器、来源或配置。有关负载测试指南，请参阅[ CloudFront 使用真实用户监控功能为 Amazon 准备和运行性能测试](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/)。
+ **设备特定优化：**针对不同的设备类型或功能优化内容投放和广告投放。有关全面的指导，请参阅[使用 MediaTailor、 MediaPackage和 CDN 设置清单筛选](cdn-emp-manifest-filtering.md)。
+ **负载平衡：**使用动态路由在多个来源或广告服务器之间分配负载。有关实施指导，请参见[MediaTailor 使用 MQAR 实现多区域弹性](media-quality-resiliency.md)和[规划您的 CDN 集成 AWS Elemental MediaTailor](planning-cdn-integration.md)。

## 支持的字段
<a name="configuration-aliases-supported"></a>

您可以在以下配置字段中使用动态变量：
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

以下各节介绍如何使用配置别名。

**Topics**
+ [使用案例](#configuration-aliases-use-cases)
+ [支持的字段](#configuration-aliases-supported)
+ [创建和使用](creating-configuration-aliases.md)
+ [流程示例](configuration-aliases-examples.md)

# 创建和使用配置别名 MediaTailor
<a name="creating-configuration-aliases"></a>

在开始使用域变量之前，需要为配置创建配置别名。在会话初始化时，您可以使用配置别名作为域替换变量。

**限制**  
使用配置别名时，请注意以下限制：
+ 域中使用的所有动态变量都必须定义为`ConfigurationAliases`动态变量。
+ 玩家参数变量前缀必须为。`player_params.`例如 `player_params.origin_domain`。
+ 对于处于临界状态 URLs (,,`ContentSegmentUrlPrefix`) 的域变量`VideoContentSourceUrl`，`AdSegmentUrlPrefix`别名值列表必须详尽无遗。
+ 如果请求的关键 URLs 域变量未指定动态变量或使用无效别名，则请求将失败，并显示 HTTP `400` 状态码。非关键字段（`SlateAdUrl`、`TranscodeProfileName`、bump URLs er）将记录警告，但不会使请求失败。

**缺少别名的后备行为**  
当找不到配置别名或配置别名无效时，将 MediaTailor 实现以下回退行为：
+ **域变量：**如果域变量别名缺失或无效，则请求将失败，并显示 HTTP 400 状态码。所有域变量都必须定义有效的别名。
+ **非域变量：**对于的非域部分中使用的变量 URLs （例如路径元素或查询参数），缺少别名会导致替换空字符串。
+ **配置验证： MediaTailor 验证**在配置创建和更新操作期间是否存在所有必需的别名。

## 步骤 1：创建配置别名
<a name="dynamic-domains-creating-configuration-alias"></a>

要使用 MediaTailor控制台创建用于域替换的配置别名，请执行以下步骤。

------
#### [ Console ]

**使用控制台创建配置别名**

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

1. **在**配置页面的配置别名**部分，选择**添加玩家参数**。**

1. 在 P **layer 参数**中，输入要用作动态变量的玩家参数的名称。例如 `player_params.origin_domain`。

1. 对于**别名**，请输入要用于玩家参数的别名及其值。

1. 选择**确定**。

   AWS Elemental MediaTailor 在 “**配置别名**” 部分的表中显示新参数。

1. 重复上述步骤以添加更多播放器参数。

1. 选择**保存**。

------
#### [ API ]

**使用 API 创建配置别名**  
创建或更新 MediaTailor 配置时，请使用具有以下 JSON 结构的`ConfigurationAliases`参数：

```
{
                "ConfigurationAliases": {
                "player_params.origin_domain": {
                "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
                "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
                },
                "player_params.ad_type": {
                "customized": "abc12345",
                "default": "defaultAdType"
                }
                }
                }
```

------

## 步骤 2：在会话初始化中使用配置别名
<a name="dynamic-domains-using-configuration-alias"></a>

设置配置别名后，可以在会话初始化请求中将其用作域的替换变量。这使您能够动态配置会话的域。

**Example 基本配置别名示例**  
以下是包含配置别名和动态域变量的配置的基本示例：  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        }
    }
}
```

**Example 使用别名进行会话初始化**  
使用上述配置，使用玩家变量和别名的会话初始化请求将类似于以下内容：  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor 用配置别名配置中的映射值替换别名字符串。  
向 ADS 发出的请求将如下所示：  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
向来源索取清单的请求将如下所示：  

```
https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
```

# 带有 MediaTailor 使用示例的配置别名
<a name="configuration-aliases-examples"></a>

以下示例显示了如何使用配置别名的完整 MediaTailor 配置、带别名的会话初始化请求以及别名的处理流程。

**Example 使用别名完成配置**  
以下示例显示了包括配置别名和动态域变量的完整配置：  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    
    "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/",
    "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/",
    "TranscodeProfileName": "[player_params.transcode_profile]",
    "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4",
    "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]",
    "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]",
    
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        },
        "player_params.ad_cdn_domain": {
            "pdx": "ads-west.cdn.example.com",
            "iad": "ads-east.cdn.example.com"
        },
        "player_params.content_cdn_domain": {
            "pdx": "content-west.cdn.example.com",
            "iad": "content-east.cdn.example.com"
        },
        "player_params.transcode_profile": {
            "mobile": "mobile_optimized",
            "desktop": "high_quality",
            "tv": "4k_profile"
        },
        "player_params.slate_domain": {
            "pdx": "slate-west.example.com",
            "iad": "slate-east.example.com"
        },
        "player_params.slate_type": {
            "standard": "default_slate",
            "branded": "brand_slate"
        },
        "player_params.tracking_domain": {
            "pdx": "tracking-west.example.com",
            "iad": "tracking-east.example.com"
        }
    }
}
```

**Example 使用别名进行会话初始化**  
以下示例显示了指定玩家变量和别名的会话初始化请求：  

```
POST master.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx", 
        "endpoint_id": "pdx",
        "ad_type": "customized",
        "ad_cdn_domain": "pdx",
        "content_cdn_domain": "pdx",
        "transcode_profile": "mobile",
        "slate_domain": "pdx",
        "slate_type": "branded",
        "tracking_domain": "pdx"
    }
}
```

**Example 参数处理流程**  
在以下示例中， MediaTailor 将别名字符串替换为配置别名中的映射值。处理后会产生以下请求：  
+ 广告请求：

  ```
  https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  ```
+ VideoContentSource 请求：

  ```
  https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  ```
+ AdSegmentUrlPrefix:

  ```
  https://ads-west.cdn.example.com/ads/
  ```
+ ContentSegmentUrlPrefix:

  ```
  https://content-west.cdn.example.com/content/
  ```
+ TranscodeProfileName:

  ```
  mobile_optimized
  ```
+ SlateAdUrl:

  ```
  https://slate-west.example.com/slate/brand_slate.mp4
  ```
+ StartUrl:

  ```
  https://tracking-west.example.com/start?session=[session.id]
  ```
+ EndUrl:

  ```
  https://tracking-west.example.com/end?session=[session.id]
  ```