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

AWS::CloudFront::Distribution CustomErrorResponse

用于控制以下项目的复杂类型:

  • CloudFront 在将响应返回查看器之前,是否使用自定义错误消息替换 4xx 和 5xx 范围中的 HTTP 状态代码。

  • CloudFront 缓存 4xx 和 5xx 范围中的 HTTP 状态代码的时长。

有关自定义错误页面的更多信息,请参阅 Amazon CloudFront 开发人员指南 中的自定义错误响应

语法

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

JSON

{ "ErrorCachingMinTTL" : Double, "ErrorCode" : Integer, "ResponseCode" : Integer, "ResponsePagePath" : String }

YAML

ErrorCachingMinTTL: Double ErrorCode: Integer ResponseCode: Integer ResponsePagePath: String

属性

ErrorCachingMinTTL

您希望 CloudFront 缓存在 ErrorCode 中指定的 HTTP 状态代码的最短时间(以秒为单位)。在此时间段之后,CloudFront 会查询源,确定导致错误的问题是否已解决并且请求的对象现在是否可用。

有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的自定义错误响应

必需:否

类型:双精度

Update requires: No interruption

ErrorCode

您希望为其指定自定义错误页面以及/或者缓存时长的 HTTP 状态代码。

必需:是

类型:整数

Update requires: No interruption

ResponseCode

您希望 CloudFront 将其与自定义错误页面一起返回给查看器的 HTTP 状态代码。出于多种原因,您可能希望 CloudFront 返回的状态代码与源返回到 CloudFront 的状态代码不同,例如:

  • 一些 Internet 设备(例如,一些防火墙和企业代理)会拦截 HTTP 4xx 和 5xx 状态代码,防止响应返回到查看器。如果替换为 200,则通常不会拦截响应。

  • 如果您不在意不同的客户端错误或服务器错误之间的区别,可以指定 400500 作为所有 4xx 或 5xx 错误的 ResponseCode

  • 您可能希望返回 200 状态代码 (OK) 和静态网站,确保客户不知道网站宕机。

如果为 ResponseCode 指定值,则必须为 ResponsePagePath 指定值。

必需:条件

类型:整数

Update requires: No interruption

ResponsePagePath

当源返回 ErrorCode 指定的 HTTP 状态代码时,您希望 CloudFront 向查看器返回的自定义错误页面的路径,例如 /4xx-errors/403-forbidden.html。如果您希望将您的对象和自定义错误页面存储在不同的位置,您的分配必须包含满足以下条件时的缓存行为:

  • PathPattern 的值与您的自定义错误消息的路径匹配。例如,假设您在 Amazon S3 存储桶中名为 /4xx-errors 的目录下为 4xx 错误保存了自定义错误页面。您的分配必须包含缓存行为,其路径模式将对自定义错误页面的请求路由至该位置,例如 /4xx-errors/*

  • TargetOriginId 的值指定包含自定义错误页面的来源的 ID 元素的值。

如果为 ResponsePagePath 指定值,则必须为 ResponseCode 指定值。

建议在 Amazon S3 存储桶中存储自定义错误页面。如果您在 HTTP 服务器上存储自定义错误页面,服务器启动以返回 5xx 错误,则由于源服务器不可用,因此 Amazon S3 将无法获取您希望返回到查看器的文件。

必需:条件

类型:字符串

Update requires: No interruption

另请参阅