Annullamento dei contenuti inseriti nella cache

L'annullamento della convalida della cache, a volte chiamato eliminazione definitiva della cache, è il processo di dichiarazione dei contenuti memorizzati nella cache come non validi. In questo modo la voce viene rimossa dalla cache e quindi ricaricata dal server di origine alla successiva richiesta del contenuto.

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

  • Host e percorso URL
  • Prefisso URL (carattere jolly)
  • Memorizza nella cache i tag, inclusi i tag integrati per status, origin e content-type

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

Sintassi di invalidazione supportata

La sintassi di invalidazione supportata è la seguente:

Tipo Sintassi Esempio
Annullamento convalida host Disattiva le risposte memorizzate nella cache per l'host specificato. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
Annullamento convalida percorso Disattiva le risposte memorizzate nella cache per il percorso o il prefisso del 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"
Annullamento convalida tag cache su codice di stato HTTP, nome origine o tipo MIME Disattiva le risposte memorizzate nella cache con un tag corrispondente. Più tag vengono trattati come un valore booleano OR. 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

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

Tag della cache

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

Questi tag sono definiti da quanto segue:

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

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

Considera il seguente esempio:

  • Sono presenti i seguenti oggetti memorizzati nella cache:

    • Oggetto 1 memorizzato nella cache con i tag status=200, content-type=video/mp4
    • Oggetto 2 memorizzato nella cache con tag status=404, content-type=text/plain
    • Oggetto 3 memorizzato nella cache 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. In questo modo, non è necessario specificare tutte le possibili combinazioni di tag, alcune delle quali potrebbero essere sconosciute.

Note

  • I tag della cache predefiniti non vengono inclusi nella risposta visibile al client perché riflettono le intestazioni esistenti (come la riga di stato o Content-Type) o i dettagli di configurazione interni.
  • I tag della cache inviati dall'origine nell'intestazione della 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 alcuni esempi, consulta la documentazione sulle intestazioni personalizzate.

Tag integrati

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

Tag Dettagli
status=HTTP_STATUS_CODE

Il tag della cache status viene impostato in base al codice di stato HTTP restituito 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 della 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.

Ciò ti consente di invalidare tipi specifici di contenuti.

origin=ORIGIN_NAME

Il tag della 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 consente di invalidare i contenuti di un server di origine configurato in modo errato o con un comportamento potenzialmente anomalo.

Limitazioni dei tag della cache

I tag della cache presentano le seguenti restrizioni:

  • Non deve superare i 120 byte per tag
  • Non deve superare 1 KiB (1024 byte) dei nomi totali dei tag per oggetto memorizzato nella cache
  • Non deve superare i 10 tag per oggetto, esclusi i tag predefiniti aggiunti da Media CDN
  • Deve essere un nome di token HTTP valido, come definito nella Sezione 3.2.6 di HTTP RFC 7230
  • Non deve includere i prefissi status=, origin= o content-type= integrati (che vengono ignorati).

I tag che non rientrano in questi limiti o che soddisfano tali requisiti vengono ignorati. In alcuni casi (ad esempio quando le intestazioni della risposta sono troppo grandi), la risposta ha esito negativo e non viene memorizzata nella cache.

Autorizzazioni

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

Esempi

I seguenti esempi mostrano come invalidare le risposte memorizzate nella cache per un servizio Media CDN.

Puoi combinare i campi host, path e tags in un'unica richiesta di annullamento della convalida per invalidare un insieme specifico di contenuti.

Annullata dall'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 Annullamento convalida cache.
  5. Per invalidare il 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 Cache Edge.
  • HOST con il nome host completo della voce cache da invalidare.

Ad esempio:

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

Annulla convalida in base al 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 Annullamento convalida cache.
  5. Per invalidare il pattern del percorso, 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 Cache Edge.
  • HOST con il nome host delle voci della cache da invalidare. Per trovare corrispondenze con qualsiasi nome host, ometti il flag host.
  • PREFIX con un prefisso di 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. Il superamento di --path="/videos/funny.mp4" rende la risposta memorizzata nella cache (se presente) corrispondente al percorso.

Disabilitato da un tag della cache

Console

L'annullamento della convalida tramite tag della cache non è supportato 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 Cache Edge.
  • 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 invalidazione

L'annullamento della convalida della cache nelle migliaia di località di Media CDN di solito viene completata a livello globale entro un minuto.

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

Logging

Se gli audit log sono abilitati, le chiamate di invalidazione vengono registrate in Cloud Logging.

Limitazioni

Le invalidazioni sono a frequenza limitata. Se superi il limite di frequenza di invalidazioni, ricevi un messaggio di errore HTTP 429 con lo stato RESOURCE_EXHAUSTED.

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

Questo comportamento è diverso dal comportamento in Cloud CDN. Cloud CDN supporta un'annullamento di convalida al minuto.