开始使用简单的 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 存储桶作为源为您分发几乎任何类型的文件。例如,CloudFront 可以分配文本、图像和视频。您可创建多个存储桶,并且,您可以在 Amazon S3 上存储的数据量没有上限。
默认情况下,您的 Amazon S3 存储桶和其中的所有文件都是私有的,只有创建该存储桶的 AWS 账户对这些文件具有读取/写入权限。如果要允许任何人使用 CloudFront URL 访问您的 Amazon S3 存储桶中的对象,您必须授予对象公共读取权限。(这是使用 CloudFront 和 Amazon S3 时最常见的错误之一。您必须明确授予对 Amazon S3 存储桶中的每个对象的权限。)
如果您想限制能够下载您的内容的人,可以使用 CloudFront 私有内容功能。更多有关分配私有内容的信息,请参阅 使用签名 URL 和签名 Cookie 提供私有内容。
将您的内容上传至 Amazon S3 并授予每个人读取权限
-
登录 AWS 管理控制台,并通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Amazon S3 控制台中,选择创建存储桶。
-
在创建存储桶对话框中的名称和区域页面上,执行以下操作:
-
输入存储桶名称。
重要 要使存储桶能够用于 CloudFront,其名称必须符合 DNS 命名要求。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的存储桶限制。
-
对于区域,请为您的存储桶选择一个 AWS 区域。默认情况下,Amazon S3 会在美国东部(弗吉尼亚北部)区域创建存储桶。我们建议您选择一个靠近您的区域,以优化延迟并尽可能降低成本,或者,您可以选择另一个区域以满足法规要求。
-
-
选择 Next。
-
在配置选项页面上,选择版本控制、标签和其他功能的选项。
-
选择 Next。
-
在设置权限页面上,清除以下复选框:
-
阻止所有公有访问
您必须允许公开读取存储桶和文件,以便 CloudFront URL 可以提供来自存储桶的内容。但是,您可以使用 CloudFront 私有内容功能限制对特定内容的访问。有关更多信息,请参阅 使用签名 URL 和签名 Cookie 提供私有内容。
选中我确认当前设置可能会导致此存储桶及其中的对象变为公有复选框。
-
-
选择下一步,然后选择创建存储桶。
-
在存储桶窗格中,选择您的存储桶,然后选择上传。
-
在选择文件页面上,将您的文件拖放到存储桶中。或者选择添加文件,然后选择要上传的文件。
-
选择 Next (下一步)。
-
在设置权限页面上,对于管理公共权限,选择为此对象授予公共读取访问权限。
-
选择 Next (下一步)。
-
为对象设置所需的任何属性(例如加密和添加标记),然后选择下一步。
-
选择上传。
上传完成后,您可通过其 URL 导航到该项目。例如:
https://
<bucket name>
.s3-<AWS Region>
.amazonaws.com/<object name>
使用您的 Amazon S3 URL 验证是否可以公开访问您的内容,但要记住,这不是您准备通过 CloudFront 分发内容时使用的 URL。
步骤 2:创建 CloudFront 分配
创建 CloudFront 分配
-
通过以下网址打开 CloudFront 控制台: https://console.aws.amazon.com/cloudfront/
。 -
选择 Create Distribution。
-
在 Select a delivery method for your content 页面上的 Web 部分中,选择 Get Started。
-
在创建分配页面上,对于源域名,选择您之前创建的 Amazon S3 存储桶。
对于源设置下的其他设置,请接受默认值。
-
对于默认缓存行为设置下的设置,请接受默认值。
CloudFront 将:
-
将在您的分配中使用 CloudFront URL(例如,
https://d111111abcdef8.cloudfront.net/image.jpg
)的所有请求转发到您在此过程的步骤 4 中指定的 Amazon S3 存储桶中。 -
允许最终用户使用 HTTP 或 HTTPS 访问您的对象。
-
响应对象请求。
-
默认情况下,尝试在 CloudFront 边缘站点缓存对象 24 小时。
-
仅将默认请求标头转发到源,并且不基于标头中的值来缓存对象。
-
当转发对象请求到源时,排除 cookies 和查询字符串参数(如有)。(Amazon S3 不处理 cookies,只处理一组有限的查询字符串参数。)
-
允许每个人查看您的内容。
CloudFront 不会:
-
配置为分配 Microsoft 平滑流格式的媒体文件。
-
自动压缩您的内容。
有关缓存行为选项的更多信息,请参阅 缓存行为设置。
-
-
在分配设置下面,为您的分配选择值。
- 价格级别
-
与您想为 CloudFront 服务支付的最高价对应的价格级别。默认情况下,CloudFront 从所有 CloudFront 区域的边缘站点提供您的对象。
有关价格级别以及您的价格级别选择如何影响分配的 CloudFront 性能的更多信息,请参阅选择 CloudFront 分配的价格级别。有关 CloudFront 定价的信息,包括如何将价格级别映射到 CloudFront 区域,请参阅 Amazon CloudFront 定价
。 - AWS WAF Web ACL
-
接受默认值,即 None (无)。
- 别名记录 (CNAME)
-
接受默认值,即,将字段留空。
- SSL 证书
-
接受默认值,即默认 CloudFront 证书 (*.cloudfront.net)。
- 支持的 HTTP 版本
-
接受默认值,即 HTTP/2、HTTP/1.1、HTTP/1.0。
- 默认根对象(可选)
-
当查看器请求分发的根 URL (
https://d111111abcdef8.cloudfront.net
) 而不是分发中的对象 (https://d111111abcdef8.cloudfront.net/product-description.html
) 时,您希望 CloudFront 从您的源(例如,index.html
)中请求的对象。指定一个默认根对象,以避免公开分配的内容。 - 日志记录(可选)
-
接受默认值,即 Off (关闭)。
- 启用 IPv6
-
接受默认值。
- 评论 (可选)
-
输入您想与分配一起保存的任何注释。
- 分配状态
-
选择 Enabled (已启用)。
-
选择 Create Distribution。
-
在CloudFront 创建了分配后,分配的状态列的值将从进行中更改为已部署。这通常需要花费几分钟的时间。
CloudFront 指派给分配的域名将出现在分配列表中。(它同时也出现在选定分配的“General”选项卡上。)
第 3 步:测试链接
在您已经创建分配后,CloudFront 将知晓您的 Amazon S3 源服务器的位置,而且您也知晓与该分配相关的域名。您可创建具有此域名的 Amazon S3 存储桶链接,并使 CloudFront 服务于它。
在测试您的链接之前,您必须等待,直到分配的状态变为已部署。
链接到您的对象
-
将以下 HTML 复制到新文件中:
-
用 CloudFront 指派给分配的域名替换 <domain name>。
-
用 Amazon S3 存储桶中的文件名替换 <object name>。
<html> <head>My CloudFront Test</head> <body> <p>My text content goes here.</p> <p><img src="https://
<domain name>
/<object name>
" alt="my test image"/></p> </body> </html>例如,如果您的域名为
d111111abcdef8.cloudfront.net
,且对象为image.jpg
,则链接的 URL 将为:https://d111111abcdef8.cloudfront.net/image.jpg
。如果您的对象是在存储桶中的一个文件夹里,则将该文件夹包括在 URL 中。例如,如果
image.jpg
位于 images 文件夹中,则 URL 将为:https://d111111abcdef8.cloudfront.net/images/image.jpg
-
-
将文本保存在具有 .html 文件扩展名的文件中。
-
在浏览器中打开您的网页,以确保您可以看到您的内容。如果您无法看到内容,请确认您正确执行了所有步骤。您还可看到 问题排查 中的提示。
浏览器返回带嵌入图像文件的页面,该文件由边缘站点提供,且 CloudFront 确定该边缘站点适合于服务对象。
有关使用 CloudFront 的更多信息,请参阅Amazon CloudFront 相关信息。