Cosa occorre sapere quando si invalidano i file - Amazon CloudFront

Cosa occorre sapere quando si invalidano i file

Quando si specifica un file da invalidare, fai riferimento alle seguenti informazioni:

Distinzione tra lettere maiuscole e minuscole

I percorsi di invalidazione rispettano la distinzione tra lettere maiuscole. Ad esempio, /images/image.jpg e /images/Image.jpg specificano due file diversi.

Modifica dell’URI utilizzando una funzione Lambda

Se la distribuzione CloudFront attiva una funzione Lambda su eventi di richiesta di visualizzatori e se la funzione modifica l'URI del file richiesto, ti consigliamo di invalidare entrambi gli URI per eliminare il file dalle edge cache CloudFront:

  • L'URI nella richiesta del visualizzatore

  • L'URI dopo la modifica eseguita dalla funzione

Esempio

Si supponga che la funzione Lambda modifichi l’URI per un file da:

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

A un URI che include una directory di linguaggio:

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

Per invalidare il file, devi specificare i seguenti percorsi:

  • /index.html

  • /en/index.html

Per ulteriori informazioni, consulta Invalidation paths.

Oggetti root predefiniti

Per invalidare l'oggetto root predefinito (file), specifica il percorso nello stesso modo in cui specifichi il percorso per qualsiasi altro file. Per ulteriori informazioni, consulta Come funziona un oggetto root predefinito.

Inoltro dei cookie

Se CloudFront è stato configurato per inoltrare i cookie all'origine, le cache edge di CloudFront potrebbero contenere diverse versioni del file. Quando invalidi un file, CloudFront invalida ogni versione memorizzata nella cache del file stesso, indipendentemente dai cookie associati. Non puoi selettivamente invalidare alcune versioni e non altre sulla base del cookie associati. Per ulteriori informazioni, consulta Caching dei contenuti basati su cookie.

Inoltro di intestazioni

Se hai configurato CloudFront per inoltrare un elenco di intestazioni all'origine e per memorizzare nella cache in base ai valori delle intestazioni, le cache edge di CloudFront potrebbero contenere diverse versioni del file. Quando invalidi un file, CloudFront invalida ogni versione memorizzata nella cache del file stesso, a prescindere dai valori delle intestazioni. Non puoi selettivamente invalidare alcune versioni e non altre sulla base dei valori delle intestazioni. (Se configuri CloudFront per inoltrare tutte le intestazioni alla tua origine, CloudFront non memorizza nella cache i file). Per ulteriori informazioni, consulta Caching dei contenuti in base alle intestazioni di richiesta.

Inoltro di stringhe di query

Se CloudFront è stato configurato per inoltrare le stringhe di query all'origine, includere le stringhe di query durante l'invalidamento dei file, come illustrato negli esempi seguenti:

  • /images/image.jpg?parameter1=a

  • /images/image.jpg?parameter1=b

Se le richieste del client includono cinque diverse stringhe di query per lo stesso file, puoi invalidare il file cinque volte, una per ogni stringa di query, oppure utilizzare il carattere jolly * nel percorso di invalidamento, come nell'esempio seguente:

/images/image.jpg*

Per ulteriori informazioni sull'utilizzo di caratteri jolly nel percorso di invalidamento, consulta Invalidation paths.

Per ulteriori informazioni sulle stringhe di query, vedi Memorizzazione nella cache di contenuti basati su parametri delle stringhe di query.

Per determinare quale stringhe di query sono in uso, puoi abilitare la registrazione di log di CloudFront. Per ulteriori informazioni, consulta Registrazione di log standard (log di accesso).

Massimo consentito

Per ulteriori informazioni sul numero massimo di invalidazioni consentite, consulta Massima richiesta di invalidamento concorrente.

File Microsoft Smooth Streaming

Non puoi invalidare i file multimediali nel formato Microsoft Smooth Streaming quando hai abilitato Smooth Streaming per il comportamento cache corrispondente.

Caratteri non ASCII o non sicuri nel percorso

Se il percorso include caratteri non ASCII o caratteri non sicuri come indicato in RFC 1738, è necessario codificare tali caratteri in formato URL. Non codificare nell’URL qualsiasi altro carattere presente nel percorso. In caso contrario, CloudFront non invaliderà la versione precedente del file aggiornato.

Importante

Non utilizzare il carattere ~ nel percorso. CloudFront non supporta questo carattere per le invalidazioni, a prescindere che sia codificato o meno nell’URL.

Percorsi di invalidamento

Questo percorso è relativo alla distribuzione. Ad esempio, per invalidare il file in https://d111111abcdef8.cloudfront.net/images/image2.jpg, devi specificare /images/image2.jpg.

Nota

Nella console CloudFront, puoi omettere la barra iniziale nel percorso, in questo modo: images/image2.jpg. Quando si utilizza direttamente l'API CloudFront, i percorsi di invalidamento devono iniziare con una barra iniziale.

Puoi anche invalidare più file contemporaneamente utilizzando il carattere jolly *. Il carattere *, che sostituisce 0 o più caratteri, deve essere l'ultimo carattere nel percorso di invalidamento.

Importante

Per utilizzare i caratteri jolly (*) nell’invalidazione, è necessario inserire il carattere jolly alla fine del percorso. Gli asterischi (*) inseriti altrove vengono considerati come una corrispondenza letterale di caratteri anziché un carattere jolly di invalidazione.

Se utilizzi AWS Command Line Interface (AWS CLI) per invalidare i file e specifichi un percorso che include il carattere jolly *, devi usare le virgolette (") in tutto il percorso come "/*".

La lunghezza massima di un percorso è 4.000 caratteri.

Esempio: percorsi di invalidazione
  • Come invalidare tutti i file in una directory:

    /directory-path/*

  • Per invalidare una directory, tutte le sottodirectory e tutti i file nella directory e nella sottodirectory:

    /directory-path*

  • Per invalidare tutti i file con lo stesso nome, ma estensioni di nome di file diverse, ad esempio logo.jpg, logo.png e logo.gif:

    /directory-path/file-name.*

  • Per invalidare tutti i file in una directory per i quali il nome file inizia con gli stessi caratteri (ad esempio tutti i file per un video in formato HLS), indipendentemente dall'estensione del nome file:

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

  • Quando configuri CloudFront per memorizzare nella cache in base ai parametri della stringa di query e desideri invalidare ogni versione di un file:

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

  • Come invalidare tutti i file in una distribuzione:

    /*

Per ulteriori informazioni su come invalidare i file utilizzando una funzione Lambda per modificare l'URI, consulta Changing the URI Using a Lambda Function.

Se il percorso di invalidamento è una directory e se non hai standardizzato un metodo per specificare le directory - con o senza una barra finale (/), ti consigliamo di invalidare la directory con e senza barre finali, ad esempio, /images e /images/.

URL firmati

Se stai usando URL firmati, invalida un file includendo solo la parte di URL prima del punto interrogativo (?).