Die Cache-Entwertung wird manchmal Cache-Löschen bezeichnet. Dabei werden im Cache gespeicherte Inhalte als ungültig deklariert. Dadurch wird der Eintrag aus dem Cache entfernt und bei der nächsten Anfrage vom Ursprungsserver wieder aufgefüllt.
Media CDN unterstützt mehrere Möglichkeiten, Inhalte auszuwählen, die für ungültig erklärt werden sollen:
- Host und URL-Pfad
- URL-Präfix (Platzhalter)
- Cache-Tags, einschließlich vordefinierter Tags für
status
,origin
undcontent-type
Sie können diese Entwertungsparameter kombinieren, um bestimmte Antworten aus dem Cache zu erreichen und die Ursprungslast beim anschließenden Füllen des Cache zu minimieren.
Unterstützte Syntax für die Invalidation
Die unterstützte Syntax für die Invalidation lautet:
Typ | Syntax | Beispiel |
---|---|---|
Hostentwertung | Cache-Antworten für den angegebenen Host entwerten. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Pfad-Entwertung | Cache-Antworten für den angegebenen Pfad oder Pfadpräfix entwerten. |
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Cache-Tag-Entwertung beim HTTP-Statuscode, Ursprungsnamen oder MIME-Typ. |
Cache-Antworten mit einem übereinstimmenden Tag entwerten. Mehrere Tags werden als boolescher OR behandelt.
|
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
gcloud edge-cache services invalidate-cache
SERVICE_NAME \
|
Hinweise:
- In einer einzelnen Anfrage zur Invalidation können bis zu 10 Cache-Tags angegeben werden.
- Sie können
host
,path
undtags
in einer einzigen Anfrage zum Aufheben der Gültigkeit kombinieren. Sie werden als boolescher WertAND
behandelt. - Wenn mehrere Cache-Tags angegeben werden, werden sie als boolescher Wert
OR
behandelt. Wenn Sie beispielsweise--tags="status=404,origin=staging-origin"
angeben, werden alle Antworten mit dem Cache-Tagstatus=404
ungültig, ebenso wie alle Antworten mit dem Cache-Tagorigin=staging-origin
.
Cache-Tags
Mit Cache-Tags (oder Surrogate Keys) können Sie Inhalte basierend auf beliebigen Metadaten ungültig machen.
Diese Tags sind durch Folgendes definiert:
- Legen Sie den HTTP-Header
Cache-Tag
in einer Ursprungsantwort fest. Die Tags müssen dabei als durch Kommas getrennte Liste von Werten angegeben werden. - Vordefinierte Tags, die auf dem HTTP-Statuscode der Antwort, dem MIME-Typ aus dem HTTP-Antwortheader
Content-Type
oder dem Namen des Ursprungs basieren, von dem die Antwort abgerufen wurde.
Wenn in einer einzelnen Anfrage zur Datenentwertung mehrere Tags angegeben werden, werden sie als boolescher Wert OR
behandelt.
Dazu ein Beispiel:
Sie haben die folgenden Objekte im Cache:
- Im Cache gespeichertes Objekt 1 mit den Tags
status=200
,content-type=video/mp4
- Im Cache gespeichertes Objekt 2 mit den Tags
status=404
,content-type=text/plain
- Im Cache gespeichertes Objekt 3 mit den Tags
status=200
,content-type=application/x-mpegurl
- Im Cache gespeichertes Objekt 1 mit den Tags
Sie senden eine Anfrage, um Objekte mit
tags="status=200,content-type=text/plain"
Ergebnis: Alle drei im Cache gespeicherten Objekte werden gleichzeitig entwertet. Dadurch soll verhindert werden, dass Sie alle möglichen Tag-Kombinationen angeben müssen, von denen einige möglicherweise unbekannt sind.
Hinweise:
- Die Standard-Cache-Tags sind nicht in der clientseitigen Antwort enthalten, da sie entweder vorhandene Header (z. B. die Statuszeile oder Content-Type) oder interne Konfigurationsdetails widerspiegeln.
- Cache-Tags, die vom Ursprung im
Cache-Tag
-HTTP-Antwortheader gesendet werden, werden an den Client gesendet. Wenn Sie verhindern möchten, dass diese an den Client gesendet werden, verwenden Sie dieresponseHeadersToRemove
-Funktion auf einemrouteRule
, um denCache-Tag
-Header zu entfernen. Beispiele finden Sie in der Dokumentation zu benutzerdefinierten Headern.
Integrierte Tags
Auf Antworten werden automatisch die folgenden Cache-Tags angewendet, um die Invalidierung von Inhalten basierend auf dem Statuscode, dem MIME-Typ oder dem Ursprung zu unterstützen, von dem die Inhalte abgerufen wurden. Sie müssen diese Tags nicht in Ihren Ursprungsantworten angeben.
Tag | Details |
---|---|
status=HTTP_STATUS_CODE
|
Das Cache-Tag Sie können beispielsweise alle im Cache gespeicherten HTTP-404-Antworten ungültig machen, indem Sie in einer Anfrage zum Aufheben der Gültigkeit |
content-type=MIME_TYPE
|
Das Cache-Tag Der MIME-Typ einer HLS-Playlist ist beispielsweise So können Sie bestimmte Inhaltstypen ungültig machen. |
origin=ORIGIN_NAME
|
Das Cache-Tag Der Wert |
Einschränkungen für Cache-Tags
Für Cache-Tags gelten die folgenden Einschränkungen:
- Darf 120 Byte pro Tag nicht überschreiten
- Darf nicht mehr als 4 KiB (4.096 Byte) der gesamten Tag-Namen pro im Cache gespeichertem Objekt enthalten.
- Darf nicht mehr als 50 Tags pro Objekt enthalten, abgesehen von den Standard-Tags, die von Media CDN hinzugefügt werden.
- Muss ein gültiger HTTP-Tokenname sein, wie in Abschnitt 3.2.6 von HTTP RFC 7230 definiert.
- Die vordefinierten Präfixe
status=
,origin=
odercontent-type=
dürfen nicht verwendet werden, da sie ignoriert werden.
Tags, die nicht innerhalb dieser Limits liegen oder diese Anforderungen nicht erfüllen, werden ignoriert. In einigen Fällen (z. B. wenn die Antwortheader zu groß sind) schlägt die Antwort fehl und wird nicht im Cache gespeichert.
Berechtigungen
Mit der Berechtigung networkservices.EdgeCacheServices.invalidateCache
wird der Zugriff auf die invalidateCache
API gesteuert.
Diese Berechtigung ist in Identity and Access Management-Rollen networkservices.edgeCacheAdmin
und networkservices.edgeCacheUser
enthalten.
Beispiele
In den folgenden Beispielen wird gezeigt, wie du im Cache gespeicherte Antworten für einen Media CDN-Dienst ungültig machst.
Sie können die Felder host
, path
und tags
in einer einzigen Anfrage zur Invalidation kombinieren, um einen bestimmten Inhalt zu invalitieren.
Nach Host entwerten
Console
- Rufen Sie in der Google Cloud Console die Seite „Media CDN“ auf.
Zum Media CDN - Klicken Sie auf den Tab Services (Dienste).
- Klicken Sie auf Ihren Dienst.
- Klicken Sie auf den Tab Cache-Entwertung.
- Geben Sie für das Pfadmuster, das entwertet werden soll, einen Hostnamen gefolgt von einem Pfad ein.
Beispiel:
media.example.com/cats
odermedia.example.com/cat*
. Der Hostname darf*
nicht enthalten.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host=HOST
Dabei gilt:
SERVICE_NAME
durch den Namen des Edge-Cache-Dienstes ersetzen.HOST
durch den vollständigen Hostnamen des Cache-Eintrags ersetzen, der entwertet werden soll.
Beispiele:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --host="media.example.com"
Nach Pfad ungültig machen
Console
- Rufen Sie in der Google Cloud Console die Seite „Media CDN“ auf.
Zum Media CDN - Klicken Sie auf den Tab Services (Dienste).
- Klicken Sie auf Ihren Dienst.
- Klicken Sie auf den Tab Cache-Entwertung.
- Geben Sie einen Pfad für das Pfadmuster ein, das ungültig sein soll.
Beispiel:
/videos/funny.mp4
oder/segments/e94a6b1f731/*
.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --path=PREFIX
Dabei gilt:
SERVICE_NAME
durch den Namen des Edge-Cache-Dienstes ersetzen.HOST
durch den Hostnamen der Cache-Einträge ersetzen, die entwertet werden sollen. Wenn Sie mit jedem Hostnamen übereinstimmen möchten, lassen Sie das Host-Flag weg.PREFIX
mit einem Pfadpräfix ersetzen, das auf „*“ endet, das mit Cache-Einträgen übereinstimmt, die entwertet werden sollen.
Beispiele:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --path="/segments/e94a6b1f731/*"
Sie können einen genauen Pfad auch ungültig machen, indem Sie das abschließende Zeichen *
weglassen. Durch die Übergabe von --path="/videos/funny.mp4"
wird die im Cache gespeicherte Antwort (falls vorhanden), die diesem Pfad entspricht, ungültig.
Nach Cache-Tag entwerten
Console
Das Inaktivieren nach Cache-Tag wird in der Google Cloud Console nicht unterstützt.
gcloud
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --tags=TAGS
Dabei gilt:
SERVICE_NAME
durch den Namen des Edge-Cache-Dienstes ersetzen.TAGS
durch eine durch Kommas getrennte Liste von Tags ersetzen.
Beispiele:
gcloud edge-cache services invalidate-cache SERVICE_NAME \ --tags="status=404,content-type=text/plain"
Latenz der Datenentwertung
Die Cache-Entwertung über Tausende von Standorten in Media CDN ist in der Regel innerhalb einer Minute weltweit abgeschlossen.
In einigen Fällen kann die Invalidation länger dauern, je nach Systemauslastung, Konnektivität und Umfang der Inhalte, die ungültig gemacht werden.
Logging
Wenn Audit-Logs aktiviert sind, werden Invalidation-Aufrufe in Cloud Logging protokolliert.
Beschränkungen
Für Entwertungen gibt es eine Ratenbegrenzung. Wenn Sie das Limit für die Rate von Invalidationen überschreiten, erhalten Sie eine HTTP-429
-Fehlermeldung mit dem Status RESOURCE_EXHAUSTED
.
Eine Entwertung kann jedoch beliebig groß sein. Die Entwertung von /images/my-image.png
zählt beispielsweise als eine Entwertung. Die Entwertung von /images/*
zählt ebenfalls als eine Entwertung.
Dieses Verhalten unterscheidet sich vom Verhalten in Cloud CDN. Cloud CDN unterstützt eine Entwertung pro Minute.