Cache-Inhalte entwerten

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 gelöscht und das nächste Mal vom Ursprungsserver aufgefüllt ob der Inhalt angefordert wird.

Media CDN unterstützt mehrere Möglichkeiten zur Auswahl von Inhalten für ungültig erklärt:

  • 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 Syntax für die Entwertung

Folgende Syntax für die Entwertung wird unterstützt:

Typ Syntax Beispiel
Hostentwertung 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 sind als boolescher Wert 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 Entwertungsanfrage können bis zu 10 Cache-Tags angegeben werden.
  • Sie können host, path und tags kombinieren in einer einzelnen Entwertungsanfrage enthalten sein. Sie werden als boolescher Wert AND behandelt.
  • Wenn mehrere Cache-Tags angegeben sind, werden sie als boolescher Wert 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 basierend auf Beliebige Metadaten.

Diese Tags werden folgendermaßen definiert:

  • Cache-Tag-HTTP-Header in einer Ursprungsantwort mit Tags festlegen als kommagetrennte Liste von Werten.
  • Integrierte Tags basierend auf dem HTTP-Statuscode der Antwort, dem MIME-Typ aus dem Content-Type-HTTP-Antwortheader oder den Namen des Ursprungs, Antwort abgerufen wurde.

Wenn in einer einzelnen Entwertungsanfrage mehrere Tags angegeben sind, als boolescher Wert OR behandelt.

Dazu ein Beispiel:

  • Sie haben die folgenden im Cache gespeicherten Objekte:

    • Im Cache gespeichertes Objekt Nr. 1 mit den Tags status=200, content-type=video/mp4
    • Im Cache gespeichertes Objekt Nr. 2 mit den Tags status=404, content-type=text/plain
    • Im Cache gespeichertes Objekt Nr. 3 mit den Tags status=200, content-type=application/x-mpegurl
  • Sie geben eine Anfrage ab, um Objekte zu entwerten mit tags="status=200,content-type=text/plain"

  • Ergebnis: Alle drei im Cache gespeicherten Objekte werden gleichzeitig ungültig gemacht. 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, weil Sie spiegeln entweder vorhandene Überschriften (wie die Statuszeile oder Content-Type) oder interne Konfigurationsdetails.
  • Cache-Tags, die vom Ursprung im HTTP-Antwortheader Cache-Tag gesendet werden, sind an den Client gesendet. Wenn Sie nicht möchten, dass diese an den Client mit dem Feature responseHeadersToRemove auf einem routeRule Cache-Tag-Header. Beispiele finden Sie in der benutzerdefinierte Header Dokumentation.

Integrierte Tags

Auf Antworten werden automatisch die folgenden Cache-Tags für den Support angewendet Content auf Basis des Statuscodes, des MIME-Typs oder der Quelle, Inhalt abgerufen wurde. Sie müssen diese Tags nicht in Ihrem Ursprung angeben Antworten.

Tag Details
status=HTTP_STATUS_CODE

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

Sie können beispielsweise 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 basierend auf dem MIME-Typ festgelegt in der Inhaltstyp HTTP-Antwortheader.

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

Auf diese Weise kannst du bestimmte Inhaltstypen entwerten.

origin=ORIGIN_NAME

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

Der Wert origin verweist auf den Wert von .routing.routeRules[].origin und ermöglicht Ihnen, Falsch konfigurierte oder potenziell fehlerhafte Inhalte Ursprungsserver.

Cache-Tag-Einschränkungen

Cache-Tags unterliegen den 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 nicht die integrierten status=, origin= oder content-type=-Präfixe (werden ignoriert).

Tags, die nicht unter diese Beschränkungen fallen 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

Das networkservices.EdgeCacheServices.invalidateCache Mit Berechtigung wird der Zugriff auf die invalidateCache API gesteuert. Diese Berechtigung ist in den networkservices.edgeCacheAdmin und networkservices.edgeCacheUser Identity and Access Management-Rollen.

Beispiele

Die folgenden Beispiele zeigen, wie im Cache gespeicherte Antworten für eine Media CDN-Dienst

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

Durch 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 Ihren Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Geben Sie für das zu entwertende Pfadmuster einen Hostnamen gefolgt von einem Pfad ein. 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"

Durch 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 Ihren Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Geben Sie für das zu entwertende Pfadmuster einen Pfad ein. 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 Übereinstimmungen mit beliebigen Hostnamen lassen Sie den Host weg. melden.
  • 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 * weglassen Zeichen. Durch die Übergabe von --path="/videos/funny.mp4" wird die im Cache gespeicherte Antwort (falls vorhanden), die diesem Pfad entspricht, ungültig.

Durch 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.

Je nach Systemauslastung kann die Entwertung länger dauern, Konnektivität und die Menge der Inhalte, die ungültig werden.

Logging

Wenn Audit-Logs aktiviert sind, werden Entwertungsaufrufe in Cloud Logging protokolliert.

Beschränkungen

Für Entwertungen gibt es eine Ratenbegrenzung. Wenn Sie das Limit für Entwertungsrate überschreiten, Sie erhalten die HTTP-Fehlermeldung 429 mit dem Status RESOURCE_EXHAUSTED.

Eine Entwertung kann jedoch beliebig groß sein. Zum Beispiel kann die Entwertung /images/my-image.png zählt 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.