Amazon web services 当响应代码为设置了自定义错误响应的错误时,CloudFront是否删除原始响应正文?

Amazon web services 当响应代码为设置了自定义错误响应的错误时,CloudFront是否删除原始响应正文?,amazon-web-services,amazon-cloudfront,Amazon Web Services,Amazon Cloudfront,在开始之前,我会说,在我的情况下,答案似乎是否,但是我可能错误地配置了我的设置,在文档中的任何地方都找不到这一点,因此我想知道它将如何工作 定义自定义错误响应时,从原点选择错误代码、返回的响应页面和替换原点错误代码的错误代码 通常情况下,这是可以预期的——例如,当源代码提供403时,我设置CloudFront返回代码为404的“error.html”。当探测我知道应该返回403的链接时,我收到带有404的“error.html”。 不幸的是,当Origin提供自己的主体时(我看到这种情况发生在J

在开始之前,我会说,在我的情况下,答案似乎是,但是我可能错误地配置了我的设置,在文档中的任何地方都找不到这一点,因此我想知道它将如何工作

定义自定义错误响应时,从原点选择错误代码、返回的响应页面和替换原点错误代码的错误代码

通常情况下,这是可以预期的——例如,当源代码提供403时,我设置CloudFront返回代码为404的“error.html”。当探测我知道应该返回403的链接时,我收到带有404的“error.html”。 不幸的是,当Origin提供自己的主体时(我看到这种情况发生在JSON和HTML页面上),CloudFront只替换标题-错误代码从403正确切换到404,但主体是Origin发送的—“error.HTML”没有提供


这是预期的行为吗?文档是否在任何地方提到过这一点?

您所描述的内容是不可预料的

配置自定义错误页和自定义响应代码应将整个响应替换为自定义响应(标题和正文)以及自定义状态代码(不包括任何原始响应标题或正文)

如果发生第二个错误——也就是说,CloudFront在实际获取自定义错误文档期间遇到错误——代码和正文都将是第二个请求期间提供的源代码

您可以检查响应头,特别是
Age
头,以验证缓存的响应没有比您预期的早很多。更改自定义错误页配置不会使任何已缓存的错误响应无效

交叉检查CloudFront日志和原始日志,以验证您看到的确实是实时的

还请注意,上述任何一项都不适用于与边缘优化API网关端点相关联的“隐藏”CloudFront分发的错误响应,也不适用于Lambda@Edge自定义错误响应