

# CloudFront 使用方法
<a name="IntroductionUseCases"></a>

通过使用 CloudFront，可帮助您实现各种目标。此部分列出了其中的几个以及指向更多信息的链接，以便让您了解这些可能性。

**Topics**
+ [

## 加快静态网站内容分发速度
](#IntroductionUseCasesStaticWebsite)
+ [

## 提供点播视频或实时流视频
](#IntroductionUseCasesStreaming)
+ [

## 在整个系统处理过程中加密特定字段
](#IntroductionUseCasesFieldLevelEncryption)
+ [

## 在边缘进行自定义
](#IntroductionUseCasesProgrammableCDN)
+ [

## 使用 Lambda@Edge 自定义提供私有内容
](#IntroductionUseCasesPrivateContentAtTheEdge)

## 加快静态网站内容分发速度
<a name="IntroductionUseCasesStaticWebsite"></a>

CloudFront 可以加快将静态内容（例如，图像、样式表、JavaScript 等）分发给全球范围内的查看器的速度。通过使用 CloudFront，您可以充分利用 AWS 主干网络和 CloudFront 边缘服务器以在查看器访问您的网站时为其提供快速、安全、可靠的体验。

存储和交付静态内容的简单方式是使用 Amazon S3 存储桶。将 S3 与 CloudFront 结合使用有许多好处，包括可以选择使用[源访问控制](private-content-restricting-access-to-s3.md)来轻松限制对您的 Amazon S3 内容的访问。

有关将 Amazon S3 与 CloudFront 结合使用的更多信息（包括帮助您快速入门的 CloudFormation 模板），请参阅[安全静态网站入门](getting-started-secure-static-website-cloudformation-template.md)。

## 提供点播视频或实时流视频
<a name="IntroductionUseCasesStreaming"></a>

CloudFront 提供了多个选项来将媒体流式传输到全球查看器 – 预先录制的文件和实时内容。
+ 对于点播视频 (VOD) 流，您可以使用 CloudFront 以常见格式（如 MPEG DASH、Apple HLS、Microsoft Smooth Streaming 和 CMAF）将内容流式传输到任何设备。
+ 对于广播实时流，您可以在边缘站点缓存媒体片段，以便将按正确顺序传输片段的清单文件的多个请求组合起来，从而减小源服务器的负载。

有关如何使用 CloudFront 传输流内容的更多信息，请参阅[使用 CloudFront 的点播视频和实时流视频](on-demand-streaming-video.md)。

## 在整个系统处理过程中加密特定字段
<a name="IntroductionUseCasesFieldLevelEncryption"></a>

在对 CloudFront 配置 HTTPS 时，您已获得与源服务器的安全的端到端连接。在添加字段级加密时，您可以在整个系统处理过程中保护特定的数据并实施 HTTPS 安全，以便只有源中的某些应用程序可以查看数据。

要设置字段级加密，您可以将公有密钥添加到 CloudFront，然后指定要使用该密钥加密的字段集。有关更多信息，请参阅 [使用字段级加密帮助保护敏感数据](field-level-encryption.md)。

## 在边缘进行自定义
<a name="IntroductionUseCasesProgrammableCDN"></a>

通过在边缘站点上运行无服务器代码，开启了为查看器自定义内容和体验的很多可能性，并减少了延迟。例如，您可以在源服务器停机进行维护时返回自定义错误消息，查看器不会获得一般 HTTP 错误消息。或者，您可以在 CloudFront 将请求转发到您的源之前，使用函数来帮助向用户授权并控制对您的内容的访问。

将 Lambda@Edge 与 CloudFront 配合使用，可以通过多种方式自定义 CloudFront 提供的内容。要详细了解 Lambda@Edge 以及如何使用 CloudFront 创建和部署函数，请参阅[使用 Lambda@Edge 在边缘进行自定义](lambda-at-the-edge.md)。要查看可为您自己的解决方案自定义的大量代码示例，请参阅 [Lambda@Edge 函数示例](lambda-examples.md)。

## 使用 Lambda@Edge 自定义提供私有内容
<a name="IntroductionUseCasesPrivateContentAtTheEdge"></a>

除了使用已签名的 URL 或已签名的 Cookie 之外，还可使用 Lambda@Edge 帮助您配置 CloudFront 分配以提供来自您自己的自定义源的私有内容。

要使用 CloudFront 提供私有内容，请执行以下操作：
+ 要求用户（查看器）使用[已签名的 URL 或已签名的 Cookie](PrivateContent.md) 来访问内容。
+ 限制对源的访问，以便只能从 CloudFront 的面向源的服务器上进行访问。为此，可以执行以下操作之一：
  + 对于 Amazon S3 源，您可以[使用源访问控制（OAC）](private-content-restricting-access-to-s3.md)。
  + 对于自定义源，您可以执行以下操作：
    + 如果自定义源受 Amazon VPC 安全组或 AWS Firewall Manager 保护，您可以[使用 CloudFront 托管式前缀列表](LocationsOfEdgeServers.md#managed-prefix-list)，以便仅允许从 CloudFront 面向源的 IP 地址传入到源的流量。
    + 使用自定义 HTTP 标头将访问限制为仅来自 CloudFront 的请求。有关更多信息，请参阅[在自定义源上限制对文件的访问](private-content-overview.md#forward-custom-headers-restrict-access)和[向源请求添加自定义标头](add-origin-custom-headers.md)。有关使用自定义标头限制对应用程序负载均衡器源的访问的示例，请参阅[限制访问应用程序负载均衡器](restrict-access-to-load-balancer.md)。
    + 如果自定义源需要自定义访问控制逻辑，则可以使用 Lambda@Edge 来实现该逻辑，如以下博文中所述：[使用 Amazon CloudFront 和 Lambda@Edge 提供私有内容](https://aws.amazon.com/blogs/networking-and-content-delivery/serving-private-content-using-amazon-cloudfront-aws-lambdaedge/)。