Zeitlimit für Funktion
Wenn eine Funktion zu lange ausgeführt wird, ergreift das System Maßnahmen, um sie zu beenden oder zu drosseln. Dieser Zeitlimitzeitraum beträgt standardmäßig 60 Sekunden. Sie können ihn jedoch verlängern oder verkürzen, wenn Sie die Funktion bereitstellen. Die maximale Zeitüberschreitung beträgt 60 Minuten (3.600 Sekunden) für HTTP-Funktionen und 9 Minuten (540 Sekunden) für ereignisgesteuerte Funktionen.
Wenn die Ausführung der Funktion das Zeitlimit erreicht, wird dem Aufrufer sofort eine Antwortnachricht mit dem HTTP-Fehlerstatus 504 zurückgegeben. Die Funktionsinstanz wird möglicherweise gedrosselt, aber sie wird weiter ausgeführt, bis sie von selbst beendet wird. Alle Antwortnachrichten, die von der Funktion generiert werden, werden verworfen und nicht an den Aufrufer zurückgegeben.
Dies kann zu unerwarteten Nebenwirkungen führen. Ein häufiges Symptom ist, dass es scheint, die Arbeit und der Logs von einer Anfrage würden in eine nachfolgende Anfrage "überlaufen". Um dies zu vermeiden, können Sie Zeitüberschreitungen in Ihren Funktionen mit den folgenden Methoden verhindern:
- Legen Sie ein Zeitlimit fest, das über der erwarteten Ausführungszeit liegt.
- Verfolgen Sie die verbleibende Ausführungszeit. Führen Sie dann die Bereinigung durch und beenden Sie den Vorgang frühzeitig.
Zeitlimit festlegen
Sie können das Zeitlimit einer Funktion während der Bereitstellung über die Google Cloud-Befehlszeile oder die Google Cloud Console festlegen.
gcloud
Wenn Sie die gcloud-Befehlszeile verwenden, verwenden Sie das Flag --timeout
:
gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...
Wenn Sie eine vorhandene Zeitüberschreitung mit der Google Cloud CLI bearbeiten möchten, stellen Sie die Funktion einfach mit einem neuen Zeitüberschreitungswert noch einmal bereit.
Console
So legen Sie das Zeitlimit während der Funktionserstellung in der Google Cloud Console fest:
- Gehen Sie zur Übersichtsseite "Cloud Run-Funktionen" in der Google Cloud Console:
- Klicken Sie auf Funktion erstellen.
- Füllen Sie die erforderlichen Felder für die Funktion aus.
- Maximieren Sie am Ende der Seite den Abschnitt Laufzeit, Build... und klicken Sie auf den Tab Laufzeit.
Geben Sie in das Feld Zeitlimit eine Anzahl von Sekunden ein.
Wenn Sie eine vorhandene Zeitüberschreitung in der Google Cloud Console bearbeiten möchten, klicken Sie auf der Übersichtsseite der Funktion auf den Namen der gewünschten Funktion, um die zugehörige Detailseite aufzurufen. Klicken Sie auf der Detailseite auf Bearbeiten, maximieren Sie den Bereich Laufzeit, Build... und klicken Sie dann auf den Tab Laufzeit. Dort können Sie den Wert direkt im Feld Zeitlimit bearbeiten.