Invalidar arquivos - Amazon CloudFront

Invalidar arquivos

Se você precisar remover um arquivo de caches de borda do CloudFront antes de ele expirar, poderá executar uma das seguintes ações:

  • Invalidar o arquivo dos pontos de presença de caches. Na próxima vez que um visualizador solicitar o arquivo, o CloudFront recorrerá à origem para obter a versão mais recente do arquivo.

  • Usar o versionamento de arquivos para fornecer uma versão diferente do arquivo com um nome diferente. Para obter mais informações, consulte Como atualizar arquivos existentes usando nomes de arquivos com versão.

Para invalidar arquivo, você pode especificar o caminho de cada arquivo ou um caminho que termine com o curinga *, que pode se aplicar a um ou vários arquivos, como mostrado nestes exemplos:

  • /images/image1.jpg

  • /images/image*

  • /images/*

nota

Se você usar a AWS Command Line Interface (AWS CLI) para invalidar arquivos e especificar um caminho que inclua o curinga *, será necessário usar aspas (") em torno do caminho.

Por exemplo: .: aws cloudfront create-invalidation --distribution-id distribution_ID --paths "/*"

Você pode enviar um número específico de caminhos de invalidação por mês gratuitamente. Se você enviar mais do que o número estipulado de caminhos de invalidação em um mês, pagará uma taxa por caminho de invalidação enviado. Para obter mais informações sobre as cobranças de invalidação, consulte Pagar pela invalidação de arquivos.

Escolher entre invalidar arquivos e usar nomes de arquivos com versionamento

Para controlar as versões de arquivos fornecidos da distribuição, você pode invalidá-los ou dar a eles nomes de arquivo com versão. Se quiser atualizar os arquivos com frequência, recomendamos dar preferência ao versionamento de arquivos, pelos seguintes motivos:

  • O versionamento possibilita controlar o arquivo retornado por uma solicitação mesmo quando o usuário tem uma versão armazenada em cache localmente ou atrás de um proxy de armazenamento em cache corporativo. Se você invalidar o arquivo, o usuário continuará vendo a versão antiga até ela expirar desses caches.

  • Os logs de acesso do CloudFront incluem os nomes dos arquivos, portanto, o versionamento facilita a análise dos resultados de alterações nos arquivos.

  • O versionamento é uma maneira de fornecer diferentes versões de arquivos para diferentes usuários.

  • O versionamento simplifica o uso de versões mais antigas e mais recentes de revisões de arquivo.

  • O versionamento é menos caro. Você precisa pagar para o CloudFront transferir novas versões de seus arquivos para pontos de presença, mas não pela invalidação de arquivos.

Para obter mais informações sobre versionamento de arquivo, consulte Como atualizar arquivos existentes usando nomes de arquivos com versão.

Determinar quais arquivos invalidar

Se você quiser invalidar vários arquivos, como todos os arquivos de um diretório ou cujos nomes começam com os mesmos caracteres, inclua o curinga * no final do caminho de invalidação. Para obter mais informações sobre como usar o curinga *, consulte Invalidation paths.

Para invalidar arquivos selecionados, mas os usuários não necessariamente acessam todos os arquivos na origem, determine quais arquivos os visualizadores solicitaram do CloudFront e invalide-os. Para determinar quais arquivos os visualizadores solicitaram, habilite o registro em log de acesso do CloudFront. Para obter mais informações sobre os logs de acesso, consulte Configurar e usar logs padrão (logs de acesso).

Especificar os arquivos para invalidar

Observações sobre como especificar os arquivos que você deseja invalidar.

Diferenciação de letras maiúsculas e minúsculas

Os caminhos de invalidação diferenciam letras maiúsculas de minúsculas, portanto, /images/image.jpg e /images/Image.jpg especificam dois arquivos diferentes.

Alterar o URI usando uma função do Lambda

Se a distribuição do CloudFront acionar uma função do Lambda nos eventos de solicitação do visualizador, e se a função alterar o URI do arquivo solicitado, recomendamos invalidar os dois URIs para remover o arquivo dos caches de borda do CloudFront:

  • O URI na solicitação do visualizador

  • O URI após a alteração pela função

Por exemplo, suponha que a função do Lambda altere o seguinte URI de um arquivo:

https://d111111abcdef8.cloudfront.net/index.html

para um URI que inclui um diretório de linguagem:

https://d111111abcdef8.cloudfront.net/en/index.html

Para invalidar o arquivo, é necessário especificar os seguintes caminhos:

  • /index.html

  • /en/index.html

Para obter mais informações, consulte Invalidation paths.

Objeto raiz padrão

Para invalidar o objeto raiz padrão (arquivo), especifique o caminho da mesma forma que especificaria o caminho de qualquer outro arquivo.

Encaminhamento de cookies

Se você configurou o CloudFront para encaminhar cookies para a origem, os caches de borda do CloudFront poderão conter várias versões do arquivo. Ao invalidar um arquivo, o CloudFront invalida cada versão do arquivo armazenada em cache, independentemente de seus cookies associados. Você não pode invalidar seletivamente algumas versões, mas não outras, com base nos cookies associados. Para obter mais informações, consulte Armazenar conteúdo em cache com base em cookies.

Encaminhamento de cabeçalhos

Se você configurar o CloudFront para encaminhar uma lista de cabeçalhos para a origem e armazenar em cache com base nos valores dos cabeçalhos, os caches de borda do CloudFront poderão conter várias versões do arquivo. Ao invalidar um arquivo, o CloudFront invalida cada versão do arquivo armazenada em cache, independentemente dos valores de cabeçalho. Você não pode invalidar seletivamente algumas versões, mas não outras, com base nos valores de cabeçalho. (Se você configurar o CloudFront para encaminhar todos os cabeçalhos para a origem, o CloudFront não armazenará seus arquivos em cache.) Para obter mais informações, consulte Armazenar conteúdo em cache com base nos cabeçalhos de solicitação.

Encaminhamento de query strings

Se você configurar o CloudFront para encaminhar strings de consulta para a origem, deverá inclui-las ao invalidar arquivos, como mostrado nestes exemplos:

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

Se as solicitações do cliente incluírem cinco query strings diferentes para o mesmo arquivo, você poderá invalidar o arquivo cinco vezes, uma vez para cada query string, ou usar o curinga "*" no caminho de invalidação, como mostrado neste exemplo:

/images/image.jpg*

Para obter mais informações sobre como usar curingas no caminho de invalidação, consulte Invalidation paths. Para obter mais informações sobre query strings, consulte Armazenar em cache o conteúdo com base em parâmetros de string de consulta. Para determinar quais strings de consulta estão em uso, habilite o registro em log no CloudFront. Para obter mais informações, consulte Configurar e usar logs padrão (logs de acesso).

Máximo permitido

Para obter informações sobre o número máximo de invalidações permitidas, consulte Máximo de solicitações de invalidação simultâneas.

Arquivos do Microsoft Smooth Streaming

Você não poderá invalidar arquivos de mídia no formato Microsoft Smooth Streaming se o Smooth Streaming estiver ativo para o comportamento de cache correspondente.

Caracteres não ASCII ou não seguros no caminho

Se o caminho incluir caracteres não ASCII ou não seguros, conforme definido na RFC 1783, codifique-os por URL. Não codifique por URL outros caracteres do caminho, caso contrário, o CloudFront não invalidará a versão antiga do arquivo atualizado.

Caminhos de invalidação

O caminho é relativo à distribuição. Por exemplo, para invalidar o arquivo em https://d111111abcdef8.cloudfront.net/images/image2.jpg, especifique:

/images/image2.jpg

nota

No Console do CloudFront, é possível omitir a barra à esquerda no caminho, da seguinte forma: images/image2.jpg. Ao usar a API do CloudFront diretamente, os caminhos de invalidação devem começar com uma barra à esquerda.

Você também pode invalidar vários arquivos simultaneamente usando o curinga *. O *, que substitui 0 ou mais caracteres, deve ser o último caractere no caminho de invalidação. Além disso, se você usar a AWS Command Line Interface (AWS CLI) para invalidar arquivos e especificar um caminho que inclua o curinga *, será necessário usar aspas (") em torno do caminho (desta forma: "/*").

Veja os seguintes exemplos:

  • Para invalidar todos os arquivos de um diretório:

    /directory-path/*

  • Para invalidar um diretório, todos os seus subdiretórios e todos os arquivos no diretório e nos subdiretórios:

    /directory-path*

  • Para invalidar todos os arquivos com o mesmo nome, mas com diferentes extensões de nome de arquivo, como logo.jpg, logo.png e logo.gif:

    /directory-path/file-name.*

  • Para invalidar todos os arquivos de um diretório com nome de arquivo começando com os mesmos caracteres (como todos os arquivos de um vídeo no formato HLS), independentemente da extensão do nome do arquivo:

    /directory-path/initial-characters-in-file-name*

  • Ao configurar o CloudFront para armazenamento em cache com base nos parâmetros da string de consulta e você quiser invalidar todas as versões de um arquivo:

    /directory-path/file-name.file-name-extension*

  • Para invalidar todos os arquivos de uma distribuição:

    /*

O tamanho máximo de um caminho é 4.000 caracteres. Você não pode usar um caractere curinga dentro do caminho. Apenas no final do caminho.

Para obter informações sobre a invalidação de arquivos ao usar uma função do Lambda para alterar o URI, consulte Changing the URI Using a Lambda Function.

A cobrança para enviar um caminho de invalidação é a mesma, independentemente do número de arquivos sendo invalidados: um único arquivo (/images/logo.jpg) ou todos os arquivos associados a uma distribuição (/*). Para mais informações, consulte Definição de preços do Amazon CloudFront.

Se o caminho de invalidação for um diretório e você não padronizou um método para especificar os diretórios (com ou sem uma barra (/) no final), recomendamos invalidar o diretório com e sem a barra no final, por exemplo, /images e /images/.

Signed URLs

Se você estiver usando URLs assinados, invalide um arquivo incluindo apenas a parte do URL antes do ponto de interrogação (?).

Invalidar arquivos usando o console

É possível usar o console do CloudFront para criar e executar uma invalidação, exibir uma lista das invalidações enviadas anteriormente e exibir informações detalhadas sobre uma invalidação específica. Você também pode copiar uma invalidação existente, editar a lista de caminhos de arquivos e executar a invalidação editada. Você não pode remover invalidações da lista.

Invalidar arquivos

Para invalidar arquivos usando o console do CloudFront, siga o procedimento a seguir.

Para invalidar arquivos

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Selecione a distribuição para a qual deseja invalidar arquivos.

  3. Escolha Distribution Settings.

  4. Escolha a guia Invalidations.

  5. Escolha Create Invalidation.

  6. Para os arquivos que você deseja invalidar, insira um caminho de invalidação por linha. Para obter informações sobre como especificar caminhos de invalidação, consulte Especificar os arquivos para invalidar.

    Importante

    Especifique cuidadosamente os caminhos de arquivos. Você não pode cancelar uma solicitação de invalidação depois de iniciá-la.

  7. Escolha Invalidate.

Copiar, editar e reexecutar uma invalidação existente

Você pode copiar uma invalidação criada anteriormente, atualize a lista de caminhos de invalidação e executar a invalidação atualizada. Você não pode copiar uma invalidação existente, atualizar os caminhos de invalidação e salvar a invalidação atualizada sem executá-la.

Importante

Se você copiar uma invalidação que ainda está em andamento, atualizar a lista de caminhos de invalidação e executar a invalidação atualizada, o CloudFront não interromperá nem excluirá a invalidação copiada. Se qualquer caminho de invalidação for exibido no original e na cópia, o CloudFront tentará invalidar os arquivos duas vezes, e as duas invalidações serão contabilizadas no número máximo de invalidações gratuitas para o mês. Se você já tiver atingido o número máximo de invalidações gratuitas, haverá cobrança pelas duas invalidações de cada arquivo. Para obter mais informações, consulte Máximo de solicitações de invalidação simultâneas.

Para copiar, editar e reexecutar uma invalidação existente

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Selecione a distribuição que contém a invalidação que deseja copiar.

  3. Escolha Distribution Settings.

  4. Escolha a guia Invalidations.

  5. Escolha a invalidação que você deseja copiar.

    Se não tiver certeza de qual invalidação deseja copiar, escolha uma invalidação e selecione Details (Detalhes) para exibir informações detalhadas sobre ela.

  6. Escolha Copiar.

  7. Atualize a lista de caminhos de invalidação, se aplicável.

  8. Escolha Invalidate.

Cancelar invalidações

Ao enviar uma solicitação de invalidação ao CloudFront, o CloudFront encaminhará a solicitação a todos os pontos de presença em alguns segundos, e cada ponto de presença iniciará o processamento da invalidação imediatamente. Consequentemente, não é possível cancelar uma invalidação após o envio.

Listar invalidações

É possível exibir uma lista das últimas 100 invalidações criadas e executadas para uma distribuição usando o console do CloudFront. Se quiser obter uma lista com mais de 100 invalidações, use a ação de API ListInvalidations. Para obter mais informações, consulte ListInvalidations na Referência da API do Amazon CloudFront.

Para listar invalidações

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Selecione a distribuição para a qual deseja exibir uma lista de invalidações.

  3. Escolha Distribution Settings.

  4. Escolha a guia Invalidations.

nota

Você não pode remover invalidações da lista.

Exibir informações sobre uma invalidação

Você pode exibir informações detalhadas sobre uma invalidação, inclusive o ID da distribuição, ID da invalidação, status da invalidação, data e hora de criação da invalidação e uma lista completa dos caminhos de invalidação.

Para exibir informações sobre uma invalidação

  1. Faça login no AWS Management Console e abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Selecione a distribuição que contém a invalidação cujas informações detalhadas você deseja exibir.

  3. Escolha Distribution Settings.

  4. Escolha a guia Invalidations.

  5. Escolha a invalidação aplicável.

  6. Escolha Detalhes.

Invalidar arquivos usando a API do CloudFront

Para obter informações sobre como invalidar objetos e exibir informações sobre invalidações usando a API do CloudFront, consulte os tópicos na Referência da API do Amazon CloudFront:

Máximo de solicitações de invalidação simultâneas

Se você estiver invalidando arquivos individualmente, poderá ter solicitações de invalidação de até 3.000 arquivos por distribuição em andamento ao mesmo tempo. Isso pode ser uma solicitação de invalidação para até 3.000 arquivos, até 3.000 solicitações para um arquivo ou qualquer outra combinação que não ultrapasse 3.000 arquivos. Por exemplo, você pode enviar 30 solicitações de invalidação de 100 arquivos cada. Enquanto as 30 solicitações de invalidação estiverem em andamento, não será possível enviar mais solicitações de invalidação. Se você exceder o número máximo, o CloudFront retornará uma mensagem de erro.

Se estiver usando o curinga “*”, poderá ter solicitações de até 15 caminhos de invalidação em andamento ao mesmo tempo. Você também pode ter solicitações de invalidação de até 3.000 arquivos individuais por distribuição em andamento ao mesmo tempo. O máximo de solicitações de invalidação de curinga não depende do máximo de arquivos de invalidação individuais.

Pagar pela invalidação de arquivos

Os 1.000 primeiros caminhos de invalidação enviados por mês são gratuitos. Você paga por caminho de invalidação que ultrapassar esse número em um mês. Um caminho de invalidação que pode ser para um único arquivo (como /images/logo.jpg) ou para vários arquivos (como /images/*). Um caminho que inclui o curinga * conta como um caminho, mesmo que ele faça com que o CloudFront invalide milhares de arquivos.

O máximo de 1.000 caminhos de invalidação gratuitos por mês se aplica ao número total de caminhos de invalidação em todas as distribuições criadas com uma conta da AWS. Por exemplo, se você usar a conta john@example.com da AWS para criar três distribuições e enviar 600 caminhos de invalidação para cada distribuição em um mês (para um total de 1.800 caminhos de invalidação), a AWS cobrará 800 caminhos de invalidação nesse mês. Para obter informações específicas sobre a definição de preço de invalidação, consulte Definição de preço do Amazon CloudFront. Para obter mais informações sobre os caminhos de invalidação, consulte Invalidation paths.