Cloud Scheduler veröffentlicht am Anfang und Ende jeder Jobausführung Logs, mit denen Sie Jobprobleme diagnostizieren und beheben können. Sie können Ausführungs- und Audit-Logs für einen bestimmten Job abrufen, ansehen und analysieren. Weitere Informationen finden Sie unter Logs ansehen.
Wenn ein Cloud Scheduler-Job keine Bestätigung von seinem Zieldienst (dem Jobanfrage-Handler) erhält, betrachtet Cloud Scheduler den Job standardmäßig als fehlgeschlagen und versucht es noch einmal, gemäß dem von Ihnen konfigurierten exponentiellen Backoff.
Informationen zu Vorfällen, die sich auf Dienste von Google Cloud auswirken, finden Sie im Google Cloud Service Health-Dashboard und unter Alle für Cloud Scheduler gemeldeten Vorfälle.
Job schlägt aufgrund eines Problems mit einem nachgelagerten Dienst fehl
Ein Jobfehler kann auf ein Problem in einem nachgelagerten Dienst zurückzuführen sein, auf den Cloud Scheduler abzielt (z. B. Cloud Run), und nicht auf Cloud Scheduler selbst. Ein Problem mit einem nachgelagerten Dienst ist wahrscheinlich, wenn die folgenden Bedingungen erfüllt sind:
- Die Berechtigungen für Cloud Scheduler sind korrekt eingerichtet.
- Cloud Scheduler kann den Zieldienst erfolgreich erreichen.
- Fehlermeldungen in den Cloud Scheduler-Ausführungsprotokollen stammen vom Downstream-Dienst.
So beheben Sie das Problem:
- Rufen Sie den Downstream-Dienst direkt auf: Prüfen Sie, ob der Downstream-Dienst ohne Cloud Scheduler aufgerufen werden kann. Ein erfolgreicher Aufruf weist darauf hin, dass Cloud Scheduler wahrscheinlich das Problem verursacht. Wenn der Aufruf nicht erfolgreich ist, muss der Downstream-Dienst weiter debuggt werden.
- Ziel-Dienstprotokolle prüfen: Prüfen Sie die Protokolle für den Zieldienst, ermitteln Sie die ausgegebenen Fehler und priorisieren Sie sie entsprechend.
- Nach Vorgängen mit langer Ausführungszeit suchen: Wenn Cloud Scheduler bei Vorgängen mit langer Ausführungszeit (mehr als 30 Minuten) einen HTTP-
504-Fehler zurückgibt, prüfen Sie in den Logs des Zieldienstes, ob die Ausführung erfolgreich war oder fehlgeschlagen ist. Der Zieldienst hat möglicherweise ein längeres Zeitlimit für Anfragen. In diesem Szenario kommt es zu einer Zeitüberschreitung in Cloud Scheduler und der Job wird möglicherweise wiederholt, während der Zieldienst noch ausgeführt wird. Informationen zum Vermeiden doppelter Ausführungen bei Wiederholungsversuchen finden Sie unter Jobanfragen deduplizieren.
Job schlägt mit einem Berechtigungsfehler fehl
Berechtigungen steuern, welche Hauptkonten auf Ressourcen zugreifen können und welche Vorgänge zulässig sind. Falsch konfigurierte Berechtigungen können die Jobausführung stören und zu Fehlern vom Typ „Berechtigung verweigert“ führen. Audit-Logs enthalten einen detaillierten Datensatz aller Berechtigungsänderungen, sodass Sie die Quelle dieser Probleme identifizieren können.
Wenn Ihr Cloud Scheduler-Job mit einem Berechtigungsfehler fehlschlägt, wird in den Ausführungslogs möglicherweise eine Meldung wie "debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403" angezeigt.
Führen Sie eine oder mehrere der folgenden Bestätigungen durch, um dieses Problem zu beheben:
Prüfen Sie die IAM-Rollen (Identity and Access Management), die dem Dienst-Agent zugewiesen sind: Der Cloud Scheduler-Dienst-Agent benötigt die Rolle Cloud Scheduler-Dienst-Agent (
roles/cloudscheduler.serviceAgent). Ohne diese Rolle schlagen Cloud Scheduler-Jobs fehl. Sie können die Rolle Ihrem Cloud Scheduler-Dienst-Agent manuell zuweisen. Eine manuelle Zuweisung ist nur erforderlich, wenn Sie die Cloud Scheduler API vor dem 19. März 2019 aktiviert oder die Rolle „Cloud Scheduler-Dienst-Agent“ entfernt haben. Weitere Informationen finden Sie unter Rolle „Cloud Scheduler-Dienst-Agent“ zuweisen.Dienstkontoberechtigungen prüfen: Achten Sie darauf, dass das mit Ihrem Job verknüpfte Dienstkonto die richtigen Berechtigungen und den richtigen Bereich hat, um den Zieldienst aufzurufen. Dies umfasst Szenarien, in denen sich das Ziel in einem anderen Projekt befindet oder das endgültige Ziel eines Vermittlungsdienstes ist. Wenn sich Ihr Ziel in Google Cloudbefindet, prüfen Sie, ob Sie Ihrem Dienstkonto die erforderlichen Rollen zugewiesen haben. Jeder Dienst in Google Cloud erfordert eine bestimmte Rolle und der empfangende Dienst überprüft das generierte Token automatisch. Für Cloud Run und Cloud Run Functions müssen Sie beispielsweise die Rolle
Cloud Run Invoker(roles/run.invoker) zuweisen. Wenn sich Ihr Ziel außerhalb von Google Cloudbefindet, muss der empfangende Dienst das Token manuell prüfen. Weitere Informationen finden Sie unter Bei Cloud Scheduler authentifizieren und Authentifizierung mit HTTP-Zielen verwenden.VPC Service Controls-Verstöße prüfen: VPC Service Controls ist ein Feature vonGoogle Cloud , mit dem Sie einen sicheren Perimeter einrichten können, der vor Daten-Exfiltration schützt. Damit Sie feststellen können, ob ein Fehler mit VPC Service Controls zusammenhängt, müssen Sie prüfen, ob Sie VPC Service Controls aktiviert und auf die Projekte und Dienste angewendet haben, die Sie verwenden. Wenn Sie prüfen möchten, ob die Projekte und Dienste durch VPC Service Controls geschützt sind, sehen Sie sich die VPC Service Controls-Richtlinie auf dieser Ebene der Ressourcenhierarchie an.
Wenn Sie den Umfang eines Problems ermitteln möchten, können Sie VPC Service Controls-Fehler aus Audit-Logs abrufen:
-
Rufen Sie in der Google Cloud Console das und die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis mit der Zwischenüberschrift Logging aus.
Fragen Sie die Audit-Logs nach den folgenden Kriterien ab:
severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"
Fehlermeldungen können insbesondere den folgenden Text enthalten:
Request is prohibited by organization's policyRequest violates VPC Service Controls
Weitere Informationen zu Problemen, die bei der Konfiguration von VPC Service Controls auftreten können, finden Sie unter Häufige Probleme beheben.
-
Private Endpunkte prüfen: Cloud Scheduler kann nur unterstützte private Endpunkte wie Cloud Run, Cloud Run Functions und Google Cloud -APIs innerhalb eines VPC Service Controls-Perimeters aufrufen. Prüfen Sie die Einstellungen für eingehenden Traffic für Ihren Zieldienst (siehe z. B. Eingehenden Netzwerktraffic für Cloud Run einschränken) und die Berechtigungen des angehängten Dienstkontos. Möglicherweise erhalten Sie die Fehlermeldung
URL_ERROR-ERROR_DNS. Weitere Informationen finden Sie in diesem Dokument unter Job schlägt aufgrund eines nicht erreichbaren Ziels fehl.
Job schlägt aufgrund eines nicht erreichbaren Ziels fehl
Dieses Problem tritt auf, wenn Ihr Cloud Scheduler-Job fehlschlägt, weil das Ziel nicht erreichbar ist. In den Ausführungslogs werden Fehler angezeigt, die mit URL_ERROR oder URL_UNREACHABLE beginnen.
Führen Sie je nach Fehlermeldung eine der folgenden Prüfungen aus, um das Problem zu beheben:
URL_ERROR-ERROR_AUTHENTICATION: Ein HTTP-401 (Unauthorized)- oder HTTP-407 (Proxy Authentication Required)-Fehler wird zurückgegeben. Das Ziel erfordert eine Authentifizierung. Die Cloud Scheduler-Anfrage enthält jedoch kein gültiges Authentifizierungstoken. Beispielsweise fehlt in der Anfrage ein Autorisierungsheader oder die Anmeldedaten sind ungültig. Prüfen Sie die Authentifizierungseinstellungen Ihres Jobs. Wenn Ihr Zielendpunkt einen API-Schlüssel im Anfrageheader erfordert, muss der Headername mit dem übereinstimmen, was Ihr Zieldienst erwartet, z. B.x-api-keyoderX-Goog-Api-Key, und nichtapi_key. Weitere Informationen finden Sie unter Bei Cloud Scheduler authentifizieren und Authentifizierung mit HTTP-Zielen verwenden.URL_ERROR-ERROR_DNS: Gibt an, dass ein URL-Abruf fehlgeschlagen ist, weil der Hostname nicht über das Domain Name System (DNS) aufgelöst werden konnte. Das kann beispielsweise daran liegen, dass der Hostname nicht existiert oder keine zugehörige IP-Adresse hat. Die Fehlermeldung enthält möglicherweise den TextOriginal HTTP response code number = 0. Prüfen Sie die Gültigkeit des Hostnamens. Wenn Sie einen privaten Endpunkt aufrufen, achten Sie darauf, dass er von Cloud Scheduler unterstützt wird, und prüfen Sie die Einstellungen für eingehenden Traffic.URL_ERROR-ERROR_NOT_FOUND: Der Webserver gibt einen HTTP-404 Not Found-Fehler zurück. Prüfen Sie, ob die Ziel-URL korrekt ist und die Ressource vorhanden ist.URL_ERROR-ERROR_OTHER: Bezieht sich auf einen allgemeinen HTTP-4xx-Fehler, der zuvor nicht im Detail beschrieben wurde. Prüfen Sie die Logs, um den ursprünglichen HTTP-Antwortcode abzurufen. Wenn Sie einen HTTP-403-Fehler erhalten, lesen Sie den Abschnitt Job schlägt mit einem Berechtigungsfehler fehl in diesem Dokument.URL_UNREACHABLE-UNREACHABLE_5xx: Das Ziel gibt einen HTTP-Fehler5xxoder429zurück. Dies kann ein vorübergehender Zustand sein, z. B. ein überlasteter Server. Prüfen Sie die Logs des Ziels, um das Problem zu beheben.URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET: Die Verbindung wurde vom Peer zurückgesetzt. Prüfen Sie, ob auf dem externen Server ein Problem vorliegt.URL_UNREACHABLE-UNREACHABLE_ERROR: Gibt einen Netzwerkfehler an. Prüfen Sie, ob die Ziel-URL korrekt ist und ob Firewallregeln den Zugriff blockieren.
Nicht unterstütztes Ziel bei Verwendung eines sicheren Perimeters
Wenn Cloud Scheduler ein eingeschränkter Dienst in einem VPC Service Controls-Perimeter ist, schlägt jeder Versuch, einen Job mit einem nicht unterstützten Ziel zu erstellen oder zu aktualisieren, mit dem Fehlercode TARGET_TYPE_NOT_PERMITTED_FOR_VPC fehl.
Weitere Informationen finden Sie unter Cronjobs mit VPC Service Controls schützen.
Probleme bei der Jobausführung
Cloud Scheduler-Jobs werden zu festgelegten Zeiten oder in regelmäßigen Intervallen ausgeführt. Die folgenden Probleme können während der Ausführung eines Jobs auftreten.
Ein Job, der zuvor funktioniert hat, wird nicht mehr ausgeführt.
Dieses Problem tritt auf, wenn ein Cloud Scheduler-Job, der zuvor erfolgreich ausgeführt wurde, nicht mehr ausgeführt wird, weil die Cloud Scheduler API deaktiviert ist. Sie können den Zeitpunkt der Deaktivierung der API bestätigen, indem Sie die Audit-Logs nach den folgenden Kriterien abfragen:
resource.type="audited_resource" AND protoPayload.serviceName="cloudscheduler.googleapis.com" AND operation.producer="serviceusage.googleapis.com" AND protoPayload.authorizationInfo.permission="serviceusage.services.disable"
Aktivieren Sie die Cloud Scheduler API, um dieses Problem zu beheben.
Nachfolgende Jobausführungen werden nicht gestartet
Dieses Problem tritt auf, wenn ein Job noch ausgeführt wird oder auf eine Antwort von seinem Ziel wartet. Andere geplante Ausführungen des Jobs werden übersprungen, bis die aktuelle Ausführung abgeschlossen ist oder ein Zeitüberschreitungsfehler auftritt.
Suchen Sie in den Logeinträgen nach dem neuesten type.googleapis.com/google.cloud.scheduler.logging.AttemptStarted-Eintrag und dem entsprechenden type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished-Eintrag. Wenn der Eintrag AttemptFinished fehlt oder nach der nächsten geplanten Ausführung des Jobs angezeigt wird, werden andere ausstehende Ausführungen blockiert und nicht gestartet. Je nach Zeitplan des Jobs kann dies verhindern, dass mehrere Jobausführungen gestartet werden. Prüfen Sie zur weiteren Untersuchung das Zeitlimit für das Ziel des Jobs und ob beim Ziel Probleme aufgetreten sind.
Die Ausführung eines Jobs wird aufgrund der Sommerzeit unregelmäßig.
Wenn Sie einen Cloud Scheduler-Job mit der Google Cloud Console erstellen, müssen Sie eine Zeitzone angeben. Wenn Sie die Google Cloud CLI verwenden, können Sie optional mit dem Flag --time-zone eine Zeitzone angeben. Andernfalls wird die Standardzeitzone „Coordinated Universal Time“ (UTC) verwendet.
Dieses Problem tritt auf, wenn ein Job mit einer Zeitzone konfiguriert ist, die nicht UTC ist, und die Ausführung aufgrund von Sommerzeitänderungen unregelmäßig wird. Dieses Verhalten ist normal.
Wenn Ihr Job eine genaue Häufigkeit erfordert, wählen Sie eine Zeitzone aus, in der die Sommerzeit nicht berücksichtigt wird. Um dieses Problem zu vermeiden, konfigurieren Sie Ihren Jobzeitplan so, dass die UTC-Zeitzone verwendet wird.
Weitere Informationen finden Sie unter Format und Zeitzone für Cronjobs.
Nächste Schritte
Wenn Sie in der Cloud Scheduler-Dokumentation keine Lösung für Ihr Problem finden, haben Sie folgende Möglichkeiten:
- Sie können sich an die Community wenden, indem Sie Fragen auf Stack Overflow stellen oder mit dem Tag
google-cloud-schedulernach ähnlichen Problemen suchen. - Öffnen Sie eine Supportanfrage, indem Sie sich an den Google Cloud Kundendienst wenden.
- Öffnen Sie einen Fehler oder eine Featureanfrage über die öffentliche Problemverfolgung.
Weitere Informationen finden Sie unter Cloud Scheduler-Support.