Zeitlimit bei Anfrage festlegen (Dienste)

Bei Cloud Run-Diensten gibt das Zeitlimit bei Anfrage die Zeit an, in der eine Antwort von in Cloud Run bereitgestellten Diensten zurückgegeben werden muss. Wenn innerhalb des festgelegten Zeitraums keine Antwort erfolgt, endet die Anfrage und der Fehler 504 wird ausgegeben. Beachten Sie, dass die Containerinstanz, die die Anfrage verarbeitet hat, nicht beendet wird.

Zeitüberschreitung

Das Zeitlimit ist standardmäßig auf 5 Minuten (300 Sekunden) eingestellt und kann auf bis zu 60 Minuten (3.600 Sekunden) verlängert werden.

Sie können diese Einstellung ändern, wenn Sie ein Container-Image bereitstellen oder die Dienstkonfiguration aktualisieren.

Neben der Zeitüberschreitung bei Anfrage in Cloud Run sollten Sie außerdem prüfen, ob im Framework Ihrer Sprache eine eigene Zeitüberschreitung bei Anfrage festgelegt ist, die ebenfalls aktualisiert werden muss. Einige Clients des Cloud Run-Dienstes können auch ein restriktiveres Zeitlimit festlegen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Diensten benötigen:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run Service mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Zeitlimit bei Anfrage festlegen und aktualisieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Sie können das Zeitlimit bei Anfrage über die Google Cloud Console, die gcloud-Befehlszeile oder eine YAML-Datei festlegen, wenn Sie einen neuen Dienst erstellen oder eine neue Überarbeitung bereitstellen.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf Container bereitstellen und wählen Sie Dienst aus, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Volumes, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Container.

    Bild

    • Geben Sie in das Feld Zeitlimit für Anfragen den Wert für die Zeitüberschreitung ein, die Sie in Sekunden verwenden möchten. Verwenden Sie Werte von 1 bis 3600 Sekunden oder zwischen 1 und 60 Minuten.
  5. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

Mit dem folgenden Befehl können Sie jederzeit für eine bestimmte Überarbeitung die Zeitüberschreitung bei Anfrage aktualisieren:

gcloud run services update SERVICE --timeout=TIMEOUT

Ersetzen Sie:

  • SERVICE durch den Namen des Dienstes.
  • TIMEOUT durch die Zeit, in der eine Antwort zurückgegeben werden muss. Dies muss ein ganzzahliger Wert oder ein Wert für die absolute Dauer sein, beispielsweise 1m20s, d. h. 1 Minute und 20 Sekunden. Wenn Sie einen ganzzahligen Wert verwenden, wird als Einheit Sekunden angenommen. Der angegebene Wert muss unter 60 Minuten liegen.

Sie können die Zeitüberschreitung bei Anfrage auch während des Deployments mit folgendem Befehl festlegen:

gcloud run deploy --image IMAGE_URL --timeout=TIMEOUT

Ersetzen Sie:

  • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • TIMEOUT durch die Zeit, innerhalb derer eine Antwort zurückgegeben werden muss. Dies muss ein ganzzahliger Wert oder ein Wert für die Dauer sein, beispielsweise 1m20s, d. h., 1 Minute und 20 Sekunden. Wenn Sie einen ganzzahligen Wert verwenden, wird als Einheit Sekunden angenommen. Der angegebene Wert muss unter 60 Minuten liegen.

YAML

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie das Attribut timeoutSeconds:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: VALUE

    Ersetzen

    • SERVICE durch den Namen Ihres Cloud Run-Dienstes
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest. Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat die Form LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • VALUE durch das gewünschte Zeitlimit in Sekunden.
    • REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
      • Beginnt mit SERVICE-
      • Enthält nur Kleinbuchstaben, Ziffern und -
      • Endet nicht mit -
      • Darf nicht mehr als 63 Zeichen enthalten
  3. Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:

    gcloud run services replace service.yaml

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie einer google_cloud_run_v2_service-Ressource in Ihrer Terraform-Konfiguration unter template Folgendes hinzu: Ersetzen Sie 300s durch das gewünschte Anfragezeitlimit Ihres Dienstes.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-request-timeout"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Timeout
    timeout = "300s"
  }
}

Einstellungen für Zeitlimits bei Anfrage aufrufen

So rufen Sie die aktuellen Einstellungen für das Zeitlimit bei Anfrage für Ihren Cloud Run-Dienst auf:

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf.

    Zu Cloud Run

  2. Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Im Detailbereich auf der rechten Seite ist die Zeitüberschreitungseinstellung bei Anfragen auf dem Tab Container aufgelistet.

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud run services describe SERVICE
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Zeitüberschreitungseinstellung.