Cache-Entwertung

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 dann bei der nächsten Anfrage des Inhalts vom Ursprungsserver neu aufgefüllt.

Media CDN unterstützt mehrere Methoden zur Auswahl von Inhalten, die entwertet werden sollen:

  • Host- und URL-Pfad
  • URL-Präfix (Platzhalter)
  • Cache-Tags, einschließlich integrierter Tags für status, origin und content-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 Entwertungssyntax

Die unterstützte Syntax zur Entwertung lautet so:

Typ Syntax Beispiel
Host-Entwertung Cache-Antworten für den angegebenen Host entwerten. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --host="media.example.com"
Pfadentwertung Cache-Antworten für den angegebenen Pfad oder Pfadpräfix entwerten. gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/content/1234/hls/*"

gcloud edge-cache services invalidate-cache SERVICE_NAME \
    --path="/videos/funny.mp4"
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 \
    --tags="status=404,origin=staging-origin"

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

Hinweise:

  • In einer einzelnen Anfrage zur Entwertung können bis zu 10 Cache-Tags angegeben werden.
  • Sie können host, path und tags in einer einzigen Entwertungsanfrage kombinieren. Sie werden als boolescher AND behandelt.
  • Wenn mehrere Cache-Tags angegeben sind, werden sie als boolescher OR behandelt. Wenn Sie beispielsweise --tags="status=404,origin=staging-origin" angeben, werden alle Antworten mit dem Cache-Tag status=404 ungültig, ebenso wie alle Antworten mit dem Cache-Tag origin=staging-origin.

Cache-Tags

Mit Cache-Tags (oder Ersatzschlüsseln) können Sie Inhalte auf Basis beliebiger Metadaten entwerten.

Diese Tags sind so definiert:

  • HTTP-Header Cache-Tag in einer Ursprungsantwort festlegen, wobei Tags als eine durch Kommas getrennte Liste von Werten angegeben werden.
  • Integrierte Tags basierend auf dem HTTP-Statuscode der Antwort, dem MIME-Typ aus dem HTTP-Antwortheader Content-Type oder dem Namen des Ursprungs, von dem die Antwort abgerufen wurde.

Wenn in einer einzelnen Anfrage zur Entwertung mehrere Tags angegeben sind, werden diese als boolescher OR behandelt.

Dazu ein Beispiel:

  • Sie haben die folgenden im Cache gespeicherten Objekte:

    • Im Cache gespeichertes Objekt Nr. 1 mit Tags status=200, content-type=video/mp4
    • Im Cache gespeichertes Objekt Nr. 2 mit Tags status=404, content-type=text/plain
    • Im Cache gespeichertes Objekt Nr. 3 mit Tags status=200, content-type=application/x-mpegurl
  • Sie senden eine Anfrage zum Entwerten von Objekten 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 Antwort an den Client enthalten, da sie entweder vorhandene Header (z. B. Statuszeile oder Content-Type) oder interne Konfigurationsdetails enthalten.
  • Cache-Tags, die vom Ursprung im HTTP-Antwortheader Cache-Tag gesendet werden, werden an den Client gesendet. Wenn Sie verhindern möchten, dass diese an den Client gesendet werden, entfernen Sie den Header Cache-Tag mit der Funktion responseHeadersToRemove für routeRule. Beispiele finden Sie in der Dokumentation zu benutzerdefinierten Headern.

Integrierte Tags

Antworten haben automatisch die folgenden Cache-Tags angewendet, um die Entwertung von Inhalten basierend auf dem Statuscode, dem MIME-Typ oder dem Ursprung zu unterstützen, von dem der Inhalt abgerufen wurde. Sie müssen diese Tags nicht in Ihren Ursprungsantworten angeben.

Tag Details
status=HTTP_STATUS_CODE

Das Cache-Tag status wird anhand des zurückgegebenen HTTP-Statuscodes der im Cache gespeicherten Antwort festgelegt.

Beispielsweise können Sie alle im Cache gespeicherten HTTP 404-Antworten entwerten, indem Sie in einer Entwertungsanfrage status=404 angeben.

content-type=MIME_TYPE

Das Cache-Tag content-type wird anhand des MIME-Typs festgelegt, der im HTTP-Antwortheader Content-Type festgelegt ist.

Der MIME-Typ einer HLS-Playlist ist beispielsweise application/x-mpegURL oder vnd.apple.mpegURL.

Auf diese Weise können Sie bestimmte Inhaltstypen entwerten.

origin=ORIGIN_NAME

Das Cache-Tag origin wird anhand des Namens des Ursprungs festgelegt, von dem der Inhalt abgerufen wurde.

Der Wert origin verweist auf den Wert von .routing.routeRules[].origin und ermöglicht Ihnen, Inhalte von einem falsch konfigurierten oder potenziell fehlerhaften Ursprungsserver zu entwerten.

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 1KiB (1024 Bytes) der gesamten Tag-Namen pro im Cache gespeichertem Objekt enthalten.
  • Darf nicht mehr als 10 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.
  • Darf die integrierten Präfixe status=, origin= oder content-type= nicht enthalten, die ignoriert werden.

Tags, die nicht innerhalb dieser Limits liegen oder diese Anforderungen 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 den Rollen networkservices.edgeCacheAdmin und networkservices.edgeCacheUser der Identitäts- und Zugriffsverwaltung enthalten.

Beispiele

Die folgenden Beispiele zeigen, wie im Cache gespeicherte Antworten für einen Media CDN-Dienst entwertet werden.

Sie können die Felder host, path und tags in einer einzigen Entwertungsanfrage kombinieren, um einen bestimmten Satz von Inhalten zu entwerten.

Nach Host entwerten

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Media CDN“ auf.
    Zu Media CDN
  2. Klicken Sie auf den Tab Services (Dienste).
  3. Klicken Sie auf den Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Geben Sie einen Hostnamen gefolgt von einem Pfad ein, um das Pfadmuster zu entwerten. Beispiel: media.example.com/cats oder media.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 entwerten

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Media CDN“ auf.
    Zu Media CDN
  2. Klicken Sie auf den Tab Services (Dienste).
  3. Klicken Sie auf den Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Geben Sie einen Pfad ein, um das Pfadmuster zu entwerten. 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. Für einen Abgleich mit einem beliebigen Hostnamen 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 entwerten, indem Sie das nachgestellte *-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

Die Entwertung 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"

Entwertungslatenz

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 Entwertung je nach Systemauslastung, Konnektivität und der Menge an Inhalten, die entwertet werden, länger dauern.

Logging

Wenn Audit-Logs aktiviert sind, werden Aufrufe zur Entwertung in Cloud Logging protokolliert.

Beschränkungen

Für Entwertungen gibt es eine Ratenbegrenzung. Sie können höchstens zehn Entwertungen pro Minute einreichen. Wenn die Rate überschritten wird, 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.