Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

CloudFront 入门

本主题中的示例可让您快速了解如何使用 CloudFront 设置基本配置以:

  • 在 Amazon Simple Storage Service (Amazon S3) 存储桶中存储对象的原始版本

  • 分配文本或图形等内容

  • 使您的对象可供所有人访问

  • 将 URL 中的 CloudFront 域名用于您的对象(例如,http://d111111abcdef8.cloudfront.net/image.jpg

  • 在 CloudFront 边缘站点上将您的对象保留默认 24 小时持续时间(最短持续时间为 0 秒)

其中的大多数选项是可自定义的。例如,您可以将内容存储在您自己的 Web 服务器上,而不是存储在 S3 存储桶中,并且您可以限定可使用签名 URL 或 Cookie 访问该内容的人员。有关如何自定义 CloudFront 分配选项的信息,请参阅创建分配的步骤(概述)

您仅需完成几个基本步骤即可开始使用 CloudFront 交付您的内容。第一步是注册。接下来,您创建一个 CloudFront 分配,然后使用网页或应用程序的 URL 中的 CloudFront 域名引用内容。

先决条件

开始之前,请确保您已完成设置 Amazon CloudFront中的步骤。

第 1 步:将内容上传到 Amazon S3,然后授予对象权限

Amazon S3 存储桶是一个可以包含文件(对象)或文件夹的容器。CloudFront 可将 Amazon S3 存储桶作为源,为您分配几乎任何类型的文件,例如,文本、图像和视频。可以创建多个存储桶,而且,可在 Amazon S3 上存储的数据量没有限制。

默认情况下,您的 Amazon S3 存储桶和其中的所有文件都是私有的,—只有创建该存储桶的 AWS 账户有权读取或写入文件。如果要允许任何人使用 CloudFront URL 访问您的 Amazon S3 存储桶中的对象,您必须授予对象公共读取权限。(这是在使用 CloudFront 和 Amazon S3 时最常出现的错误之一。您必须明确授予 Amazon S3 存储桶中每个对象的特权。)

注意

如果您想限制能够下载您的内容的人,您可以使用 CloudFront 私有内容功能。有关分配私有内容的更多信息,请参阅 使用签名 URL 和已签名的 Cookie 提供私有内容

将您的内容上传到 Amazon S3 并为每个人授予读取权限

  1. 登录 AWS 管理控制台并通过以下网址打开 Amazon S3 控制台:https://console.amazonaws.cn/s3/

  2. 在 Amazon S3 控制台中,选择创建存储桶

  3. 创建存储桶对话框中的名称和区域页面上,执行以下操作:

    1. 输入存储桶名称。

      重要

      对于与 CloudFront 一起使用的存储段,其名称必须符合 DNS 命名要求。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的存储桶限制

    2. 选择您存储桶的 AWS 区域。默认情况下,Amazon S3 在 美国东部(弗吉尼亚北部) 区域中创建存储桶。我们建议您选择一个靠近您的区域,以优化延迟并尽可能降低成本,或者,您可以选择另一个区域以满足法规要求。

  4. 选择 Next

  5. 配置选项页面上,选择版本控制、标签和其他功能的选项。

  6. 选择 Next

  7. 设置权限页面上,清除以下两个复选框:

    • 阻止所有公有访问

    您必须允许公开读取存储桶和文件,以便 CloudFront URL 可以提供来自存储桶的内容。但是,您可以使用 CloudFront 私有内容功能限制对特定内容的访问。有关更多信息,请参阅 使用签名 URL 和已签名的 Cookie 提供私有内容

  8. 选择下一步,然后选择创建存储桶

  9. 存储桶窗格中,选择您的存储桶,然后选择上传

  10. 选择文件页面上,将文件拖放到存储桶中,或选择添加文件,并选择要上传的文件。

  11. 选择下一步

  12. 设置权限页面上,为上传到Amazon S3存储桶的每个文件授予公共读取权限。

    1. 选择下一步以设置权限。

    2. 管理公共权限下拉列表中,选择为该对象授予公共读取访问权限

    3. 选择下一步

  13. 为对象设置所需的任何属性(例如加密和添加标记),然后选择下一步

  14. 选择上传

    上传完成后,您可通过其 URL 导航到该项目。在前述示例的情况下,此 URL 将是:

    http://s3-myregion.amazonaws.com/example-/filename

    使用您的 Amazon S3 URL 验证是否可以公开访问您的内容,但要记住,这不是您准备通过 CloudFront 分发内容时使用的 URL。

步骤 2:创建 CloudFront 分配

创建 CloudFront 分配

  1. 通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/

  2. 选择 Create Distribution

  3. Select a delivery method for your content (为内容选择传送方法) 页面上的 Web 部分或 RTMP 部分中,选择 Get Started (开始使用)

    • 对于大多数场景,您创建 Web 分配。

    • 要创建分配以使用 Adobe Media Server 和 Adobe 实时消息协议 (RTMP) 流式处理媒体文件,您需要创建 RTMP 分配。有关更多信息,请参阅 使用 RTMP 的流媒体文件的任务列表

  4. 创建分配页面上的源设置下面,选择您以前创建的 Amazon S3 存储桶。对于源 ID源路径限制存储桶访问源自定义标头,接受默认值。

    
						指定 Amazon S3 存储桶。
  5. 默认缓存行为设置下面,接受默认值,并且 CloudFront:

    • 将在您的分配中使用 CloudFront URL(例如,http://d111111abcdef8.cloudfront.net/image.jpg)的所有请求转发到在步骤 4 中指定的 Amazon S3 存储桶。

    • 允许最终用户使用 HTTP 或 HTTPS 访问您的对象。

    • 响应对象请求。

    • 在 CloudFront 边缘站点缓存您的对象 24 小时。

    • 仅将默认请求标头转发到源,并且不基于标头中的值来缓存对象。

    • 在将对象请求转发到源时,排除 Cookie 和查询字符串参数(如果有)。(Amazon S3 不处理 Cookie,并且仅处理一组有限的查询字符串参数。)

    • 未配置为分配 Microsoft 平滑流格式的媒体文件。

    • 允许每个人查看您的内容。

    • 不自动压缩您的内容。

    有关缓存行为选项的更多信息,请参阅 缓存行为设置

    
							定义缓存行为。
  6. 分配设置下面,为您的分配选择值。

    价格级别

    选择与您想要为 CloudFront 服务支付的最高价对应的价格级别。默认情况下,CloudFront 从所有 CloudFront 区域的节点提供您的对象。

    有关价格级别的更多信息以及选择的价格级别如何影响分配的 CloudFront 性能,请转到选择 CloudFront 分配的价格级别。有关 CloudFront 定价的信息(包括价格级别与 CloudFront 区域之间的对应关系),请转到 Amazon CloudFront 定价

    AWS WAF Web ACL

    如果要使用 AWS WAF 根据您指定的条件来允许或阻止 HTTP 和 HTTPS 请求,请选择要与该分配关联的 Web ACL。有关 AWS WAF 的更多信息,请参阅 AWS WAF 开发人员指南

    备用域名 (CNAME)(可选)

    指定要用于对象 URL 的一个或多个域名,而不是您在创建分配时 CloudFront 所指定的域名。例如,如果您希望对象的 URL:

    /images/image.jpg

    像这样:

    http://www.example.com/images/image.jpg

    而不是这样:

    http://d111111abcdef8.cloudfront.net/images/image.jpg

    您可为 www.example.com 创建 CNAME。

    重要

    如果您将 www.example.com 的 CNAME 添加到您的分配,您还需要使用 DNS 服务创建(或更新)CNAME 记录,以将 www.example.com 查询路由到 d111111abcdef8.cloudfront.net。您必须具有权限才能创建 CNAME 记录,并指定域的 DNS 服务提供商。通常,这意味着您拥有该域,但您还可以为域的所有者开发应用程序。有关 CNAME 的更多信息,请参阅 通过添加备用域名 (CNAME) 将自定义 URL 用于文件

    有关您可以向分配添加的备用域名的当前数量限制或要请求提高限制,请参阅有关 Web 分配的一般限制

    SSL 证书

    接受默认值默认 CloudFront 证书

    默认根对象(可选)

    当浏览者请求分配的根 URL (http://www.example.com/) 而不是分配中的对象 (http://www.example.com/product-description.html) 时,您希望 CloudFront 从源(例如,index.html)中请求的对象。指定一个默认根对象,以避免公开分配的内容。

    日志记录(可选)

    如果您希望 CloudFront 记录对象的每个请求信息,并将日志文件存储在 Amazon S3 存储桶中,请选择打开,然后指定存储桶并为日志文件名称指定可选的前缀。启用日志记录不会产生额外的费用,但存储和访问文件会产生常规的 Amazon S3 费用。CloudFront 不会自动删除日志,但您可以随时删除这些日志。

    Cookie 日志记录

    在该示例中,我们将 Amazon S3 作为对象的源,并且 Amazon S3 不处理 Cookie,因此,建议您选择关闭以作为 Cookie 日志记录的值。

    注释(可选)

    输入您想与分配一起保存的任何注释。

    分配状态

    如果您希望 CloudFront 在创建分配后立即开始处理请求,请选择已启用,或者,如果您不希望 CloudFront 在创建分配后开始处理请求,请选择已禁用

    分配设置
  7. 选择 Create Distribution

  8. 在 CloudFront 创建分配后,分配的状态列的值将从正在进行变为已部署。如果您选择启用分配,其将准备处理请求。这通常需要 20 到 40 分钟。

    CloudFront 为您的分配指定的域名将出现在分配列表中。(它同时也出现在选定分配的“General”选项卡上。)

第 3 步:测试链接

在创建分配后,CloudFront 知道您的 Amazon S3 源服务器所在的位置,而且您知道与分配关联的域名。您可以创建指向具有该域名的 Amazon S3 存储桶内容的链接,并让 CloudFront 提供该内容。

注意

在测试您的链接之前,您必须等待,直到分配的状态变为已部署

链接到您的对象

  1. 将以下 HTML 复制到新文件中:

    • 将 <domain name> 替换为 CloudFront 为您的分配指定的域名。

    • 将 <object name> 替换为 Amazon S3 存储桶中的文件的名称。

    <html> <head>My CloudFront Test</head> <body> <p>My text content goes here.</p> <p><img src="http://domain name/object name" alt="my test image"/> </body> </html>

    例如,如果您的域名为 d111111abcdef8.cloudfront.net,且对象名称为 image.jpg,则链接的 URL 将为:

    http://d111111abcdef8.cloudfront.net/image.jpg

    如果您的对象是在存储桶中的一个文件夹力,则将该文件夹包括在 URL 中。例如,如果 image.jpg 位于图像文件夹中,则 URL 为:

    http://d111111abcdef8.cloudfront.net/images/image.jpg

  2. 将文本保存在具有 .html 文件扩展名的文件中。

  3. 在浏览器中打开您的网站,以确保您可以看到您的内容。如果您无法看到内容,请确认您已正确执行了所有步骤。您还可看到 问题排查 中的提示。

浏览器返回带嵌入图像文件的页面,该文件由边缘站点提供,且 CloudFront 确定该边缘站点适合于提供对象。

有关使用 CloudFront 的更多信息,请转到 Amazon CloudFront 相关信息