View a markdown version of this page

利用 CloudFront 功能优化 MediaTailor 性能 - AWS Elemental MediaTailor

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

利用 CloudFront 功能优化 MediaTailor 性能

AWS Elemental MediaTailor 除了基本配置之外, CloudFront 还可以通过其他功能来增强 Amazon 的性能。使用设置基本 CloudFront 配置后 MediaTailor,您可以实现其他功能以增强性能、可靠性和自定义选项。这些优化有助于提供更好的观看体验。它们还可以降低成本和原产地负荷。

有关使用动态路由和参数处理进行性能优化的信息,请参见MediaTailor ADS 请求的动态广告变量。有关查询参数优化策略,请参阅MediaTailor 清单查询参数。

使用 Origin Shield 减少原点负荷

Origin Shield 在 CloudFront 边缘站点和您的源服务器之间添加了一个缓存层。此功能对于直播和热门的 VOD 内容非常有用。当许多观众同时请求相同的内容时,这会有所帮助。

通过整合来自多个边缘站点的请求,Origin Shield 可以减少内容来源的负担 MediaTailor 。

为你的起源启用 Orig MediaTailor in Shield
  1. 打开 CloudFront 控制台并导航到您的发行版。

  2. 选择指向您的 MediaTailor 播放配置的原点。

  3. 在 Origin Shield 下,选择 “是”。

  4. 从下拉菜单中,选择离您的 MediaTailor终端节点最近的 AWS 区域。

  5. 保存更改。

对于高流量事件,Origin Shield 可显著减少源站的请求负载并提高可靠性。有关详细说明,请参阅 CloudFront 开发者指南中的启用 Origin Shield。

使用函数自定义内容交 CloudFront 付

CloudFront 函数允许您在边缘运行轻量级 JavaScript 代码来修改查看者的请求和响应。您可以使用这些函数进行简单的自定义,例如网址修改、标头操作或基本身份验证。对于 MediaTailor 工作流程,Functions 可以帮助完成不需要复杂处理的任务。

CloudFront 函数提供了一种在边缘自定义内容交付的轻量级方法。以下是如何为您的 MediaTailor 集成实现它们:

要实现以下各项的 CloudFront 函数 MediaTailor
  1. 在 CloudFront 控制台中,导航到函数。

  2. 创建一个新函数并选择适当的用途:

    • 网址操纵-在多变播放列表、媒体播放列表和 MPD 请求到达 URLs 之前对其进行修改 MediaTailor

    • 标头操作-添加或修改请求标头

    • 简单身份验证-用于验证令牌或查询参数

  3. 编写你的 JavaScript 函数代码。

  4. 使用示例 MediaTailor 请求测试您的函数。

  5. 发布该函数并将其与分配的缓存行为相关联。

例 URL 标准化示例 CloudFront 函数
function handler(event) { var request = event.request; var uri = request.uri; // Normalize URLs to lowercase to improve cache hit ratio if (uri.includes('.m3u8') || uri.includes('.mpd')) { request.uri = uri.toLowerCase(); } return request; }

有关更多信息和代码示例,请参阅 CloudFront 开发者指南中的使用 CloudFront 函数在边缘进行自定义。

使用 Lambda 实现高级自定义 @Edge

当您需要比 CloudFront 函数所能提供的更复杂的处理能力时,可以使用 Lambda @Edge。此服务允许您在 CloudFront 边缘位置运行 Node.js 或 Python 函数。

Lambda @Edge 函数可以执行复杂的操作,例如复杂的身份验证、更大的响应修改或第三方 API 集成。

要进行更复杂的自定义,请将 Lambda @Edge 函数与 MediaTailor 你的 CloudFront和集成一起使用:

要使用 Lambda @Edge 来实现 MediaTailor
  1. 在美国东部(弗吉尼亚州北部)区域创建 Lambda 函数。

  2. 为以下用例之一编写函数代码:

    • 网址操纵-在多变播放列表、媒体播放列表和 MPD 请求到达 URLs 之前对其进行修改 MediaTailor

    • A/B 测试-将用户路由到不同的广告决策服务器

    • 请求身份验证-添加身份验证标头

    • 修改响应标头-添加 CORS 标头

  3. 发布您的函数版本并创建函数别名。

  4. 在适当的触发点(查看者请求或查看者响应)将函数与您的 CloudFront 分布相关联。

注意

使用 Lambda @Edge 时 MediaTailor,如果您计划使用媒体质量感知弹性 (MQAR) 功能,请避免使用面向源的触发器(源请求和源站响应),因为这些功能目前不兼容。

有关更多信息和代码示例,请参阅 CloudFront 开发者指南中的使用 Lambda @Edge 在边缘进行自定义。

其他性能优化技巧

考虑以下额外优化以进一步提高性能:

优化缓存命中率

在 CloudFront 指标中监控你的缓存命中率,并寻找改善它的机会:

  • 标准化 URL 模式以提高缓存密钥的一致性

  • 使用查询字符串白名单在缓存密钥中仅包含必需的参数

  • 考虑使用 CloudFront 函数实现 URL 标准化

减少延迟

实施以下技术以最大限度地减少延迟:

  • 为基于文本的响应启用 Brotli 压缩

  • 使用 HTTP/2 或 HTTP/3 来提高连接效率

  • 考虑启用对现代网络的 IPv6 支持

成本优化

在性能与成本效益之间取得平衡:

  • 使用 Origin Shield 减少冗余的源站请求

  • 考虑根据受众地理位置选择价格等级

  • 对区段实施主动缓存以减少源站流量

后续步骤

使用 CloudFront 功能优化性能后,请考虑以下步骤: