Im Cache gespeicherte Inhalte entwerten

Die Cache-Entwertung (oder Cache-Leerung) ist der Vorgang, bei dem im Cache gespeicherte Inhalte als ungültig deklariert werden. Dadurch werden die Inhalte aus dem Cache entfernt und die nächste Anfrage wird direkt vom Ursprungsserver abgerufen.

Media CDN unterstützt mehrere Möglichkeiten, Inhalte für die Entwertung auszuwählen:

  • Host und URL-Pfad
  • URL-Präfix (Platzhalter)
  • Cache-Tags, einschließlich der integrierten 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 Entwertungssyntax 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 boolesches 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 in einer einzelnen Entwertungsanfrage kombinieren. Sie werden als boolesches AND behandelt.
  • Wenn mehrere Cache-Tags angegeben werden, werden sie als boolesches 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 beliebigen Metadaten entwerten.

Diese Tags werden durch Folgendes definiert:

  • Festlegen des HTTP-Headers Cache-Tag in einer Ursprungsantwort, wobei die Tags als durch Kommas getrennte Liste von Werten angegeben werden.
  • Integrierte 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 Entwertungsanfrage mehrere Tags angegeben werden, werden sie als boolesches OR behandelt.

Dazu ein Beispiel:

  • Sie haben die folgenden im Cache gespeicherten Objekte:

    • 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
  • Sie senden eine Anfrage, um Objekte mit tags="status=200,content-type=text/plain" zu entwerten.

  • 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 HTTP-Antwortheader Cache-Tag gesendet werden, werden an den Client gesendet. Wenn Sie verhindern möchten, dass diese an den Client gesendet werden, verwenden Sie die Funktion responseHeadersToRemove in einer routeRule, um den Header Cache-Tag zu entfernen. Beispiele finden Sie in der Dokumentation zu benutzerdefinierten Headern.

Integrierte Tags

Auf Antworten werden 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 die Inhalte abgerufen wurden. Sie müssen diese Tags nicht in Ihren Ursprungsantworten angeben.

Tag Details
status=HTTP_STATUS_CODE

Das Cache-Tag status wird basierend auf dem zurückgegebenen HTTP Statuscode der im Cache gespeicherten Antwort festgelegt.

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, der im HTTP-Antwortheader „Content-Type“ festgelegt ist.

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

So können Sie bestimmte Inhaltstypen entwerten.

origin=ORIGIN_NAME

Das origin Cache-Tag wird basierend auf dem Namen des Ursprungs festgelegt, von dem die Inhalte abgerufen wurden.

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

Beschränkungen für Cache-Tags

Für Cache-Tags gelten die folgenden Einschränkungen:

  • Ein Tag darf nicht mehr als 120 Byte umfassen.
  • Die Gesamtzahl der Tag-Namen darf 4 KiB (4096 Byte) pro im Cache gespeichertem Objekt nicht überschreiten.
  • Es dürfen nicht mehr als 50 Tags pro Objekt vorhanden sein, 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 Präfixe status=, origin= oder content-type= enthalten (die ignoriert werden).

Tags, die diese Limits nicht einhalten 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

Die networkservices.EdgeCacheServices.invalidateCache Berechtigung steuert den Zugriff auf die invalidateCache API. Diese Berechtigung ist in Identity and Access Management-Rollen networkservices.edgeCacheAdmin und networkservices.edgeCacheUser enthalten.

Beispiele

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

Sie können die Felder host, path und tags in einer einzelnen Entwertungsanfrage kombinieren, um eine bestimmte Gruppe von Inhalten zu entwerten.

Nach Host entwerten

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).
  3. Klicken Sie auf einen Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Wenn Sie den Cache nach Host entwerten möchten, geben Sie unter Host einen Hostnamen an, es sei denn, Sie möchten den Pfad für alle Hostnamen entwerten. Der Hostname darf kein * enthalten.
  6. Klicken Sie auf Entwerten und dann auf Bestätigen , um anzugeben, dass Media CDN die Inhalte entwerten soll, die mit dem Host übereinstimmen.

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"

Das Entwerten aller Inhalte, die mit einem Host verknüpft sind, kann riskant sein und die Leistung beeinträchtigen. Sie können den Entwertungsbereich reduzieren, indem Sie einen bestimmten Pfad oder relevante Cache-Tags angeben.

Nach Pfad entwerten

Console

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).
  3. Klicken Sie auf einen Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Wenn Sie den Cache nach Pfad entwerten möchten, geben Sie unter Pfad den Pfad und den Dateinamen an, z. B. /videos/funny.mp4 oder /segments/e94a6b1f731/*.
  6. Klicken Sie auf Entwerten.

gcloud

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

Dabei gilt:

  • SERVICE_NAME durch den Namen des Edge-Cache-Dienstes ersetzen.
  • 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 auch einen genauen Pfad 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

  1. Rufen Sie in der Google Cloud Console die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Tab Services (Dienste).
  3. Klicken Sie auf einen Dienst.
  4. Klicken Sie auf den Tab Cache-Entwertung.
  5. Wenn Sie den Cache nach Tags entwerten möchten, geben Sie unter Cache-Tags ein oder mehrere Tags an, um den Cache zu entwerten. Verwenden Sie Leerzeichen oder Kommas, um Tags zu trennen. Sie können maximal 10 Cache-Tags für die Entwertung hinzufügen.
  6. Klicken Sie auf Entwerten.

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 länger dauern, je nach Systemlast, Konnektivität und Umfang der zu entwertenden Inhalte.

Logging

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

Beschränkungen

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

Jede Entwertungsanfrage wird unabhängig von Größe oder Umfang des Pfads als einzelne Operation auf Ihr Ratenlimit angerechnet. Beispielsweise werden sowohl das Entwerten einer einzelnen Datei (/images/my-image.png) als auch das Entwerten eines Platzhalterpfads (/images/*) als eine Entwertungsanfrage gezählt.