

# 什么是 Amazon CloudFront？
<a name="Introduction"></a>

Amazon CloudFront 是一项加快将静态和动态 Web 内容（例如 .html、.css、.js 和图像文件）分发给用户的速度的 Web 服务。CloudFront 通过全球数据中心（称作边缘站点）网络传输内容。当用户请求您用 CloudFront 提供的内容时，请求被路由到提供最低延迟（时间延迟）的边缘站点，从而以尽可能最佳的性能传送内容。
+ 如果该内容已经在延迟最短的边缘站点上，CloudFront 将直接提供它。
+ 如果内容不在边缘站点中，CloudFront 将从已定义的源（例如，已确定为内容最终版本的来源的 Amazon S3 存储桶、MediaPackage 通道或 HTTP 服务器，如 Web 服务器）检索内容。

例如，假设您要从传统的 Web 服务器中提供图像，而不是从 CloudFront 中提供图像。例如，您可能会使用 URL `https://example.com/sunsetphoto.png` 提供图像 sunsetphoto.png。

您的用户可以轻松导航到该 URL 并查看图像。但他们可能不知道其请求从一个网络路由到另一个网络（通过构成互联网的相互连接的复杂网络集合），直到找到图像。

CloudFront 通过 AWS 主干网络将每个用户请求传送到能以最佳方式提供您的内容的边缘站点，以此来加速分发您的内容。通常，这是向查看器提供传输最快的 CloudFront 边缘服务器。使用 AWS 网络可大大降低用户的请求必须经由的网络数量，从而提高性能。用户将会体验到延迟（加载文件的第一个字节所花费的时间）更短、数据传输速率更高。

您还会获得更高的可靠性和可用性，因为您的文件（也称为*对象*）的副本现在存储（或缓存）在全球各地的多个边缘站点上。

**Topics**
+ [如何设置 CloudFront 以提供内容](#HowCloudFrontWorksOverview)
+ [在标准分配或多租户分配之间进行选择](#choose-standard-or-multi-tenant)
+ [定价](#pricing)
+ [CloudFront 使用方法](IntroductionUseCases.md)
+ [CloudFront 如何交付内容](HowCloudFrontWorks.md)
+ [CloudFront 边缘服务器的位置和 IP 地址范围](LocationsOfEdgeServers.md)
+ [将 CloudFront 与 AWS SDK 配合使用](sdk-general-information-section.md)
+ [CloudFront 技术资源](#resources-cloudfront)

## 如何设置 CloudFront 以提供内容
<a name="HowCloudFrontWorksOverview"></a>

您创建 CloudFront 分配，以告知 CloudFront 您希望内容从何处传输，并告知有关如何跟踪和管理内容传输的详细信息。然后，当有人想查看或使用内容时，CloudFront 使用靠近您的查看器的计算机（边缘服务器）快速传输内容。

![\[CloudFront 的工作原理\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/images/how-you-configure-cf.png)
<a name="HowCloudFrontWorksConfiguration"></a>

**如何配置 CloudFront 以提供您的内容**

1. 您指定*源服务器*（如 Amazon S3 存储桶或您自己的 HTTP 服务器），CloudFront 将从该服务器获取您的文件，这些文件随后将从全世界的 CloudFront 边缘站点分配。

   源服务器将存储您的对象的原始最终版本。如果您通过 HTTP 提供内容，您的源服务器将为 Amazon S3 存储桶或 HTTP 服务器，例如，Web 服务器。您的 HTTP 服务器可以在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上运行，也可以在您管理的服务器上运行；这些服务器也称为*自定义源*。

1. 您将您的文件上传至您的源服务器。您的文件也称为*对象*，通常包括网页、图像和媒体文件，但可以是可通过 HTTP 提供的任何内容。

   如果您将 Amazon S3 存储桶用作源服务器，则可以将存储桶中的对象设为公开可读，这样知道这些对象的 CloudFront URL 的任何人都可以访问它们。您还可以选择将对象设为私有，并控制哪些人可以访问它们。请参阅 [使用签名 URL 和签名 Cookie 提供私有内容](PrivateContent.md)。

1. 创建一项 CloudFront *分配*，此项分配将在用户通过您的网站或应用程序请求文件时告诉 CloudFront 从哪些源服务器获取您的文件。同时，您还需指定一些详细信息，如您是否希望 CloudFront 记录所有请求以及您是否希望此项分配创建后便立即启用。

1. CloudFront 为新分配指定一个域名，您可以在 CloudFront 控制台中查看该域名，该域名也可能被返回以响应编程请求（例如 API 请求）。如果您愿意，您可以添加要改用的备用域名。

1. CloudFront 将您的分配的配置（而不是您的内容）发送到其所有*边缘站点*或*节点* (POP) – 它们是位于地理位置分散的数据中心（CloudFront 在其中缓存您的文件的副本）内的服务器的集合。

您在开发网站或应用程序时，需使用 CloudFront 为您的 URL 提供的域名。例如，如果 CloudFront 返回 `d111111abcdef8.cloudfront.net` 作为您的分配的域名，则 Amazon S3 存储桶中（或 HTTP 服务器上的根目录中）的 logo.jpg 的 URL 将为 `https://d111111abcdef8.cloudfront.net/logo.jpg`。

或者，您可以设置 CloudFront 对您的分配使用您自己的域名。在这种情况下，URL 可能是 `https://www.example.com/logo.jpg`。

（可选）您可配置您的源服务器以向文件添加标头，表示您希望文件在 CloudFront 边缘站点的缓存中保留的时长。默认情况下，每个文件在边缘站点中保留 24 个小时后即会过期。最小过期时间为 0 秒；没有最大过期时间。有关更多信息，请参阅 [管理内容保留在缓存中的时间长度（过期）](Expiration.md)。

## 在标准分配或多租户分配之间进行选择
<a name="choose-standard-or-multi-tenant"></a>

CloudFront 为单个网站或应用程序以及多租户场景提供分配选项。

**标准分配**  
专为每个网站或应用程序的独特配置而设计。在以下使用案例中选择此选项：  
+ 您需要独立的 CloudFront 分配
+ 每个网站或应用程序都需要自己的自定义设置
大多数人会从标准分配开始。

**多租户分配和分配租户（CloudFront SaaS Manager）**  
专为 SaaS 提供商和多租户场景而设计。在以下使用案例中选择此选项：  
+ 您要构建 SaaS 平台来为多个客户网站或应用程序提供服务
+ 您需要高效地管理多个类似的分配
+ 您想集中控制共享配置
有关更多信息，请参阅 [了解多租户分配的工作原理](distribution-config-options.md)。

## 定价
<a name="pricing"></a>

CloudFront 对从其边缘站点传出的数据以及 HTTP 或 HTTPS 请求收费。定价因使用类型、地理区域和功能选择而异。

使用 Amazon Simple Storage Service（Amazon S3）、Elastic Load Balancing 或 Amazon API Gateway 等 AWS 源时，从您的源到 CloudFront 的数据传输始终是免费的。使用 AWS 源，您只需为从 CloudFront 向查看器传输的出站数据付费。

有关更多信息，请参阅 [CloudFront 定价](https://aws.amazon.com/cloudfront/pricing/)以及 Billing and Savings Bundle [常见问题解答](https://aws.amazon.com/cloudfront/faqs/)。

# 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/)。

# CloudFront 如何交付内容
<a name="HowCloudFrontWorks"></a>

经过一些初步的设置，CloudFront 与您的网站或应用程序协作并加快内容交付速度。此部分说明 CloudFront 如何在查看器请求您的内容时提供该内容。

**Topics**
+ [CloudFront 如何向用户提供内容](#HowCloudFrontWorksContentDelivery)
+ [CloudFront 如何使用区域边缘缓存](#CloudFrontRegionaledgecaches)

## CloudFront 如何向用户提供内容
<a name="HowCloudFrontWorksContentDelivery"></a>

配置 CloudFront 以传输您的内容后，用户请求您的对象时将发生以下操作：

1. 用户访问您的网站或应用程序，并发送对于某个对象的请求，例如图像文件和 HTML 文件。

1. DNS 将该请求传送到能以最佳方式满足该请求的 CloudFront POP（边缘站点），通常是以延迟来衡量最近的 CloudFront POP 边缘站点。

1. CloudFront 检查其缓存中是否有所请求的对象。如果对象在缓存中，CloudFront 会将它返回给用户。如果对象*不* 在缓存中，CloudFront 将执行以下操作：

   1. CloudFront 将该请求和分配中的说明进行比较，然后针对相应的对象将此请求转发到源服务器，例如，转发到 Amazon S3 存储桶或 HTTP 服务器。

   1. 源服务器将此对象发回给边缘站点。

   1. 源中的第一个字节到达后，CloudFront 就开始将此对象转发到用户。CloudFront 还将此对象添加到缓存中，方便下次有人请求该对象。

![\[通过 CloudFront 从用户到源的请求和响应\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/images/how-cloudfront-delivers-content.png)


## CloudFront 如何使用区域边缘缓存
<a name="CloudFrontRegionaledgecaches"></a>

CloudFront 节点（也称为 *POP* 或*边缘站点*）可确保将受欢迎的内容快速提供给查看器。CloudFront 还具有*区域边缘缓存*，该缓存可让您的更多内容更靠近查看器（即使该内容的受欢迎程度不足以使其位于 POP 上）以帮助改善该内容的表现。

区域边缘缓存可为所有类型的内容提供帮助，特别是随着时间的推移变得不太常用的内容。这样的示例包括用户生成的内容，例如视频、照片或插图；电子商务资产，例如产品照片和视频；以及新闻和事件相关的内容 (可能突然受到大众欢迎)。

**区域缓存的工作方式**  
区域边缘缓存是全球范围内部署的 CloudFront 位置，靠近查看器。它们位于源服务器和 POP（即全球边缘站点）之间，全球边缘站点直接为查看器提供内容。当对象的受欢迎程度降低时，各个 POP 可能会删除这些对象以便为更受欢迎的内容腾出空间。区域边缘缓存具有比各 POP 更大的缓存，因此对象将在最近的区域边缘缓存位置的缓存中保留更长时间。这有助于让更多内容更为靠近读者，减少 CloudFront 返回源服务器的需要，提升读者阅读体验。

当查看器在您的网站上或通过您的应用程序发出请求时，DNS 将请求传送到能以最佳方式满足用户请求的 POP。就延迟而言，此位置通常是最近的 CloudFront 边缘站点。在 POP 中，CloudFront 检查其缓存中是否存在所请求的对象。如果对象在缓存中，CloudFront 会将它返回给用户。如果对象不在缓存中，POP 通常将转到最近的区域边缘缓存以提取此对象。有关 POP 何时跳过区域边缘缓存并直接转到源的更多信息，请参阅以下注释。

在区域边缘缓存位置中，CloudFront 将再次检查其缓存中是否有请求的对象。如果对象位于缓存中，则 CloudFront 将其转发到请求它的 POP。区域边缘缓存位置的第一个字节到达后，CloudFront 就开始将对象转发到用户。CloudFront 还将此对象添加到 POP 中的缓存中，方便下次有人请求该对象。

对于未在 POP 和区域边缘缓存位置缓存的对象，CloudFront 将请求与分配中的说明进行比较，并将请求转发到源服务器。在源服务器将对象发送回区域边缘缓存位置后，此对象会转发到 POP，并且 CloudFront 将它转发到用户。在这种情况下，CloudFront 还会将此对象添加到区域边缘缓存位置中的缓存以及 POP，方便查看器下次请求此对象。这将确保区域中的所有 POP 都共享本地缓存，从而消除了针对源服务器的多个请求。CloudFront 还将保留与源服务器的持久性连接，以便尽快从源中提取对象。

**注意**  
区域边缘缓存具有与 POP 同等的功能。例如，缓存失效请求将在对象过期之前，同时从 POP 缓存和区域边缘缓存中删除对象。查看器下次请求对象时，CloudFront 将返回源以获取对象的最新版本。
代理 HTTP 方法（`PUT`、`POST`、`PATCH`、`OPTIONS` 和 `DELETE`）直接从 POP 流入源，并且不会通过代理流过区域边缘缓存。
在请求时确定的动态请求不会流经区域边缘缓存，而是直接到达源。
当源是 Amazon S3 存储桶且请求的最佳区域边缘缓存与 S3 存储桶位于同一 AWS 区域时，POP 会跳过区域边缘缓存，直接进入 S3 存储桶。

下图说明了请求和响应如何流经 CloudFront 边缘站点和区域边缘缓存。

![\[此图显示通过边缘站点和区域边缘缓存的，从查看器到源的请求/响应路径。\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/images/regional-edge-caches.png)


# CloudFront 边缘服务器的位置和 IP 地址范围
<a name="LocationsOfEdgeServers"></a>

有关 CloudFront 边缘服务器位置的列表，请参阅 [Amazon CloudFront 全球边缘网络](https://aws.amazon.com/cloudfront/features/#Global_Edge_Network)页面。

Amazon Web Services (AWS) 以 JSON 格式发布其当前的 IP 地址范围。要查看当前范围，请下载 [ip-ranges.json](https://ip-ranges.amazonaws.com/ip-ranges.json)。有关更多信息，请参阅 *Amazon Web Services 一般参考* 中的 [AWS IP 地址范围](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)。

要查找与 CloudFront 边缘服务器关联的 IP 地址范围，请在 ip-ranges.json 中搜索以下字符串：

```
"region": "GLOBAL",
"service": "CLOUDFRONT"
```

或者，您可以在 [https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips](https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips) 仅查看 CloudFront IP 范围。

## 使用 CloudFront 托管前缀列表
<a name="managed-prefix-list"></a>

CloudFront 托管式前缀列表包含所有 CloudFront 全球分布的面向源的服务器的 IP 地址范围。如果源托管在 AWS 上且受 Amazon VPC [安全组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)保护，则您可以使用 CloudFront 托管式前缀列表仅允许从 CloudFront 面向源的服务器传入到源的流量，从而阻止任何非 CloudFront 流量达到您的源。CloudFront 使用所有 CloudFront 全球面向源的服务器的 IP 地址来维护托管式前缀列表，使其始终保持最新状态。使用 CloudFront 托管式前缀列表，您无需自己读取或维护 IP 地址范围列表。

例如，假设您的源是位于欧洲地区（伦敦）区域（`eu-west-2`）的 Amazon EC2 实例。如果实例位于 VPC 中，则可以创建安全组规则，允许从 CloudFront 托管前缀列表的入站 HTTPS 访问。这使所有 CloudFront 全球面向源的服务器均可达到此实例。如果您从安全组中删除所有其他入站规则，则可以阻止任何非 CloudFront 流量到达该实例。

CloudFront 托管式前缀列表如下所示：
+ `com.amazonaws.global.cloudfront.origin-facing`（IPv4）
+ `com.amazonaws.global.ipv6.cloudfront.origin-facing`（IPv6）



有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [使用 AWS 托管前缀列表](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#use-aws-managed-prefix-list)。

**重要**  
CloudFront 托管前缀列表在其应用于 Amazon VPC 配额的方式方面是唯一的。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[AWS 托管前缀列表权重](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#aws-managed-prefix-list-weights)。

# 将 CloudFront 与 AWS SDK 配合使用
<a name="sdk-general-information-section"></a>

AWS 软件开发工具包（SDK）适用于许多常用编程语言。每个软件开发工具包都提供 API、代码示例和文档，使开发人员能够更轻松地以其首选语言构建应用程序。


| SDK 文档 | 代码示例 | 
| --- | --- | 
| [适用于 C\$1\$1 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-cpp) | [适用于 C\$1\$1 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [适用于 Go 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-go) | [适用于 Go 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [适用于 Java 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-java) | [适用于 Java 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [适用于 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-javascript) | [适用于 JavaScript 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [适用于 Kotlin 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-kotlin) | [适用于 Kotlin 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-net) | [适用于 .NET 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [适用于 PHP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-php) | [适用于 PHP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Tools for PowerShell 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [适用于 Python (Boto3) 的 AWS SDK](https://docs.aws.amazon.com/pythonsdk) | [适用于 Python (Boto3) 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [适用于 Ruby 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-ruby) | [适用于 Ruby 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [适用于 Rust 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-rust) | [适用于 Rust 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [适用于 SAP ABAP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-sapabap) | [适用于 SAP ABAP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [适用于 Swift 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-swift) | [适用于 Swift 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**示例可用性**  
找不到所需的内容？ 通过使用此页面底部的**提供反馈**链接请求代码示例。

## CloudFront 技术资源
<a name="resources-cloudfront"></a>

使用以下资源获取有关 CloudFront 技术问题的答案：
+ [AWS re:Post](https://repost.aws/tags/TA8pHF0m5aQdawzT2gwPcVYQ/amazon-cloudfront) – 基于社区的问答网站，供开发人员讨论与 CloudFront 相关的技术问题。
+ [支持 中心](https://console.aws.amazon.com/support/home) – 该网站包含有关您最近的支持案例和 AWS Trusted Advisor 返回的结果以及运行状况检查的信息。它还提供指向开发论坛、技术常见问题解答、服务运行状况控制面板以及 支持 计划相关信息的链接。
+ [AWS Premium Support](https://aws.amazon.com/premiumsupport/) – 了解有关 AWS Premium Support 的信息，该服务是一种一对一的快速响应支持渠道，可帮助您在 AWS 上构建和运行应用程序。
+ [AWS IQ](https://iq.aws.amazon.com/?utm=docs) – 获得来自 AWS 认证的专业人员和专家的帮助。