Mit den Einstellungen für das Zeitlimit bei Anfrage in Cloud Run können Sie die maximale Zeit festlegen, die ein Dienst für die Rückgabe einer Antwort hat. Wenn Ihr Dienst nicht innerhalb dieses Limits antwortet, schließt Cloud Run die Netzwerkverbindung und gibt den HTTP-Fehler 504 zurück.
Durch das Schließen der Verbindung wird die Containerinstanz nicht beendet. Der Container verarbeitet die abgebrochene Anfrage möglicherweise weiter, was die Verarbeitung anderer Anfragen beeinträchtigen kann. Um Zeitüberschreitungen zu vermeiden, legen Sie ein Zeitlimit fest, das über der erwarteten Ausführungszeit liegt, oder verfolgen Sie die verbleibende Ausführungszeit, um die Bereinigung durchzuführen und die Ausführung vorzeitig zu beenden.
Zeitlimit für Dienste
Das Zeitlimit ist standardmäßig auf 5 Minuten (300 Sekunden) eingestellt und kann auf bis zu 60 Minuten (3.600 Sekunden) verlängert werden.
Wenn Sie Ihren Dienst über Eventarc-Ereignisse, Pub/Sub-Push-Abos oder Cloud Scheduler auslösen, gilt das Zeitlimit dieser Dienste.
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:
- Cloud Run-Entwickler (
roles/run.developer) für den Cloud Run-Dienst - Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Dienstidentität
Wenn Sie einen Dienst oder eine Funktion aus dem Quellcode bereitstellen, müssen Ihnen auch zusätzliche Rollen für Ihr Projekt und Ihr Cloud Build-Dienstkonto zugewiesen sein.
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-Dienst mitGoogle 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 CLI-Befehlszeile oder eine YAML-Datei festlegen, wenn Sie einen neuen Dienst erstellen oder eine neue Überarbeitung bereitstellen.
Console
Rufen Sie in der Google Cloud Console Cloud Run auf:
Wählen Sie im Cloud Run-Navigationsmenü die Option Dienste aus:
Wenn Sie einen neuen Dienst konfigurieren, klicken Sie auf Container bereitstellen und füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus. Klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.
Wenn Sie einen vorhandenen Dienst konfigurieren, klicken Sie auf den Dienst und dann auf den Tab Skalierung.
Geben Sie unter Anfragen im Feld Zeitüberschreitung bei Anfrage den gewünschten Wert für das Zeitlimit in Sekunden ein. Verwenden Sie Werte von
1bis3600Sekunden.Klicken Sie auf Erstellen, um einen neuen Dienst zu erstellen. Klicken Sie auf Unterschied ansehen und erneut bereitstellen und dann auf Änderungen bereitstellen, um einen vorhandenen Dienst zu aktualisieren.
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 Folgendes:
- SERVICE: der Name Ihres Dienstes.
TIMEOUT: die Zeit, innerhalb derer eine Antwort zurückgegeben werden muss. Verwenden Sie einen ganzzahligen Wert oder einen absoluten Dauerwert, z. B.
1m20s, was 1 Minute und 20 Sekunden entspricht. 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 Folgendes:
IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- TIMEOUT: 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 kleiner als 60 Minuten sein.
YAML
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
Aktualisieren Sie das Attribut
timeoutSeconds:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: VALUE
Ersetzen Sie Folgendes:
- SERVICE: Der Name Ihres Cloud Run-Dienstes.
IMAGE_URL: ein Verweis auf das Container-Image, z. B.us-docker.pkg.dev/cloudrun/container/hello:latestWenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das FormatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- VALUE: das ausgewählte Zeitlimit in Sekunden.
Erstellen oder aktualisieren Sie den Dienst mit dem folgenden Befehl:
gcloud run services replace service.yaml
Der Befehl
gcloud run services replaceverwendet standardmäßig die Dateiservice.yaml, falls vorhanden.
Terraform
Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.
Fügen Sie einergoogle_cloud_run_v2_service-Ressource in Ihrer Terraform-Konfiguration Folgendes hinzu:Ersetzen Sie 300s durch das gewünschte Anfragezeitlimit Ihres Dienstes.
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
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Dienste:
Klicken Sie auf den gewünschten Dienst, um die Seite Dienstdetails zu öffnen.
Klicken Sie auf den Tab Skalierung, um die Einstellungen aufzurufen.
gcloud
Verwenden Sie den folgenden Befehl:
gcloud run services describe SERVICE
Suchen Sie in der zurückgegebenen Konfiguration nach der Zeitüberschreitungseinstellung.