Por que o Amazon CloudFront não armazena arquivos em cache no período de tempo que eu especifiquei?

3 minuto de leitura
0

Quero especificar por quanto tempo minha distribuição do Amazon CloudFront armazena objetos em cache. Por isso, adicionei os cabeçalhos Cache-Control ou Expires na origem. No entanto, o CloudFront não armazena objetos em cache pelo tempo que especifiquei, ou ele não armazena nenhum cache.

Resolução

Certifique-se de que as diretivas definidas nos cabeçalhos Cache-Control ou Expires não entrem em conflito. Como prática recomendada, use a diretiva de idade máxima do Cache-Control em vez do cabeçalho Expires. Se você especificar valores para ambos, o CloudFront usará somente o valor definido para a idade máxima do Cache-Control.

Verifique se o TTL mínimo, o TTL padrão e o TTL máximo definidos na distribuição do CloudFront não estão em conflito com os cabeçalhos Cache-Control ou Expires.

Se essas configurações de duração do cache entrarem em conflito, o CloudFront pode não armazenar objetos em cache pelo tempo definido, ou o CloudFront pode não armazenar nenhum cache. Evite esses exemplos de configurações de duração do cache que entram em conflito:

  • O TTL máximo é definido como 5 minutos (300 segundos) e o cabeçalho de idade máxima do Cache-Control está definido como 1 hora (3600 segundos). Nesse caso, o CloudFront armazena o objeto em cache por 5 minutos em vez de 1 hora.
  • O cabeçalho idade máxima do Cache-Control está definido para 3 horas e o cabeçalho Expires está definido para 1 mês. Nesse caso, o CloudFront armazena o objeto em cache por 3 horas em vez de 1 mês.
  • Os TTLs padrão, mínimo e máximo são definidos como 0 segundos. Nesse caso, o CloudFront sempre verifica se tem o conteúdo mais recente da origem.
  • O TTL mínimo é definido como 60 segundos, o TTL padrão é definido como 300 segundos e o TTL máximo é definido como 3600 segundos. Se a origem não fornecer cabeçalhos de cache, como idade máxima do Cache-Control ou Expires, o CloudFront armazenará o objeto em cache pela duração do TTL padrão.

Importante: se você atualizar um ativo de origem com um cabeçalho de cache, o CloudFront refletirá a alteração somente depois que fizer uma nova solicitação para sua origem. O CloudFront faz uma nova solicitação à sua origem quando o ativo em cache expira em locais da borda. Em seguida, sua distribuição recebe uma nova solicitação para o ativo. Para forçar o CloudFront a refletir a atualização antes que o ativo em cache expire, invalide o cache.

Informações relacionadas

Armazenamento de objetos em cache

Gerenciar o tempo de permanência do conteúdo no cache (expiração)

Controlar por quanto tempo o CloudFront detecta erros

AWS OFICIAL
AWS OFICIALAtualizada há 8 meses