Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Invalidazione del contenuto tramite tag di cache
Amazon CloudFront supporta l'invalidazione dei tag, che ti consente di invalidare gli oggetti memorizzati nella cache in base a tag semantici anziché a percorsi URL. Questo ti offre un controllo flessibile sull'invalidazione della cache senza che la struttura degli URL corrisponda alla tua strategia di invalidazione.
Prima di invalidare i contenuti con i tag della cache, rivedi i requisiti e le considerazioni in. Cosa occorre sapere quando si invalidano i tag
Come funziona l'invalidazione dei tag
-
Configura la tua distribuzione: aggiungi un nome
CacheTagConfigalla tua distribuzione specificando il nome dell'intestazione HTTP che la tua origine utilizza per restituire i tag della cache. -
Contrassegna gli oggetti all'origine: quando restituisci un oggetto che desideri memorizzare nella cache con i tag, configura l'origine in modo da includere l'intestazione specificata nelle risposte HTTP con valori di tag separati da virgole.
HTTP/1.1 200 OK Content-Type: text/html x-amz-meta-cache-tag: product:electronics, category:tv, brand:example Cache-Control: max-age=3600Nota
Per le origini S3, puoi allegare i tag della cache agli oggetti S3 come metadati. Puoi aggiungere una voce di metadati con una chiave a tua scelta (esempio:
cache-tag) e un elenco di tag separati da virgole come valore (esempio:).product:electronics, category:tv, brand:exampleS3 mostra i metadati degli oggetti come intestazioni di risposta precedute da
x-amz-meta-<Key>, quindi una chiave di metadati di verrebbe restituita come intestazione.cache-tagx-amz-meta-cache-tagPuoi impostare il tuo per abilitare l'invio diHeaderNameinvalidazioniCacheTagConfiga questi tag.x-amz-meta-cache-tagNota
In alternativa, puoi associare una funzione Lambda @Edge di origin response al comportamento della cache per aggiungere le intestazioni dei tag della cache. Se si utilizza Lambda @Edge, non è necessario che il nome dell'intestazione segua il formato.
x-amz-meta-<Key> -
Invalida per tag: utilizza l'
CreateInvalidationAPI con il#prefisso per invalidare tutti gli oggetti memorizzati nella cache con il tag specificato.aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#product:electronics"Ciò invalida TUTTI gli oggetti memorizzati nella cache che contengono il tag, indipendentemente dal percorso URL.
product:electronics
Requisiti di formato dei tag
Valore dell'intestazione della risposta Origin:
-
I tag sono separati da virgole nel valore dell'intestazione.
-
Gli spazi iniziali e finali attorno a ciascun tag vengono tagliati.
-
Entrambi
tag1, tag2, tag3sono validitag1,tag2,tag3ed equivalenti.
Valori dei singoli tag:
-
Caratteri ASCII visibili (33—126)
-
Nessun carattere di controllo, spazi o virgole
-
Case-insensitive
-
Massimo 256 caratteri per tag
-
Massimo 50 tag per oggetto (i tag aggiuntivi vengono ignorati)
Configurazione di una distribuzione per l'invalidazione dei tag
Per abilitare l'invalidazione dei tag, aggiungi un CacheTagConfig file alla tua configurazione di distribuzione:
aws cloudfront create-distribution \ --distribution-config '{ "CallerReference": "my-distribution", "CacheTagConfig": { "HeaderName": "x-amz-meta-cache-tag" }, "DefaultCacheBehavior": { "TargetOriginId": "myOrigin", "ViewerProtocolPolicy": "redirect-to-https", "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6" }, "Origins": { ... }, "Enabled": true, "Comment": "Distribution with tag support" }'
Creazione di invalidazioni dei tag
Utilizzate il # prefisso nel --paths parametro per specificare i tag:
# Invalidate all objects tagged with "user1" aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user1" # Invalidate objects matching any of multiple tags (OR logic) aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user1" "#product-category:electronics" # Mix path and tag invalidations in one batch aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "/index.html" "#user1" "/images/*" "#product-category:electronics"
Verifica dello stato di invalidazione
GetInvalidationUsare per controllare lo stato. La risposta include sia il percorso che gli elementi del tag:
aws cloudfront get-invalidation \ --distribution-iddistribution_ID\ --idinvalidation_ID
Considerazioni importanti
-
Opt-in obbligatorio: l'invalidazione dei tag funziona solo sulle distribuzioni configurate.
CacheTagConfigLe distribuzioni senza questa configurazione ignorano le intestazioni dei tag della cache dall'origine. -
Limiti di elaborazione dei tag: CloudFront elabora fino a 50 tag per oggetto memorizzato nella cache. Se una risposta di origine contiene più di 50 tag, i tag aggiuntivi oltre il limite non vengono memorizzati.
-
Modifica del nome dell'intestazione: le invalidazioni dei tag vengono confrontate con la configurazione corrente.
CacheTagConfigSe si modifica l'impostazioneCacheTagConfig, le invalidazioni emesse agli oggetti memorizzatiHeaderNamenella cache con tag con il vecchio nome dell'intestazione non verranno più valutate. Se devi modificare il nome dell'intestazione, inizia a restituire sia le nuove che le vecchie intestazioni dei tag della cache con i tuoi oggetti, quindi annulla il percorso (ad esempio/*) o invalida i tag esistenti prima di modificare il nome dell'intestazione per evitare di pubblicare contenuti obsoleti. Fatto ciò, puoi smettere di inviare l'header dei vecchi tag della cache con i tuoi oggetti. -
Rimozione CacheTagConfig: quando rimuovi
CacheTagConfigda una distribuzione, CloudFront interrompe l'estrazione dei tag dalle risposte di origine. Gli oggetti esistenti memorizzati nella cache con tag vengono serviti normalmente fino alla scadenza o non vengono invalidati in base al percorso. -
Compatibilità con le versioni precedenti: gli invalidamenti dei percorsi e dei caratteri jolly esistenti continuano a funzionare invariati. Le invalidazioni dei tag sono additive: puoi utilizzare entrambi i metodi sulla stessa distribuzione.
-
Tenant di distribuzione: l'invalidazione dei tag è supportata anche per i tenant di distribuzione utilizzando l'API.
CreateInvalidationForDistributionTenant
Esempi di casi d'uso
Esempio 1: catalogo prodotti E-commerce
Un sito di e-commerce etichetta le pagine dei prodotti memorizzate nella cache con prodotto, categoria e marchio:
x-amz-meta-cache-tag: category:electronics, brand:acme, product:12345
Quando ACME aggiorna il proprio marchio, invalida tutti i prodotti ACME contemporaneamente:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#brand:acme"
Esempio 2: piattaforma di contenuti User-generated
Una piattaforma contrassegna i contenuti memorizzati nella cache con l'ID utente del proprietario:
x-amz-meta-cache-tag: user:12345, content-type:image
Quando un utente chiude il proprio account, invalida tutti i suoi contenuti dopo averli rimossi dall'origine:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#user:12345"
Esempio 3: controllo delle versioni dei contenuti
Un CMS contrassegna il contenuto con identificatori di versione:
x-amz-meta-cache-tag: version:v2, template:homepage
Quando si implementa una nuova versione, invalida tutti i contenuti della v2:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#version:v2"