Perché CloudFront offre contenuti obsoleti di Amazon S3?

4 minuti di lettura
0

Uso Amazon CloudFront per servire oggetti archiviati in Amazon Simple Storage Service (Amazon S3). Ho aggiornato i miei oggetti in Amazon S3, ma la mia distribuzione CloudFront supporta ancora le versioni precedenti di tali file.

Breve descrizione

Per impostazione predefinita, CloudFront memorizza nella cache una risposta di Amazon S3 per 24 ore (TTL predefinito di 86.400 secondi). Se la tua richiesta arriva a una posizione edge che ha fornito la risposta di Amazon S3 entro 24 ore, CloudFront utilizza la risposta memorizzata nella cache. Ciò accade anche se hai aggiornato i contenuti in Amazon S3.

Utilizza uno dei seguenti modi per inviare i contenuti Amazon S3 aggiornati da CloudFront:

Risoluzione

Invalidare gli oggetti Amazon S3

Puoi invalidare un oggetto Amazon S3 per rimuoverlo dalla cache della distribuzione CloudFront. Dopo la rimozione dell'oggetto dalla cache, la richiesta successiva recupera l'oggetto direttamente da Amazon S3.

Prima di eseguire questo processo, considera quanto segue:

  • Non puoi invalidare versioni specifiche di un oggetto che utilizza cookie o intestazioni per variare la risposta. In questo caso, CloudFront invalida tutte le versioni dell'oggetto.
  • A ogni account AWS sono consentiti 1.000 percorsi di annullamento gratuiti al mese. Per ulteriori informazioni, consulta i prezzi di Amazon CloudFront.

Quando crei un'invalidazione, assicurati che i percorsi degli oggetti soddisfino i seguenti requisiti:

  • I percorsi degli oggetti devono essere per singoli oggetti oppure i percorsi devono terminare con il carattere jolly (*). Ad esempio, non puoi eseguire un'invalidazione su un percorso simile a /images/*.jpeg perché il percorso non è per un singolo oggetto e non termina con un jolly.
  • Il percorso specificato deve corrispondere esattamente alle lettere maiuscole del percorso dell'oggetto. Le richieste di annullamento fanno distinzione tra maiuscole e minuscole.
  • Per rimuovere versioni specifiche di un oggetto in base a una stringa di query, includi QueryString nel percorso di invalidazione.

Il completamento degli invalidamenti degli oggetti richiede in genere da 10 a 100 secondi. Puoi verificare lo stato di un annullamento visualizzando la tua distribuzione dalla console CloudFront.

Usa il controllo delle versioni degli oggetti

Se aggiorni spesso i contenuti, è consigliabile utilizzare il controllo delle versioni degli oggetti per cancellare la cache della distribuzione CloudFront. Per aggiornamenti frequenti della cache, l'utilizzo del controllo delle versioni degli oggetti potrebbe costare meno rispetto all'utilizzo delle invalidazioni.

Usa uno di questi modi per aggiungere il controllo delle versioni ai tuoi oggetti:

  • Memorizza le nuove versioni dell'oggetto all'origine con il numero di versione nel nome della chiave. Ad esempio, se aggiorni /image_v1.png, memorizzi una nuova versione dell'oggetto come /image_v2.png.
  • Aggiorna l'oggetto all'origine ma memorizza nella cache in base a una stringa di query con la versione dell'oggetto. Ad esempio, la stringa di query si aggiorna da /image.png?ver=1 a /image.png?ver=2. È possibile utilizzare una policy di cache per specificare quali stringhe di query sono incluse nella chiave di cache e nelle richieste di origine.
    Nota: puoi ancora richiedere la versione precedente (/image.png?ver=1) mentre è disponibile nella cache di CloudFront.

Considerate i seguenti vantaggi e svantaggi per ogni metodo di controllo delle versioni degli oggetti:

  • L'archiviazione delle nuove versioni dell'oggetto all'origine (Amazon S3) consente di ripristinare le modifiche alle versioni precedenti che sono ancora disponibili con i nomi precedenti. Tuttavia, l'archiviazione di più versioni di un oggetto può aumentare i costi di storage.
  • L'aggiornamento dell'oggetto all'origine ma la memorizzazione nella cache in base alla stringa di query può ridurre i costi di archiviazione. Tuttavia, per prepararsi a eventuali rollback, è consigliabile mantenere offline le versioni precedenti degli oggetti.

Nota: la specificazione dei nomi dei file o delle directory delle versioni non è correlata ad Amazon S3 Object Versioning. L'uso della funzione di controllo delle versioni di Amazon S3 non aggiorna automaticamente il contenuto. È necessario specificare con attenzione i percorsi dei file, poiché non è possibile annullare una richiesta di annullamento dopo averne avviata una.

Informazioni correlate

Gestione della durata della permanenza dei contenuti nella cache (scadenza)

Inoltro e memorizzazione nella cache delle stringhe di query

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa