Veraltete Inhalte bereitstellen

Diese Seite bietet Informationen zum Bereitstellen veralteter, abgelaufener Inhalte mit Cloud CDN. Durch Bereitstellung veralteter Inhalte kann der globale Cache von Google weiterhin Inhalte zur Verfügung stellen, wenn Ihr Ursprungsserver nicht erreichbar ist oder Fehler an Cloud CDN zurückgibt.

Dies ist in folgenden Fällen sinnvoll:

  • Sie möchten, anstatt Fehlermeldungen an Nutzer zurückzugeben, veraltete Inhalte für die Nutzer bereitstellen.
  • Durch die Bereitstellung veralteter Inhalte wird eine Latenz vermieden, wenn der Cache eine Anfrage für vor Kurzem abgelaufene Inhalte erhält. Sie müssen dann nicht auf eine synchrone nochmalige Validierung für das Back-End warten, da der Cache die veralteten Inhalte bereitstellt, die gerade abgelaufen sind, während der Inhalt asynchron im Hintergrund neu validiert wird.

Mit der Einstellung stale-while-revalidate werden vorhandene Inhalte aus dem Cache (wenn verfügbar) für einen festgelegten Zeitraum (in Sekunden) bereitgestellt, nachdem der Cache-Eintrag abgelaufen ist. Gleichzeitig werden die Inhalte gegenüber dem Ursprung neu validiert.

Sie können den Header aus dem Ursprung durch Angabe des HTTP-Antwortheaders stale-while-revalidate festlegen.

Cloud CDN kann dies für Sie durch Festlegung von cdnPolicy.serveWhileStale aktivieren. Diese Einstellung bestimmt, wie lange Cloud CDN nach Ablauf der Antwort weiter eine veraltete Version bereitstellen soll. Standardmäßig beträgt die Einstellung 86400s (1 Tag).

Die Einstellung serveWhileStale kombiniert die HTTP-Caching-Features stale-while-revalidate und stale-if-error.

Es gelten dafür folgende Standard-, Mindest- und Höchstwerte:

  • Standardwert: 86.400 Sekunden (1 Tag)
  • Mindestwert: 0 Sekunden (deaktiviert das Feature)
  • Höchstwert: 604.800 Sekunden (1 Woche)

Veraltete Inhalte werden bis zu dem angegebenen Limit über den Ablaufzeitpunkt des Cache-Eintrags hinaus bereitgestellt, der durch die Header max-age, s-max-age oder Expires definiert wird. Weitere Informationen finden Sie unter Ablaufzeiten und Validierungsanfragen.

Wenn es für ein Cloud CDN-Edge-Caching keine im Cache gespeicherte Kopie des Objekts gibt, das für das Bereitstellen veralteter Inhalte verwendet werden soll, oder wenn das Objekt die maximale TTL-Dauer für veraltete Inhalte erreicht hat, validiert Cloud CDN gleichzeitig den Inhalt gegenüber dem Ursprung neu. Wenn der Ursprung zu diesem Zeitpunkt einen Fehler meldet, gibt Cloud CDN einen Ursprungsfehler zurück.

Client-Anfrageanweisung max-stale

Clients können eine kürzere Servicezeit für veraltete Inhalte durch Angabe einer max-stale-Cachesteuerungs-Anweisung anfordern. Ist diese Anweisung angegeben, steuert sie den Zeitraum für die veralteten Inhalte, die der Client toleriert.

Wenn die im Cache gespeicherten Inhalte älter sind, als der Wert des Clients für max-stale, validiert Cloud CDN den Inhalt vor der Bereitstellung noch einmal.

Der Client kann keinen max-stale-Wert anfordern, der größer ist als der Wert, der mit der Konfigurationsoption serve-while-stale und der Cache-Steuerungsanweisung stale-while-revalidate vom Ursprung festgelegt wurde.

Hinweis

  • Informieren Sie sich über Cache-Modi und statische Inhalte.

  • Achten Sie darauf, dass Cloud CDN aktiviert ist. Eine Anleitung hierzu finden Sie unter Cloud CDN verwenden.

  • Aktualisieren Sie bei Bedarf das Cloud SDK auf die neueste Version:

    gcloud components update
    

Veraltete Inhalte bei nochmaliger Validierung bereitstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen Ihres externen HTTP(S)-Load-Balancers.
  3. Klicken Sie auf Bearbeiten .
  4. Wählen Sie unter Back-End-Konfiguration ein Back-End aus und klicken Sie auf Bearbeiten .
  5. Achten Sie darauf, dass Cloud CDN aktivieren ausgewählt ist.
  6. Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
  7. Wählen Sie unter Bereitstellen, obwohl veraltet eine der folgenden Optionen aus:
    • 1 Minute
    • 5 Minuten
    • 10 Minuten
    • 30 Minuten
    • 1 Tag (empfohlen)
    • 7 Tage
  8. Klicken Sie auf Aktualisieren.
  9. Klicken Sie noch einmal auf Aktualisieren.

gcloud

Verwenden Sie für Back-End-Buckets den Befehl gcloud beta compute backend-buckets create oder gcloud beta compute backend-buckets update mit dem Flag --serve-while-stale.

Verwenden Sie für Back-End-Dienste den Befehl gcloud beta compute backend-services create oder gcloud beta compute backend-services update mit dem Flag --serve-while-stale.

gcloud beta compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --serve-while-stale=SECONDS
gcloud beta compute backend-services (create | update) BACKEND_SERVICE_NAME
    --serve-while-stale=SECONDS

Beispiele:

gcloud beta compute backend-services update my-backend-service
    --serve-while-stale=180s

API

Verwenden Sie für Back-End-Buckets den API-Aufruf Method: backendBuckets.insert oder Method: backendBuckets.update.

Verwenden Sie für Back-End-Dienste den API-Aufruf Method: backendServices.insert oder Method: backendServices.update.

Verwenden Sie einen der folgenden API-Aufrufe:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:

"cdnPolicy": {
  "serveWhileStale": SECONDS
}

Bereitstellung veralteter Inhalte deaktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Zur Seite „Load-Balancing“

  2. Klicken Sie auf den Namen Ihres externen HTTP(S)-Load-Balancers.
  3. Klicken Sie auf Bearbeiten .
  4. Wählen Sie unter Back-End-Konfiguration ein Back-End aus und klicken Sie auf Bearbeiten .
  5. Achten Sie darauf, dass Cloud CDN aktivieren nicht ausgewählt ist.
  6. Klicken Sie unten im Fenster auf Erweiterte Konfigurationen.
  7. Wählen Sie unter Bereitstellen, obwohl veraltet die Option „Bereitstellen, obwohl veraltet“ deaktivieren aus.
  8. Klicken Sie auf Aktualisieren.
  9. Klicken Sie noch einmal auf Aktualisieren.

gcloud

Verwenden Sie für Back-End-Buckets den Befehl gcloud beta compute backend-buckets create oder gcloud beta compute backend-buckets update mit dem Flag --no-serve-while-stale.

Verwenden Sie für Back-End-Dienste den Befehl gcloud beta compute backend-services create oder gcloud beta compute backend-services update mit dem Flag --no-serve-while-stale.

gcloud beta compute backend-services (create | update) (BACKEND_SERVICE_NAME | BACKEND_BUCKET_NAME)
    --no-serve-while-stale

API

Verwenden Sie für Back-End-Buckets den API-Aufruf Method: backendBuckets.insert oder Method: backendBuckets.update.

Verwenden Sie für Back-End-Dienste den API-Aufruf Method: backendServices.insert oder Method: backendServices.update.

Verwenden Sie einen der folgenden API-Aufrufe:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Fügen Sie dem JSON-Anfragetext folgendes Snippet hinzu:

"cdnPolicy": {
  "serveWhileStale": 0
}