Annullamento dei contenuti inseriti nella cache

L'annullamento della convalida della cache, a volte chiamato pulizia della cache, è il processo di dichiarazione della non validità dei contenuti memorizzati nella cache. Di conseguenza, la voce viene rimossa dalla cache e poi reintegrata dal server di origine alla successiva richiesta dei contenuti.

Media CDN supporta diversi modi per selezionare i contenuti da invalidare, come segue:

  • Host e percorso dell'URL
  • Prefisso URL (carattere jolly)
  • Tag della cache, inclusi i tag integrati per status, origin e content-type

Puoi combinare questi parametri di invalidazione per scegliere come target risposte memorizzate nella cache specifiche e ridurre al minimo il carico dell'origine sul successivo riempimento della cache.

Sintassi di invalidazione supportata

La sintassi di invalidazione supportata è la seguente:

Tipo Sintassi Esempio
Annullamento convalida dell'host Annullare l'aggiornamento delle risposte memorizzate nella cache per l'host specificato. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
Invalidamento del percorso Annullare la convalida delle risposte memorizzate nella cache per il percorso o il prefisso percorso specificato. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/content/1234/hls/*"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/videos/funny.mp4"
Invalidazione del tag della cache in base al codice di stato HTTP, al nome dell'origine o al tipo MIME Annullare l'aggiornamento delle risposte memorizzate nella cache con un tag corrispondente. Più tag vengono trattati come un OR booleano. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,origin=staging-origin"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="content-type=application/x-mpegurl"

Note:

  • In una singola richiesta di invalidazione è possibile specificare fino a 10 tag cache.
  • Puoi combinare host, path e tags in una singola richiesta di annullamento dell'autenticazione. Vengono trattati come un valore booleano AND.
  • Quando vengono specificati più tag cache, questi vengono trattati come un valore booleano OR. Per esempio, se specifichi --tags="status=404,origin=staging-origin", tutte le risposte con un tag cache di status=404 vengono invalidate, come tutte le risposte con un tag cache di origin=staging-origin.

Tag della cache

I tag della cache (o chiavi sostitutive) ti consentono di invalidare i contenuti in base a metadati arbitrari.

Questi tag sono definiti come segue:

  • Impostazione dell'intestazione HTTP Cache-Tag in una risposta dell'origine, con i tag specificati come elenco di valori separati da virgole.
  • Tag integrati basati sul codice di stato HTTP della risposta, sul tipo MIME dell'intestazione di risposta HTTP Content-Type o sul nome dell'origine da cui è stata recuperata la risposta.

Quando in una singola richiesta di convalida vengono specificati più tag, questi vengono trattati come un valore booleano OR.

Considera l'esempio seguente:

  • Hai i seguenti oggetti memorizzati nella cache:

    • Oggetto 1 memorizzato nella cache con i tag status=200, content-type=video/mp4
    • Oggetto memorizzato nella cache 2 con i tag status=404, content-type=text/plain
    • Oggetto memorizzato nella cache 3 con i tag status=200, content-type=application/x-mpegurl
  • Emetti una richiesta per invalidare gli oggetti con tags="status=200,content-type=text/plain"

  • Risultato: tutti e tre gli oggetti memorizzati nella cache vengono invalidati contemporaneamente. Per evitare di dover specificare tutte le possibili combinazioni di tag, alcune delle quali potrebbero essere sconosciute.

Note:

  • I tag cache predefiniti non sono inclusi nella risposta rivolta al client perché riflettono intestazioni esistenti (ad esempio la riga di stato o Content-Type) o dettagli di configurazione interna.
  • I tag di cache inviati dall'origine nell'intestazione di risposta HTTP Cache-Tag vengono inviati al client. Se vuoi impedire che vengano inviati al client, utilizza la funzionalità responseHeadersToRemove su un routeRule per rimuovere l'intestazione Cache-Tag. Per esempi, consulta la documentazione relativa alle intestazioni personalizzate.

Tag integrati

Alle risposte vengono applicati automaticamente i seguenti tag cache per supportare l'invalidazione dei contenuti in base al codice di stato, al tipo MIME o all'origine da cui sono stati recuperati. Non è necessario specificare questi tag nelle risposte dell'origine.

Tag Dettagli
status=HTTP_STATUS_CODE

Il tag cache status viene impostato in base al codice di stato HTTP della risposta memorizzata nella cache.

Ad esempio, puoi invalidare tutte le risposte HTTP 404 memorizzate nella cache specificando status=404 in una richiesta di invalidazione.

content-type=MIME_TYPE

Il tag cache content-type viene impostato in base al tipo MIME impostato nell'intestazione della risposta HTTP Content-Type.

Ad esempio, il tipo MIME di una playlist HLS è application/x-mpegURL o vnd.apple.mpegURL.

In questo modo, puoi invalidare tipi specifici di contenuti.

origin=ORIGIN_NAME

Il tag cache origin viene impostato in base al nome dell'origine da cui sono stati recuperati i contenuti.

Il valore origin fa riferimento al valore di .routing.routeRules[].origin e ti consente di invalidare i contenuti di un server di origine configurato in modo errato o potenzialmente con problemi di comportamento.

Limitazioni dei tag della cache

I tag cache presentano le seguenti limitazioni:

  • Non deve superare i 120 byte per tag
  • Non deve superare i 4 KiB (4096 byte) di nomi di tag totali per oggetto memorizzato nella cache
  • Non devono superare i 50 tag per oggetto, esclusi i tag predefiniti aggiunti da Media CDN
  • Deve essere un nome token HTTP valido, come definito nella sezione 3.2.6 del documento RFC 7230 HTTP
  • Non devono essere inclusi i prefissi status=, origin= o content-type= incorporati (che vengono ignorati).

I tag che non rientrano in questi limiti o non soddisfano questi requisiti vengono ignorati. In alcuni casi (ad esempio quando le intestazioni di risposta sono troppo grandi), la risposta non va a buon fine e non viene memorizzata nella cache.

Autorizzazioni

L'autorizzazione networkservices.EdgeCacheServices.invalidateCache controlla l'accesso all'API invalidateCache. Questa autorizzazione è inclusa nei ruoli di Identity and Access Management networkservices.edgeCacheAdmin e networkservices.edgeCacheUser.

Esempi

Gli esempi riportati di seguito mostrano come invalidare le risposte memorizzate nella cache per un servizio Media CDN.

Puoi combinare i campi host, path e tags in una singola richiesta di invalidazione per invalidare un insieme specifico di contenuti.

Invalida per host

Console

  1. Vai alla pagina Media CDN nella console Google Cloud.
    Vai a Media CDN
  2. Fai clic sulla scheda Services (Servizi).
  3. Fai clic sul servizio.
  4. Fai clic sulla scheda Invalidazione della cache.
  5. Per annullare l'efficacia del pattern del percorso, inserisci un nome host seguito da un percorso. Ad esempio: media.example.com/cats o media.example.com/cat*. Il nome host non può includere *.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host=HOST

Sostituisci quanto segue:

  • SERVICE_NAME con il nome del servizio Edge Cache.
  • HOST con il nome host completo della voce della cache da invalidare.

Ad esempio:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"

Annullamento per percorso

Console

  1. Vai alla pagina Media CDN nella console Google Cloud.
    Vai a Media CDN
  2. Fai clic sulla scheda Services (Servizi).
  3. Fai clic sul servizio.
  4. Fai clic sulla scheda Invalidazione della cache.
  5. Per il pattern di percorso da annullare, inserisci un percorso. Ad esempio: /videos/funny.mp4 o /segments/e94a6b1f731/*.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path=PREFIX

Sostituisci quanto segue:

  • SERVICE_NAME con il nome del servizio Edge Cache.
  • HOST con il nome host delle voci della cache da invalidare. Per la corrispondenza su qualsiasi nome host, ometti il flag host.
  • PREFIX con un prefisso percorso che termina con "*" che corrisponde alle voci della cache da invalidare.

Ad esempio:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/segments/e94a6b1f731/*"

Puoi anche invalidare un percorso esatto omettendo il carattere finale *. Se passi --path="/videos/funny.mp4", la risposta memorizzata nella cache (se presente) corrispondente a quel percorso viene invalidata.

Tag di annullamento della convalida della cache

Console

L'invalidazione tramite il tag cache non è supportata nella console Google Cloud.

gcloud

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags=TAGS

Sostituisci quanto segue:

  • SERVICE_NAME con il nome del servizio Edge Cache.
  • TAGS con un elenco di tag separati da virgole.

Ad esempio:

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --tags="status=404,content-type=text/plain"

Latenza di annullamento della convalida

L'invalidazione della cache nelle migliaia di località di Media CDN solitamente viene completata in un minuto a livello globale.

In alcuni casi, l'invalidazione può richiedere più tempo, a seconda del carico del sistema, della connettività e del volume di contenuti da invalidare.

Logging

Se i log di controllo sono abilitati, le chiamate di invalidazione vengono registrate in Cloud Logging.

Limitazioni

Le invalidazioni sono limitate in base alla frequenza. Se superi il limite di frequenza delle invalidazioni, viene visualizzato un messaggio di errore HTTP 429 con lo stato RESOURCE_EXHAUSTED.

Un'invalidazione può essere di qualsiasi dimensione. Ad esempio, l'invalidazione di /images/my-image.png viene conteggiata come un'invalidazione. Anche l'annullamento della convalida di /images/* viene conteggiato come un'annullamento.

Questo comportamento è diverso da quello in Cloud CDN. Cloud CDN supporta un annullamento della convalida al minuto.