Zeitlimit bei Anfrage festlegen

Hier erfahren Sie, wie Sie den Zeitraum festlegen, in dem eine Antwort auf eine Anfrage von Ihren Knative-Bereitstellungsdiensten zurückgegeben werden muss. Wenn innerhalb des festgelegten Zeitraums keine Antwort erfolgt, endet die Anfrage und der Fehler 504 wird ausgegeben.

Zeitlimits

Das Limit für die maximale Zeitüberschreitung hängt von der Version Ihres GKE-Clusters ab.

GKE-Version Standardlimit Maximales Zeitlimit
0.16.0-gke.1 und höher 300 Sekunden 24 Stunden
0.15.0-gke.3 und früher 300 Sekunden 900 Sekunden

Zusätzlich zum Ändern des Zeitlimits für Knative-Bereitstellungsanfragen sollten Sie prüfen, ob Ihr Sprach-Framework eine eigene Zeitüberschreitungseinstellung für Anfragen hat, die Sie ebenfalls aktualisieren müssen.

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 ein Zeitlimit für Anfragen mit der Cloud Console, der Google Cloud CLI oder einer YAML-Datei festlegen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und eine Überarbeitung bereitstellen:

Console

  1. Rufen Sie in der Google Cloud Console die Knative-Bereitstellung auf:

    Zur Knative-Bereitstellung

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Klicken Sie unter Erweiterte Einstellungen auf Container.

  4. Geben Sie in das Feld Zeitüberschreitung bei Anfrage den gewünschten Wert für das Zeitlimit ein. Der von Ihnen angegebene Wert muss unter dem Zeitlimit für die GKE-Version des Clusters liegen.

  5. Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.

  6. Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.

  7. Klicken Sie auf Erstellen, um das Image für Knative bereitzustellen, und warten Sie, bis die Bereitstellung abgeschlossen ist.

Befehlszeile

  • Legen Sie bei bestehenden Diensten das Zeitlimit für Anfragen fest, indem Sie den Befehl gcloud run services update mit dem Parameter --timeout ausführen:

    gcloud run services update SERVICE --timeout TIMEOUT
    

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • TIMEOUT mit der gewünschten Zeit. Dies muss ein ganzzahliger Wert oder ein Wert für die absolute Dauer sein, beispielsweise 1m20s, d. h. 1 Minute und 20 Sekunden. Der von Ihnen angegebene Wert muss unter dem Zeitlimit für die GKE-Version des Clusters liegen. Geben Sie 0 an, um das Zeitlimit auf den Standardwert festzulegen.
  • Legen Sie bei neuen Diensten das Zeitlimit für Anfragen fest, indem Sie den Befehl gcloud run deploy mit dem Parameter --timeout ausführen:

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

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • TIMEOUT mit der gewünschten Zeit. Dies muss ein ganzzahliger Wert oder ein Wert für die absolute Dauer sein, beispielsweise 1m20s, d. h. 1 Minute und 20 Sekunden. Der von Ihnen angegebene Wert muss unter dem Zeitlimit für die GKE-Version des Clusters liegen. Geben Sie 0 an, um das Zeitlimit auf den Standardwert festzulegen.

YAML

Sie können die Konfiguration eines vorhandenen Dienstes in eine YAML-Datei herunterladen – mit dem gcloud run services describe-Befehl mithilfe des Flags --format=export. Sie können diese YAML-Datei dann ändern und diese Änderungen mit dem Befehl gcloud run services replace bereitstellen. Sie müssen sicherstellen, dass Sie nur die angegebenen Attribute ändern.

  1. Laden Sie die Konfiguration des Dienstes in eine Datei mit dem Namen service.yaml im lokalen Arbeitsbereich herunter:

    gcloud run services describe SERVICE --format export > service.yaml

    Ersetzen Sie SERVICE durch den Namen Ihres Knative-Bereitstellungsdienstes.

  2. Aktualisieren Sie in Ihrer lokalen Datei das Attribut timeoutSeconds:

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

    Ersetzen Sie:

    • SERVICE durch den Namen Ihres Knative-Bereitstellungsdienstes
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • TIMEOUT durch das gewünschte Zeitlimit in Sekunden.
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml