AWS::CloudFront::Distribution CacheBehavior - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::CloudFront::Distribution CacheBehavior

一个描述 CloudFront 如何处理请求的复杂类型。

如果您希望 CloudFront 从所有源提供对象,则必须至少创建与所拥有的源一样多的缓存行为(包括默认缓存行为)。每个缓存行为指定一个您希望 CloudFront 从中获取对象的源。如果有两个源但只有一个默认缓存行为,默认缓存行为将导致 CloudFront 从其中一个源获取对象,但永远不会使用另一个源。

有关您可以添加到分配的缓存行为数量的当前配额(以前称为限制),请参阅 Amazon CloudFront 开发人员指南 中的配额

如果不希望指定任何缓存行为,请只包含一个空的 CacheBehaviors 元素。不要包含空的 CacheBehavior 元素,因为这是无效的。

要从现有分配中删除所有缓存行为,请更新分配配置,并只包含一个空的 CacheBehaviors 元素。

要添加、更改或删除一个或多个缓存行为,请更新分配配置并指定您希望包含在更新后的分配中的所有缓存行为。

有关缓存行为的更多信息,请参阅 Amazon CloudFront 开发人员指南 中的缓存行为设置

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "AllowedMethods" : [ String, ... ], "CachedMethods" : [ String, ... ], "Compress" : Boolean, "DefaultTTL" : Double, "FieldLevelEncryptionId" : String, "ForwardedValues" : ForwardedValues, "LambdaFunctionAssociations" : [ LambdaFunctionAssociation, ... ], "MaxTTL" : Double, "MinTTL" : Double, "PathPattern" : String, "SmoothStreaming" : Boolean, "TargetOriginId" : String, "TrustedSigners" : [ String, ... ], "ViewerProtocolPolicy" : String }

属性

AllowedMethods

一个复杂类型,用于控制 CloudFront 处理并转发到 Amazon S3 存储桶或自定义源的 HTTP 方法。提供了三个选项:

  • CloudFront 仅转发 GETHEAD 请求。

  • CloudFront 仅转发 GETHEADOPTIONS 请求。

  • CloudFront 转发 GET, HEAD, OPTIONS, PUT, PATCH, POSTDELETE 请求。

如果您选择第三个选项,则可能需要限制对 Amazon S3 存储桶或自定义源的访问,以使用户无法执行您不希望他们执行的操作。例如,您可能不希望用户具有从您的源中删除对象的权限。

必需:否

类型:字符串列表

Update requires: No interruption

CachedMethods

一个复杂类型,用于控制 CloudFront 是否使用指定的 HTTP 方法缓存对请求的响应。共有两个选项:

  • CloudFront 缓存对 GETHEAD 请求的响应。

  • CloudFront 缓存对 GETHEADOPTIONS 请求的响应。

如果您为 Amazon S3 源选择第二个选项,则可能需要转发 Access-Control-Request-Method、Access-Control-Request-Headers 和源标头以便正确缓存响应。

必需:否

类型:字符串列表

Update requires: No interruption

Compress

指示您是否希望 CloudFront 自动压缩此缓存行为的某些文件。如果是,请指定 true,否则指定 false。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的提供压缩文件

必需:否

类型:布尔值

Update requires: No interruption

DefaultTTL

您希望对象在 CloudFront 缓存中保留的默认时间,在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。仅当来源未向对象添加 HTTP 标头(如 Cache-Control max-ageCache-Control s-maxageExpires)时才应用指定的值。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的管理内容在边缘缓存中保留的时长(过期时间)

必需:否

类型:双精度

Update requires: No interruption

FieldLevelEncryptionId

您希望 CloudFront 用于加密特定数据字段以便实现此缓存行为的字段级加密配置的 ID 值。

必需:否

类型:字符串

Update requires: No interruption

ForwardedValues

指定 CloudFront 如何处理查询字符串、Cookie 和 HTTP 标头的复杂类型。

必需:是

类型ForwardedValues

Update requires: No interruption

LambdaFunctionAssociations

一个复杂类型,包含缓存行为的零个或多个 Lambda 函数关联。

必需:否

类型LambdaFunctionAssociation 的列表

Update requires: No interruption

MaxTTL

您希望对象在 CloudFront 缓存中保留的最长时间,在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。仅当来源向对象添加 HTTP 标头(如 Cache-Control max-ageCache-Control s-maxageExpires)时才应用指定的值。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的管理内容在边缘缓存中保留的时长(过期时间)

必需:否

类型:双精度

Update requires: No interruption

MinTTL

您希望对象在 CloudFront 缓存中保留的最短时间,在此时间之后,CloudFront 会向您的源转发另一个请求以确定此对象是否已更新。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的管理内容在边缘缓存中保留的时长(过期时间)

如果将 CloudFront 配置为将所有标头转发到源(在 Headers 下,如果为 Quantity 指定 1,为 Name 指定 *),则必须为 MinTTL 指定 0

必需:否

类型:双精度

Update requires: No interruption

PathPattern

指定将行为应用于的请求的模式(例如,images/*.jpg)。CloudFront 收到查看器请求时,会按照缓存行为在分配中列出的顺序,将请求路径与路径模式进行比较。

注意

可以选择在路径模式的开头包含斜杠 (/)。例如:/images/*.jpg。无论开头是否有 /,CloudFront 行为都相同。

默认缓存行为的路径模式是 *,且不能更改。如果对象的请求与任何缓存行为的路径模式都不匹配,CloudFront 将应用默认缓存行为中的行为。

有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的路径模式

必需:是

类型:字符串

Update requires: No interruption

SmoothStreaming

指示您是否希望使用与此缓存行为关联的源以 Microsoft 平滑流格式分配媒体文件。如果是,则指定 true;否则指定 false。如果为 true 指定 SmoothStreaming,则仍可以使用此缓存行为分配其他内容,只要该内容与 PathPattern 的值匹配。

必需:否

类型:布尔值

Update requires: No interruption

TargetOriginId

当请求与此默认缓存行为匹配时,您希望 CloudFront 将请求路由到的源的 ID 值。

必需:是

类型:字符串

Update requires: No interruption

TrustedSigners

指定您希望允许为私有内容创建签名 URL 的 AWS 账户(如果有)。

如果要在目标源中的对象(与该缓存行为的 PathPattern 匹配)的请求中要求使用签名的 URL,请指定一个 AWS 账户 ID 列表。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的通过 CloudFront 提供私有内容

必需:否

类型:字符串列表

Update requires: No interruption

ViewerProtocolPolicy

当请求与 TargetOriginId 中的路径模式匹配时,查看器可用于访问 PathPattern 指定的来源中的文件的协议。可以指定以下选项:

  • allow-all:查看器可以使用 HTTP 或 HTTPS。

  • redirect-to-https:如果查看器提交 HTTP 请求,则 CloudFront 将向查看器返回 HTTP 状态代码 301(永久移动)以及 HTTPS URL。然后,查看器会使用新的 URL 重新提交请求。

  • https-only:如果查看器发送 HTTP 请求,则 CloudFront 将返回 HTTP 状态代码 403(禁止)。

有关要求使用 HTTPS 协议的更多信息,请参阅 Amazon CloudFront 开发人员指南 中的要求在查看者和 CloudFront 之间使用 HTTPS

注意

保证查看器使用 HTTPS 检索从源提取的对象的唯一方法是从不使用任何其他协议来提取对象。如果您最近从 HTTP 更改为 HTTPS,建议您清除对象缓存,因为缓存的对象不依赖于协议。这意味着,无论当前请求协议是否与之前使用的协议匹配,边缘站点都会从缓存返回对象。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的管理缓存过期

必需:是

类型:字符串

允许的值allow-all | https-only | redirect-to-https

Update requires: No interruption

另请参阅