本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
利用 CloudFront功能优化 MediaTailor 性能
AWS Elemental MediaTailor 除了基本配置之外, CloudFront 还可以通过其他功能来增强 Amazon 的性能。使用设置基本 CloudFront 配置后 MediaTailor,您可以实现其他功能以增强性能、可靠性和自定义选项。这些优化有助于提供更好的观看体验。它们还可以降低成本和原产地负荷。
使用 Origin Shield 减少原点负荷
Origin Shield 在 CloudFront 边缘站点和您的源服务器之间添加了一个缓存层。此功能对于直播和热门的 VOD 内容非常有用。当许多观众同时请求相同的内容时,这会有所帮助。
通过整合来自多个边缘站点的请求,Origin Shield 可以减少内容来源的负担 MediaTailor 。
为你的起源启用 Orig MediaTailor in Shield
-
打开 CloudFront 控制台并导航到您的发行版。
-
选择指向您的 MediaTailor 播放配置的原点。
-
在 Origin Shield 下,选择是。
-
从下拉菜单中,选择离您的 MediaTailor终端节点最近的 AWS 区域。
-
保存您的更改。
对于高流量事件,Origin Shield 可显著减少源站的请求负载并提高可靠性。有关详细说明,请参阅 CloudFront 开发者指南中的启用 Origin Shield。
使用函数自定义内容交 CloudFront 付
CloudFront 函数允许您在边缘运行轻量级 JavaScript 代码来修改查看者的请求和响应。您可以使用这些函数进行简单的自定义,例如网址修改、标头操作或基本身份验证。对于 MediaTailor 工作流程,Functions 可以帮助完成不需要复杂处理的任务。
CloudFront 函数提供了一种在边缘自定义内容交付的轻量级方法。以下是如何为您的 MediaTailor 集成实现它们:
要实现的 CloudFront 函数 MediaTailor
-
在 CloudFront 控制台中,导航到函数。
-
创建一个新函数并选择适当的用途:
-
网址操纵-在多变播放列表、媒体播放列表和 MPD 请求到达 URLs 之前对其进行修改 MediaTailor
-
标头操作-添加或修改请求标头
-
简单身份验证-用于验证令牌或查询参数
-
-
编写你的 JavaScript 函数代码。
-
使用示例 MediaTailor 请求测试您的函数。
-
发布该函数并将其与分配的缓存行为相关联。
例 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
-
在美国东部(弗吉尼亚州北部)区域创建 Lambda 函数。
-
为以下用例之一编写函数代码:
-
网址操纵-在多变播放列表、媒体播放列表和 MPD 请求到达 URLs 之前对其进行修改 MediaTailor
-
A/B 测试-将用户路由到不同的广告决策服务器
-
请求身份验证-添加身份验证标头
-
修改响应标头-添加 CORS 标头
-
-
发布您的函数版本并创建函数别名。
-
在适当的触发点(查看者请求或查看者响应)将函数与您的 CloudFront 分布相关联。
注意
使用 Lambda @Edge 时 MediaTailor,如果您计划使用媒体质量感知弹性 (MQAR) 功能,请避免使用面向源的触发器(源请求和源站响应),因为这些功能目前不兼容。
有关更多信息和代码示例,请参阅 CloudFront 开发者指南中的使用 Lambda @Edge 在边缘进行自定义。
其他性能优化技巧
考虑以下额外优化以进一步提高性能:
- 优化缓存命中率
-
在 CloudFront 指标中监控你的缓存命中率,并寻找改善它的机会:
-
标准化 URL 模式以提高缓存密钥的一致性
-
使用查询字符串白名单在缓存密钥中仅包含必需的参数
-
考虑使用 CloudFront 函数实现 URL 标准化
-
- 减少延迟
-
实施以下技术以最大限度地减少延迟:
-
为基于文本的响应启用 Brotli 压缩
-
使用 HTTP/2 或 HTTP/3 来提高连接效率
-
考虑启用对现代网络的 IPv6 支持
-
- 成本优化
-
在性能与成本效益之间取得平衡:
-
使用 Origin Shield 减少冗余的源站请求
-
考虑根据受众地理位置选择价格等级
-
对区段实施主动缓存以减少源站流量
-
后续步骤
使用 CloudFront 功能优化性能后,请考虑以下步骤:
-
使用 MQAR 实现多区域弹性(参见) MediaTailor 使用 MQAR 实现多区域弹性
-
设置监控和故障排除(请参阅监控您的和 MediaTailor 集成, CloudFront 并对其进行故障排除)