Controlar por quanto tempo o CloudFront armazena erros em cache - Amazon CloudFront

Controlar por quanto tempo o CloudFront armazena erros em cache

Por padrão, o CloudFront armazena em cache as respostas durante 10 segundos. Por sua vez, o CloudFront envia a próxima solicitação do objeto à origem para ver se o problema que causou o erro foi resolvido e se o objeto solicitado está disponível.

É possível especificar a duração, o Error Caching Minimum TTL (TTL mínimo de armazenamento em cache do erro), de cada código de status 4xx e 5xx armazenado em cache pelo CloudFront. (Para ter mais informações, consulte Códigos de status HTTP 4xx e 5xx armazenados em cache pelo CloudFront.) Quando você especificar uma duração, observe o seguinte:

  • Se você especificar uma duração curta de armazenamento de erros em cache, o CloudFront encaminhará mais solicitações para a origem do que se você especificar um período maior. Para erros 5xx, isso pode agravar o problema que originalmente fez com que a origem retornasse um erro.

  • Quando a origem retorna um erro para um objeto, o CloudFront responde às solicitações do objeto com a resposta de erro ou com a página de erro personalizada até que a duração do armazenamento em cache expire. Se você especificar uma duração longa para o armazenamento de erros em cache, o CloudFront poderá continuar a responder às solicitações com uma resposta de erro ou com a página de erro personalizada por um longo período após o objeto se tornar disponível novamente.

nota

É possível criar uma página de erro personalizada para o código de status HTTP 416 (intervalo solicitado insatisfatório) e alterar o código de status HTTP retornado pelo CloudFront aos visualizadores quando a origem retornar um código de status 416 ao CloudFront. (Para ter mais informações, consulte Alterar códigos de resposta exibidos pelo CloudFront.) No entanto, o CloudFront não armazena em cache as respostas do código de status 416, portanto, mesmo se você especificar um valor para o TTL mínimo de cache de erro para o código de status 416, o CloudFront não o usará.

Para controlar o tempo que o CloudFront armazena erros em cache para objetos individuais, configure seu servidor de origem para adicionar o cabeçalho aplicável à resposta de erro desse objeto.

Se a origem adicionar uma diretiva Cache-Control: max-age ou Cache-Control: s-maxage, ou um cabeçalho Expires, o CloudFront armazenará as respostas de erro em cache pelo valor no cabeçalho ou pelo valor do Error Caching Minimum TTL (TTL mínimo de armazenamento em cache de erros), o que for maior.

nota

Os valores Cache-Control: max-age e Cache-Control: s-maxage não podem ser maiores que o valor de Maximum TTL (TTL máximo) definido para o comportamento de cache para o qual a página de erro está sendo buscada.

Se a origem adicionar outras diretivas Cache-Control ou nenhum cabeçalho, o CloudFront armazenará as respostas de erro em cache pelo valor de Error Caching Minimum TTL (TTL mínimo de armazenamento em cache de erros).

Se o tempo de expiração de um código de status 4xx ou 5xx para um objeto for maior do que você deseja e o objeto estiver disponível novamente, você poderá invalidar o código de erro armazenado em cache usando a URL do objeto solicitado. Se a origem estiver retornando uma resposta de erro para vários objetos, você precisará invalidar cada objeto separadamente. Para obter mais informações sobre como invalidar objetos, consulte Invalidar arquivos para remover conteúdo.