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 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.
Come funziona l'invalidazione dei tag
-
Configura la tua distribuzione: aggiungi una
CacheTagConfigalla tua distribuzione specificando il nome dell'intestazione HTTP che la tua origine utilizza per restituire i tag della cache. -
Etichetta gli oggetti all'origine: quando restituisci un oggetto che desideri memorizzare nella cache con tag, configura l'origine per 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 tag 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 presenta i metadati degli oggetti come intestazioni di risposta con il prefisso
x-amz-meta-<Key>, quindi una chiave di metadati di verrebbe restituita come intestazione.cache-tagx-amz-meta-cache-tagPuoi impostare il tuo to per abilitare l'HeaderNameinvio di invalidazioniCacheTagConfigx-amz-meta-cache-taga questi tag.Nota
In alternativa, puoi associare una funzione Lambda @Edge di risposta all'origine al comportamento della cache per aggiungere intestazioni di 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 del formato dei tag
Valore dell'intestazione di Origin Response:
-
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 tag individuali:
-
Caratteri visibili ASCII (33-126)
-
Nessun carattere di controllo, spazi o virgole
-
Senza distinzione tra maiuscole e min
-
Massimo 256 caratteri per tag
-
Massimo 50 tag per oggetto (i tag aggiuntivi vengono ignorati)
Configurazione di una distribuzione per l'annullamento delle convalide dei tag
Per abilitare le invalidazioni dei tag, aggiungi una CacheTagConfig 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
Utilizzare GetInvalidation per verificare lo stato. La risposta include sia gli elementi del percorso che quelli del tag:
aws cloudfront get-invalidation \ --distribution-iddistribution_ID\ --idinvalidation_ID
Considerazioni importanti
-
Opt-in richiesto: l'invalidazione dei tag funziona solo sulle distribuzioni configurate.
CacheTagConfigLe distribuzioni senza questa configurazione ignorano le intestazioni dei tag della cache fin 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'opzioneHeaderNameinCacheTagConfig, le invalidazioni emesse agli oggetti memorizzati nella cache con tag sotto il nome dell'intestazione precedente non verranno più valutate. Se devi cambiare il nome dell'intestazione, inizia a restituire sia le nuove che le vecchie intestazioni dei tag della cache con gli oggetti, quindi esegui un'invalidazione del percorso (ad esempio,/*) o invalida i tag esistenti prima di cambiare il nome dell'intestazione per evitare di pubblicare contenuti non aggiornati. Fatto ciò, puoi smettere di inviare l'intestazione 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 loro scadenza o non vengono invalidati dal percorso. -
Compatibilità con le versioni precedenti: le invalidazioni esistenti di percorsi e caratteri jolly continuano a funzionare invariate. Le invalidazioni dei tag si sommano: puoi utilizzare entrambi i metodi sulla stessa distribuzione.
-
Tenant di distribuzione: l'invalidazione dei tag è supportata anche per i tenant di distribuzione tramite l'API.
CreateInvalidationForDistributionTenant
Esempi di casi d'uso
Esempio 1: catalogo di prodotti per l'e-commerce
Un sito di e-commerce contrassegna le pagine di prodotto 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 generati dagli utenti
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 i contenuti con identificatori di versione:
x-amz-meta-cache-tag: version:v2, template:homepage
Quando distribuisci una nuova versione, invalida tutti i contenuti della versione 2:
aws cloudfront create-invalidation \ --distribution-iddistribution_ID\ --paths "#version:v2"