

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

# 使用来源位置
<a name="channel-assembly-source-locations"></a>

源位置表示存储您的源内容的源服务器。来源位置可以是 Amazon S3、标准 Web 服务器、内容分发网络 (CDN)（如亚马逊 CloudFront）或包装来源（例如）。 AWS Elemental MediaPackage MediaTailor 从源位置检索您的内容清单，并使用它们来整理频道的线性直播。

 本主题介绍如何使用 AWS Elemental MediaTailor 控制台创建和删除来源位置，以及如何使用 VOD 来源。

**Topics**
+ [创建源位置](channel-assembly-creating-source-locations.md)
+ [为您的来源位置配置身份验证](channel-assembly-source-locations-access-configuration.md)
+ [使用 VOD 来源](channel-assembly-working-vod-sources.md)
+ [使用直播源](channel-assembly-working-live-sources.md)
+ [使用软件包配置](channel-assembly-package-configurations.md)
+ [清单缓存](channel-assembly-manifest-caching.md)

# 创建源位置
<a name="channel-assembly-creating-source-locations"></a>

以下过程说明了如何使用 MediaTailor控制台创建源位置。有关如何使用 MediaTailor API 创建来源位置的信息，请参阅 *AWS Elemental MediaTailor API 参考[CreateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateSourceLocation.html)*中的。<a name="create-source-location-procedure"></a>

**创建源位置**

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

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在导航栏上，选择**创建来源位置**。

1. 在**源位置配置**下，输入源服务器的名称和基本 URL：
   + **名称**：您的来源位置的标识符，例如 **my-** origin。
   + **基本 URL**：存储内容的源服务器的协议和基本 URL，例如 **https://111111111111.cloudfront.net**。网址必须采用标准的 HTTP 网址格式，前缀为 ht **tp://**或 h **ttps://**。

     或者，如果您的源位置是 **Amazon S3 存储桶，并且您想使用 AWS 签名版本 4 进行 Amazon S3 访问身份验证，请选择 “使用 Sigv** 4 进行 Amazon S3 身份验证”。有关高级信息，请参阅[为您的来源位置配置身份验证](channel-assembly-source-locations-access-configuration.md)。

1. <a name="access-configuration-console"></a>在 “**访问配置”** 下，可以选择为您的来源位置配置身份验证：
   + **访问类型**：选择 MediaTailor 用于访问存储在来源位置来源上的内容的身份验证类型。
     + **适用于亚马逊 S3 的 Sigv4**-使用 MediaTailor 亚马逊签名版本 4 (Sigv4) 来授权向你的来源发出的请求。有关更多信息，请参阅 [使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证](channel-assembly-access-configuration-sigv4.md)。
     + S@@ **ecrets Manager 访问令牌身份验证**- MediaTailor 使用 Secrets Manager 以及由您创建、拥有和管理的 AWS KMS 客户托管密钥来简化与您的源 MediaTailor 之间的访问令牌身份验证。有关如何配置 S **ecrets Manager 访问令牌身份验证**的信息，请参阅[使用 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-token.md)。
       + **标头名称**-指定 HTTP 标头名称。 MediaTailor 使用 HTTP 标头在内容清单请求中将访问令牌发送到您的源。你可以使用任何标头名称，只要它不是以`x-amz-`或开头的`x-amzn-`。如果您要与 [MediaPackage CDN 授权](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth.html)集成，则标头值应`X-MediaPackage-CDNIdentifier`为。
       + **密钥字符串密钥**-您在 Secrets Manager 密`SecretString`钥中指定的密钥。例如，如果`SecretString`包含密钥和值对，例如:`{"MyHeaderName": "11111111-2222-3333-4444-111122223333"}`，则`MyHeaderName`是您在此字段中输入的`SecretString`密钥。
       + **秘密 ARN**-存放您的访问令牌的机密的 ARN。有关 step-by-step指南，请参阅[步骤 2：创建 AWS Secrets Manager 密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-secret)。

1. 在 “**区段交付服务器配置”** 下，可以选择配置服务器来交付您的内容分段：
   + **使用默认的分段传送服务器**：输入用于交付内容分段（例如 CDN）的服务器的基本 URL。如果您想使用与源位置服务器不同的服务器来提供内容分段，请配置**默认分段主机名**。例如，您可以对**基本 HTTP URL（用于访问清单的内容）和默认区段基础 URL****（玩家用于访问内容分段**） MediaTailor 使用不同的 CDN 配置，来限制玩家对原始清单的访问。如果未输入值，则 MediaTailor 默认为分段传送的源位置服务器。
   + **使用指定分段传送服务器**：如果您配置了默认的分段传送服务器，则还可以配置其他分段传送服务器。每个人都必须有一个唯一的名称和一个基本 URL。基本网址可以是完整的 HTTP 网址，也可以是类似的相对路径`/some/path/`。这些名称用于标识在 MediaTailor 收到内容分段请求时应使用哪个服务器。如果请求包含标头`X-MediaTailor-SegmentDeliveryConfigurationName`并且标头的值与名称匹配，则将使用相应的基本 URL 来提供内容。如果请求中未包含标头，或者标头与任何名称都不匹配，则将使用默认的分段传送服务器。

1. 选择 “**创建源位置**”。

1. 要添加更多源位置，请重复步骤 2-6。

# 为您的来源位置配置身份验证
<a name="channel-assembly-source-locations-access-configuration"></a>

使用**访问配置**为您的来源位置配置身份验证。开启访问配置后， MediaTailor 只有在请求在 MediaTailor 和您的来源之间获得授权的情况下，才会从您的来源检索源清单。默认情况下，访问配置处于关闭状态。

MediaTailor 支持以下身份验证类型：
+ 适用于 Amazon S3 身份验证的 Sigv4
+ AWS Secrets Manager 访问令牌
+ 用于 MediaPackage 版本 2 (v2) 身份验证的 Sigv4

 本章介绍如何使用适用于 Amazon S3、v MediaPackage 2 的 Sigv4 以及如何使用 AWS Secrets Manager 访问令牌进行来源位置身份验证。

 有关更多信息，请选择适用的主题。

**Topics**
+ [使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证](channel-assembly-access-configuration-sigv4.md)
+ [在版本 2 中使用 SigV4 MediaPackage](channel-assembly-access-configuration-sigv4-empv2.md)
+ [使用 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-token.md)

# 使用 Sigv4 对发往亚马逊 S3 的请求进行身份验证
<a name="channel-assembly-access-configuration-sigv4"></a>

适用于亚马逊 S3 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HTTPS 向亚马逊 S3 发出的请求进行身份验证。当您将 Sigv4 用于 Amazon S3 时，在向用作源的 Amazon S3 存储桶的 HTTPS 请求中 MediaTailor 包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 有关 sigV4 的一般信息 AWS Key Management Service，请参阅 *Amazon* S3 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)主题。

**注意**  
MediaTailor 始终使用 Sigv4 签署对这些来源的请求。

## 要求
<a name="channel-assembly-access-configuration-sigv4-how-to"></a>

 如果您为来源位置激活 SigV4 for Amazon S3 身份验证，则必须满足以下要求：
+ 您必须通过在 IAM **中授予 mediatailor.amazonaws.com 委托人访问权限来允许 MediaTailor 访问您的亚马逊** S3 存储桶。有关在 IAM 中配置访问权限的信息，请参阅*AWS Identity and Access Management 用户指南*中的[访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。
+ m **ediatailor.amazonaws.com** 服务主体必须有权读取 VOD 源包配置引用的所有多变体播放列表。
+ API 的调用者必须具有 **s3: GetObject** IAM 权限才能读取您的 MediaTailor VOD 源包配置引用的所有多变体播放列表。
+ 您的 MediaTailor 来源位置基本 URL 必须遵循 Amazon S3 虚拟托管式请求网址格式。例如，https://*bucket-name*.s3。 *Region*.amazonaws.com/。*key-name*有关 Amazon S3 托管虚拟式访问的信息，请参阅[虚拟托管式请求。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#virtual-hosted-style-access)

# 在版本 2 中使用 SigV4 MediaPackage
<a name="channel-assembly-access-configuration-sigv4-empv2"></a>

v2 的签名版本 4 (Sigv4) 是一种签名协议，用于对通过 HT MediaPackage TP 向 MediaPackage v2 发出的请求进行身份验证。当你在 v MediaPackage 2 中使用 Sigv4 时，在发送给用作源的 MediaPackage v2 端点的 HTTP 请求中 MediaTailor包含签名的授权标头。如果签名的授权标头有效，则您的来源满足请求。如果无效，则请求失败。

 *有关 v2 版 Sigv4 的一般信息，请参阅 MediaPackage v2 API 参考中的[身份验证请求（AWS 签名版本 4）](https://docs.aws.amazon.com/mediapackage/latest/userguide/sig-v4-authenticating-requests.html)主题。MediaPackage *

## 要求
<a name="channel-assembly-access-configuration-sigv4-empv2-how-to"></a>

 如果您为源位置激活 sig MediaPackage V4 进行 v2 身份验证，则必须满足以下要求：
+ 您必须通过在终端节点的 O MediaTailor rigin 访问策略**中授予 mediatailor.amazonaws.com** 委托人访问权限来允许访问您的 MediaPackage v2 终端节点。
+ 您的 MediaTailor 来源位置基础 URL 必须是 MediaPackage v2 终端节点。
+ API 的调用者必须具有 **mediapackagev2: GetObject** IAM 权限才能读取源打包配置引用的所有多变体播放列表。 MediaTailor 

# 使用 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-token"></a>

MediaTailor 支持 S *ecrets Manager 访问令牌身份验证*。通过 AWS Secrets Manager 访问令牌身份验证， MediaTailor使用 AWS Key Management Service (AWS KMS) 客户托管的 AWS Secrets Manager 密钥和您创建、拥有和管理的密钥来对发往您的来源的请求进行身份验证。

在本节中，我们将介绍 Secrets Manager 访问令牌身份验证的工作原理，并提供有关如何配置 Secrets Manager 访问令牌身份验证 step-by-step的信息。你可以在中使用 Secrets Manager 访问令牌身份验证， AWS 管理控制台 也可以通过编程方式使用 AWS APIs。

**Topics**
+ [配置 AWS Secrets Manager 访问令牌身份验证](channel-assembly-access-configuration-access-configuring.md)
+ [与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)
+ [S MediaTailor ecrets Manager 访问令牌身份验证的工作原理](channel-assembly-access-configuration-overview.md)

# 配置 AWS Secrets Manager 访问令牌身份验证
<a name="channel-assembly-access-configuration-access-configuring"></a>

要使用 AWS Secrets Manager 访问令牌身份验证时，请执行以下步骤：

1. 您[创建 AWS Key Management Service 客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

1. 您[创建了一个 AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)。该密钥包含您的访问令牌，该令牌作为加密密钥值存储在 Secrets Manager 中。 MediaTailor 使用 AWS KMS 客户管理的密钥来解密密密钥值。

1. 您可以将 AWS Elemental MediaTailor 源位置配置为使用 Secrets Manager 访问令牌身份验证。

以下部分提供有关如何配置 AWS Secrets Manager 访问令牌身份验证的 step-by-step指导。

**Topics**
+ [步骤 1：创建 AWS KMS 对称的客户托管密钥](#channel-assembly-access-configuration-access-token-how-to-create-kms)
+ [步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)
+ [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth)

## 步骤 1：创建 AWS KMS 对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-kms"></a>

您用来 AWS Secrets Manager 以存储在密钥中的形式`SecretString`存储访问令牌。使用您创建、拥有和管理的*AWS KMS 对称客户托管密钥*进行加密。`SecretString` MediaTailor 使用对称的客户托管密钥来简化对密钥的访问（通过授权），并加密和解密密密钥值。

客户托管密钥允许您执行以下任务：
+ 制定和维护关键策略
+ 建立和维护 IAM 策略和授权
+ 启用和禁用密钥策略
+ 轮换加密密钥材料
+ 添加 标签

  有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

  有关客户托管密钥的更多信息，请参阅*《AWS Key Management Service 开发人员指南》*中的[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
AWS KMS 使用客户托管密钥需要支付费用有关定价的更多信息，请参阅定[AWS Key Management Service 价](https://aws.amazon.com/kms/pricing/)页面。

您可以使用 AWS 管理控制台 或以编程方式创建 AWS KMS 对称的客户托管密钥。 AWS KMS APIs

### 创建对称的客户托管密钥
<a name="channel-assembly-access-configuration-access-token-create-symmetric-key"></a>

按照*AWS Key Management Service 开发人员指南*中[创建对称客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步骤进行操作。

记下关键的 Amazon 资源名称 (ARN)；你需要它。[步骤 2：创建 AWS Secrets Manager 密钥](#channel-assembly-access-configuration-access-token-how-to-create-secret)

### 加密上下文
<a name="channel-assembly-access-configuration-access-token-encryption-context"></a>

*加密上下文*是一组可选的键值对，包含有关数据的其他上下文信息。

Secrets Manager 在加密和解密时包含加密[上下文](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html#asm-encryption-context)。`SecretString`加密上下文包括机密 ARN，它将加密限制在该特定机密范围内。作为一项额外的安全措施，请代表您 MediaTailor 创建 AWS KMS 补助金。 MediaTailor 应用的[GrantConstraints](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html)操作仅允许我们解密与 S *ecrets Manager 加密*上下文中包含的机密 ARN `SecretString` 关联的 ARN。

有关 Secrets Manager 如何使用加密上下文的信息，请参阅*AWS Key Management Service 开发者指南*中的[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)主题。

### 设置密钥策略
<a name="channel-assembly-access-configuration-access-token-key-policy"></a>

密钥政策控制对客户托管密钥的访问。每个客户托管式密钥必须只有一个密钥策略，其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管密钥时，您可以使用默认密钥策略。有关更多信息，请参阅《*AWS Key Management Service 开发人员指南*》中的 [AWS KMS的身份验证和访问控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)。

要将您的客户托管密钥与您的 MediaTailor 来源位置资源一起使用，您必须向调用[CreateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateSourceLocation.html)或使用[UpdateSourceLocation](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_UpdateSourceLocation.html)以下 API 操作的 IAM 委托人授予权限：
+ `kms:CreateGrant`— 向客户托管密钥添加授权。 MediaTailor 为您的客户托管密钥创建授权，允许其使用该密钥创建或更新配置了访问令牌身份验证的来源位置。有关在中使用 Grant [s 的](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)更多信息 AWS KMS，请参阅《*AWS Key Management Service 开发者指南》。*

  这 MediaTailor 允许执行以下操作：
  + 致电`Decrypt`这样它就可以在呼叫时成功检索你的 Secrets Manager 密钥[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)。
  + 当源位置被删除或密钥的访问权限被撤销时，请致电`RetireGrant`取消授权。

以下是您可以为其添加的策略声明示例 MediaTailor：

```
{
        "Sid": "Enable MediaTailor Channel Assembly access token usage for the MediaTailorManagement IAM role",
        "Effect": "Allow",
        "Principal": {
        "AWS": "arn:aws:iam::account number:role/MediaTailorManagement"
    },
     "Action": "kms:CreateGrant",
     "Resource": "*",
     "Condition": {
         "StringEquals": {
             "kms:ViaService": "mediatailor.region.amazonaws.com"
        }
    }
}
```

有关在策略中指定权限以及对密钥访问进行故障排除的更多信息，请参阅*《AWS Key Management Service 开发人员指南*》[AWS KMS中的授](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)权。

## 步骤 2：创建 AWS Secrets Manager 密钥
<a name="channel-assembly-access-configuration-access-token-how-to-create-secret"></a>

使用 Secrets Manager 以 AWS KMS 客户托管密钥加密`SecretString`的形式存储您的访问令牌。 MediaTailor使用密钥来解密。`SecretString`有关 Secrets Manager 如何使用 AWS KMS 来保护密钥的信息，请参阅《*AWS Key Management Service 开发者指南》 AWS KMS*中的 “[如何 AWS Secrets Manager 使用](https://docs.aws.amazon.com/kms/latest/developerguide/services-secrets-manager.html)” 主题。

如果您使用源位置来源，并且想使用 S MediaTailor ecret AWS Elemental MediaPackage s Manager 访问令牌身份验证，请按照以下步骤操作[与使用 CDN 授权的 MediaPackage 端点集成](channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth.md)。

你可以使用 Secrets Manager 创建 Secrets Manager 密钥， AWS 管理控制台 也可以通过编程方式使用 Secrets Manager APIs 创建。

### 创建密钥
<a name="channel-assembly-access-configuration-access-token-create-secret"></a>

按照*AWS Secrets Manager 用户指南*中[创建和管理密钥 AWS Secrets Manager的](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)步骤进行操作。

创建密钥时，请记住以下注意事项：
+ [KmsKeyId](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicaRegionType.html#SecretsManager-Type-ReplicaRegionType-KmsKeyId)必须是您在步骤 1 中创建的客户托管密钥的密钥 [ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)。
+ 您必须提供 [SecretString](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html#SecretsManager-CreateSecret-request-SecretString). `SecretString`应该是有效的 JSON 对象，其中包含包含访问令牌的键和值。例如，\$1” MyAccessTokenIdentifier “: “112233445566"\$1。该值的长度必须介于 8-128 个字符之间。

  使用访问令牌身份验证配置源位置时，需要指定`SecretString`密钥。 MediaTailor 使用密钥查找和检索存储在中的访问令牌`SecretString`。

  记下秘密 ARN 和密钥。`SecretString`当您将来源位置配置为使用访问令牌身份验证时，您将使用它们。

### 附加基于资源的密钥策略
<a name="channel-assembly-access-configuration-access-token-secret-policy"></a>

要允许 MediaTailor 访问密钥值，您必须将基于资源的策略附加到该密钥。有关更多信息，请参阅*AWS Secrets Manager 用户指南*中的向 [Secrets Manager 密钥附加权限策略](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_resource-policies.html)。

以下是您可以为其添加的策略声明示例 MediaTailor：

------
#### [ JSON ]

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "mediatailor.amazonaws.com" 
            },
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name" 
        } 
    ] 

}
```

------

## 步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置
<a name="channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth"></a>

您可以使用 AWS 管理控制台 或以编程方式配置 Secrets Manager 访问令牌身份验证。 MediaTailor APIs

**使用 Secrets Manager 访问令牌身份验证配置源位置**

按照《*AWS Elemental MediaTailor 用户指南*》[Access configuration](channel-assembly-creating-source-locations.md#access-configuration-console)中的步骤操作。

# 与使用 CDN 授权的 MediaPackage 端点集成
<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth"></a>

如果您使用 AWS Elemental MediaPackage 源位置来源，则 MediaTailor 可以与使用 CDN 授权的 MediaPackage 端点集成。

要与使用 CDN 授权的 MediaPackage 终端节点集成，请按以下步骤操作。<a name="channel-assembly-access-configuration-access-token-integrating-emp-cdn-auth-procedure"></a>

**要与集成 MediaPackage**

1. 如果您尚未完成《*AWS Elemental MediaPackage 用户指南*》中[设置 CDN 授权](https://docs.aws.amazon.com/mediapackage/latest/ug/cdn-auth-setup.html)中的步骤。

1. 完成[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)中的过程。

1. 修改您在设置 MediaPackage CDN 授权时创建的密钥。使用以下值修改密钥：
   + `KmsKeyId`使用您在中创建的客户托管密钥 ARN 更新。[步骤 1：创建 AWS KMS 对称的客户托管密钥](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-create-kms)
   + （可选）对于`SecretString`，您可以将 UUID 轮换为新值，也可以使用现有的加密密钥，前提是它是标准 JSON 格式的密钥和值对，例如`{"MediaPackageCDNIdentifier": "112233445566778899"}`。

1. 完成 [附加基于资源的密钥策略](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-secret-policy) 中的步骤。

1. 完成 [步骤 3：使用访问令牌身份验证配置 MediaTailor 源位置](channel-assembly-access-configuration-access-configuring.md#channel-assembly-access-configuration-access-token-how-to-enable-access-token-auth) 中的步骤。

# S MediaTailor ecrets Manager 访问令牌身份验证的工作原理
<a name="channel-assembly-access-configuration-overview"></a>

在创建或更新源位置以使用访问令牌身份验证后，在从您的来源请求源内容清单时，请将访问令牌 MediaTailor 包含在 HTTP 标头中。

以下是如何 MediaTailor 使用 Secrets Manager 访问令牌身份验证进行来源位置来源身份验证的概述：

1. 当您创建或更新使用访问令牌身份验证的 MediaTailor 源位置时， MediaTailor 会向 Secrets Manager 发送[DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html#SecretsManager-DescribeSecret-request-SecretId)请求以确定与该密 AWS KMS 钥关联的密钥。您在来源位置访问配置中包含机密 ARN。

1. MediaTailor 为客户管理的密钥创建[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)，以便该密钥 MediaTailor 可以使用该密钥访问和解密存储在中的访问令牌。 SecretString拨款名称将是`MediaTailor-SourceLocation-your AWS 账户 ID-source location name`。

   您可以随时撤销对授予的访问权限，也可以取消 MediaTailor对客户托管密钥的访问权限。有关更多信息，请参阅《AWS Key Management Service API Reference》**中的 [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)。

1. 创建、更新 VOD 源或在程序中使用 VOD 源时， MediaTailor会向源位置发出 HTTP 请求，以检索与源位置中的 VOD 源关联的源内容清单。如果 VOD 源与配置了访问令牌的来源位置相关联，则请求会将访问令牌作为 HTTP 标头值。

# 使用 VOD 来源
<a name="channel-assembly-working-vod-sources"></a>

VOD 来源代表您添加到来源位置的单个内容，例如视频或播客剧集。您可以将一个或多个 VOD 源添加到您的源位置，然后在创建频道后将每个 VOD 来源与节目关联。

每个 VOD 来源必须至少有一个*软件包配置*。包配置为您的 VOD 来源指定包格式、清单位置和来源组。创建频道时，您可以使用包配置的源组在频道上创建相应的输出。例如，如果你的源代码以两种不同的格式（HLS 和 Dash）打包，那么你需要创建两个包配置，一个用于 DASH，一个用于 HLS。然后，您将创建两个通道输出，每个通道输出对应一个包配置。每个频道的输出都提供了一个用于播放请求的端点。因此，使用前面的示例，该频道将为 HLS 播放请求提供端点，为 DASH 播放请求提供端点。

如果您想自动检测清单中广告标记的偏移量，则每个广告标记在所有套餐配置中必须以相同的偏移量显示，并且持续时间为零。对于 HLS， MediaTailor 将检测`DATERANGE`并` EXT-X-CUE-OUT`标记。对于 DASH，HLS 将检测每个标签中的第一个事件`EventStream`标签。

在以下示例中，由于`DATERANGE`标签的持续时间为 0.0，因此将在 12000 毫秒的偏移量处检测到广告中断机会。偏移量为 0ms 的第一个`DATERANGE`标签不会被检测到，因为它的持续时间为 10.0。

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=10.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=0.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

在以下示例中，将在 0 毫秒的偏移量时检测到广告中断机会，因为该`EXT-X-CUE-OUT`标签的持续时间为 0，紧随其后的是`EXT-X-CUE-IN`标签。第二个`EXT-X-CUE-OUT`/`EXT-X-CUE-IN`对不会被检测到，因为它的持续时间为 10。

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-CUE-OUT:10
...
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

在以下示例中，将在 0 毫秒的偏移量时检测到广告中断机会，因为中的第一个事件`EventStream`发生在 PT0 .000S 开始的时间段内。`EventStream`将无法检测到`Event`中的第二个。

```
<Period start="PT0.000S" id="9912561" duration="PT29.433S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event duration="0">
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
<Event duration="0"> 
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
</EventStream>
  ...
</Period>
```

# 将 VOD 源添加到您的来源位置
<a name="channel-assembly-add-vod-source"></a>

以下过程说明了如何使用 MediaTailor 控制台将 VOD 源添加到您的来源位置并设置软件包配置。有关如何使用 API 添加 VOD 源的信息，请参阅 MediaTailor AP *AWS Elemental MediaTailor I 参考[CreateVodSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateVodSource.html)*中的。

**重要**  
在添加 VOD 源之前，请确保它们满足以下要求：  
源变体必须具有相同的长度，具体取决于源清单的长度。
在包配置中，每个源必须具有相同数量的子流。
由于这些要求，我们不支持按标题或自动 ABR，因为这些编码方法可能会生成不同的清单长度和子流。  
我们建议您使用包含最小段长度的编码模板，以确保您的编码源满足这些要求。<a name="add-vod-sources-procedure"></a>

**将 VOD 源添加到您的来源位置**

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

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在**来源位置**窗格中，选择您在[创建源位置](channel-assembly-creating-source-locations.md#create-source-location-procedure)过程中创建的来源位置。

1. 选择**添加 VOD 来源**。

1. 在 **VOD 来源详细信息**下，输入您的 VOD 来源的名称：
   + **名称**：您的 VOD 来源的标识符，例如**my-example-video**。

1. 在 P **ackage 配置** > 下，*source-group-name*输入有关软件包配置的信息：
**注意**  
您的来源的软件包配置必须具有相同的持续时间，具体取决于来源的清单。而且，包配置中的所有源都必须具有相同数量的子流。为了满足这些要求，我们建议您为资产使用编码模板。我们建议您使用最小段长度为一秒的编码模板。 MediaTailor 不支持按标题或自动自适应比特率直播 (ABR)，因为这些编码方法违反了这些要求。
   + **源组**：输入描述此包配置的源组名称，例如 HLS-4K。记下这个名字；当你创建频道的输出时，你会引用这个名字。有关更多信息，请参阅 [将来源组与频道的输出配合使用](channel-assembly-source-groups.md)。
   + **类型**：为此配置选择打包格式。 MediaTailor 支持 HLS 和 DASH。
   + **相对路径**：从源位置的**基本 HTTP 网址**到清单的相对路径。例如，**/my/path/index.m** 3u8。
**注意**  
MediaTailor 自动导入父多变体播放列表中包含的所有隐藏式字幕和子流。您无需为每个源代码格式副本 (DASH) 或变体流 (HLS) 创建单独的包配置。

    有关软件包配置的更多信息，请参阅[使用软件包配置](channel-assembly-package-configurations.md)。

1. 选择**添加 VOD 来源**。

   如果要添加更多 VOD 源，请重复该过程中的步骤 4-7。

# 使用直播源
<a name="channel-assembly-working-live-sources"></a>

*直播源*代表您添加到来源位置的单个直播，例如直播足球比赛或新闻广播。创建频道后，您可以将一个或多个直播源添加到您的源位置，然后将每个直播源与一个节目相关联。

MediaTailor 支持以下类型的线性通道组装：
+ 包含内容 VOD-to-live的频道的 VOD 来源
+ 包含与 VOD-to-live内容混合的 live-to-live内容的频道的直播源

 VOD-to-live内容的一个例子是将VOD素材库汇编成直播的频道。内容与 live-to-live VOD-to-live内容混合的一个例子是，除了夜间新闻活动或预先安排的体育赛事直播外，该频道主要播放VOD内容。内容与 live-to-live VOD-to-live内容混合的另一个例子是全 live-to-live频道，其来源因一天中的时间而异。

您可以使用直播资源来建立区域频道，该频道主要播放全国节目，但也包括区域节目重播，并混入 VOD 内容。为此，您需要为全国性内容运行一 encoder/packager 对编码器，然后在这些区域上线时运行区域编码器。然后，您可以创建区域频道组装频道，每个频道都有自己的时间表。这样，观众就可以根据需要来回切换。此设置可帮助您最大限度地 encoding/packaging 降低成本。

每个直播源必须至少有一个软件包配置。*软件包配置*为您的直播源指定包格式、清单位置和来源组。创建频道时，您可以使用包配置的源组在频道上创建相应的输出。例如，如果你的源代码以两种不同的格式（HLS 和 Dash）打包，那么你需要创建两个包配置，一个用于 DASH，一个用于 HLS。然后，您将创建两个通道输出，每个通道输出对应一个包配置。每个频道的输出都提供了一个用于播放请求的端点。在此示例中，该频道为 HLS 播放请求提供端点，为 DASH 播放请求提供终端节点。

## 使用直播源的一般要求
<a name="channel-assembly-live-sources-requirements"></a>

使用直播源时，您的内容必须符合以下一般要求：
+ HLS 直播来源-您必须为清单窗口中的第一个片段以及每个不连续部分提供`#EXT-X-PROGRAM-DATE-TIME`标签。
+ HLS-您必须将广告标记配置为。`DATERANGE`
+ 来源清单窗口-我们建议使用持续时间至少与 Channel Assembly MediaTailor 频道上的清单窗口一样长的清单窗口。作为最佳实践，可以考虑使用比 Channel Assembly 频道上的清单窗口时长 30 秒或更长的清单时长。
+ 使目标持续时间与现有源的持续时间相匹配。
+ 使子播放列表的数量与现有来源的数量相匹配。

## 配置
<a name="channel-assembly-live-sources-elemental-configuration"></a>

如果您在直播源工作流程中使用其他 AWS Elemental 媒体服务，我们建议您在设置 MediaPackage配置时遵循最佳实践。下表描述了如何根据您使用的直播标准配置 MediaPackage 设置。


**MediaPackage 直播源设置**  

|  标准  |  设置  |  值  |  必要性  |  注意  | 
| --- | --- | --- | --- | --- | 
|  HLS  |  端点类型  |  `Apple HLS`  |  除非使用 CMAF，否则为必填项  |  匹配 HLS 职位 `ts` AWS Elemental MediaConvert   | 
|  HLS  |  端点类型  |  `CMAF`  |  除非使用苹果 HLS，否则为必填项  |  匹配 HLS 职位 `mp4` AWS Elemental MediaConvert   | 
|  HLS  |  `ProgramDateTimeIntervalSeconds`  |  `1`  |  必需  |  必须`#EXT-X-PROGRAM-DATE-TIME`对每个片段进行指定，以防止出现不连续播放时出现播放问题。  | 
|  HLS  |  `PlaylistWindowSeconds`  |  比频道集合清单窗口长 30 秒  |  必需  |    | 
|  HLS  |  `AdMarkers`  |  `DATERANGE`  |  通过广告标记时为必填项  |    | 
|  HLS  |  `IncludeIframeOnlyStream`  |  已禁用  |  推荐  |    | 
|  DASH  |  `ManifestLayout`  |  `FULL`  |  推荐  |    | 
|  DASH  |  `SegmentTemplateFormat`  |  `NUMBER_WITH_TIMELINE` 或 `TIME_WITH_TIMELINE`  |  推荐  |  不支持 `NUMBER_WITH_DURATION`。  | 
|  DASH  |  `ManifestWindowSeconds`  |  比频道集合清单窗口长 30 秒  |  必需  |    | 
|  DASH  |  `PeriodTriggers`  |  `ADS`  |  通过广告标记时为必填项  |    | 

# 将直播源添加到您的来源位置
<a name="channel-assembly-add-live-sources"></a>

以下过程说明了如何使用 MediaTailor 控制台将直播源添加到您的源位置并设置软件包配置。有关如何使用 MediaTailor API 添加直播源的信息，请参阅 *AWS Elemental MediaTailor API 参考[CreateLiveSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreateLiveSource.html)*中的。

**重要**  
在添加直播源之前，请确保在包配置中，每个源都有相同数量的子流。<a name="add-live-sources-procedure"></a>

**将直播源添加到您的源位置**

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

1. 在导航窗格中，选择**渠道集**合 > **来源位置**。

1. 在**来源位置**窗格中，选择您在[创建源位置](channel-assembly-creating-source-locations.md#create-source-location-procedure)过程中创建的来源位置。

1. 在 “**直播源**” 选项卡上，选择 “**添加直播源**”。

1. 在**直播源详细信息**下，输入直播源的名称：
   + **名称**：直播源的标识符，例如**my-example-video**。

1. 在 P **ackage 配置** > 下，*source-group-name*输入有关软件包配置的信息：
**注意**  
在套餐配置中，所有 VOD 源和直播源必须具有相同数量的子流。我们建议您以相同的方式配置源流。
   + **源组**：输入描述此包配置的源组名称，例如 HLS-4K。记下这个名字；当你创建频道的输出时，你会引用这个名字。有关更多信息，请参阅 [将来源组与频道的输出配合使用](channel-assembly-source-groups.md)。
   + **类型**：为此配置选择打包格式。 MediaTailor 支持 HLS 和 DASH。
   + **相对路径**：从源位置的**基本 HTTP 网址**到清单的相对路径。例如，**/my/path/index.m** 3u8。
**注意**  
MediaTailor 自动导入父多变体播放列表中包含的所有隐藏式字幕和子流。您无需为每个源代码格式副本 (DASH) 或变体流 (HLS) 创建单独的包配置。

    有关软件包配置的更多信息，请参阅[使用软件包配置](channel-assembly-package-configurations.md)。

1. 选择 “**添加直播源**”。

   如果要添加更多直播源，请重复该过程中的步骤 4-6。

# 使用软件包配置
<a name="channel-assembly-package-configurations"></a>

包配置是源代码的表示形式，它包含在不同设备上播放所需的各种封装特性。例如，您的源可能有三种打包格式：带有 DRM 的 HLS、带区段时间轴寻址的 DASH 和带有 CMAF 片段的 HLS。

 频道集合不会重新打包你的来源。如果要为给定来源包含多种打包格式，则必须使每种打包格式在源位置可用，并指定每种打包格式的路径。

 每个软件包配置对象必须包括以下内容：
+ **相对路径**-源文件打包格式相对于源位置的完整路径。例如，**/my/path/index.m** 3u8。
+ **来源组**-用于将包配置与频道输出关联的源组的名称。
+ **类型**-HLS 或 DASH。

 创建频道后，还必须声明要用于频道输出的每个源组。

# 清单缓存
<a name="channel-assembly-manifest-caching"></a>

MediaTailor 定期并有机会地缓存源播放列表，以提高频道组合的性能和可靠性。有时，与源位置的原始版本相比，缓存的版本会过时。 MediaTailor 要强制刷新源代码的缓存版本，请调用[UpdateVodSource](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_UpdateVodSource.html)。例如，当源代码中的嵌入路径发生变化时，使用此调用。即使你看到的请求很少，也要确保在你的来源位置上始终保留一个可用的源 up-to-date版本 MediaTailor。