Auf dieser Seite wird beschrieben, wie Sie Probleme mit Cloud Scheduler beheben.
Cloud Scheduler veröffentlicht am Anfang und am Ende jeder Jobausführung Logs. Sie können die Logs für einen bestimmten Job abrufen, ansehen und analysieren, einschließlich der Audit-Logs, die für Cloud Scheduler verfügbar sind. Weitere Informationen finden Sie unter Logs ansehen.
Wenn ein Cloud Scheduler-Job standardmäßig keine Bestätigung von seinem Zieldienst (dem Jobanfrage-Handler) erhält, gilt der Job als fehlgeschlagen. Cloud Scheduler wiederholt den Job gemäß dem von Ihnen konfigurierten exponentiellen Backoff.
Informationen zu Vorfällen, die sich auf Google Cloud -Dienste 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 Downstream-Dienst fehl
Ein Jobfehler kann auf ein Problem in einem Downstream-Dienst zurückzuführen sein, auf den Cloud Scheduler abzielt, z. B. Cloud Run, und nicht auf Cloud Scheduler selbst. Sie können ein Problem mit einem Downstream-Dienst vermuten, wenn die folgenden Bedingungen erfüllt sind:
- Berechtigungen für Cloud Scheduler sind korrekt eingerichtet.
- Cloud Scheduler kann den Zieldienst erreichen.
- Fehlermeldungen in den Cloud Scheduler-Ausführungslogs stammen vom Downstream-Dienst.
So beheben Sie das Problem:
- Downstream-Dienst direkt aufrufen: Prüfen Sie, ob der Downstream-Dienst ohne Cloud Scheduler erfolgreich aufgerufen werden kann. Ein erfolgreicher Aufruf deutet darauf hin, dass das Problem wahrscheinlich durch Cloud Scheduler verursacht wird. Bei einem erfolglosen Aufruf muss der Downstream-Dienst weiter debuggt werden.
- Protokolle des Zieldienstes prüfen: Prüfen Sie die Protokolle des Zieldienstes, ermitteln Sie die ausgegebenen Fehler und beheben Sie sie entsprechend.
- Nach Vorgängen mit langer Ausführungszeit suchen: Wenn Cloud Scheduler für Vorgänge mit langer Ausführungszeit (mehr als 30 Minuten) einen HTTP-Fehler
504
zurückgibt, prüfen Sie die Logs des Zieldienstes, um festzustellen, ob die Ausführung erfolgreich war oder fehlgeschlagen ist, da der Zieldienst möglicherweise ein längeres Anfrage-Timeout hat. In diesem Fall tritt für Cloud Scheduler ein Zeitüberschreitungsfehler auf, nicht aber für den Zieldienst.
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 Jobausführungen unterbrechen und zu Fehlern des Typs „Berechtigung verweigert“ führen. Audit-Logs enthalten eine detaillierte Aufzeichnung aller Berechtigungsänderungen, sodass Sie die Quelle dieser Probleme ermitteln können.
Wenn Ihr Cloud Scheduler-Job mit einem Berechtigungsfehler fehlschlägt, wird in den Ausführungsprotokollen 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 das Problem zu beheben:
IAM-Rollen prüfen, die dem Dienst-Agent zugewiesen sind: Der Cloud Scheduler-Dienst-Agent benötigt die Rolle Cloud Scheduler Service Agent (
roles/cloudscheduler.serviceAgent
). Ohne diese Rolle schlagen Cloud Scheduler-Jobs fehl. Sie können Ihrem Cloud Scheduler-Dienst-Agent die Rolle manuell zuweisen. Eine manuelle Zuweisung ist nur erforderlich, wenn Sie die Cloud Scheduler API vor dem 19. März 2019 aktiviert oder die Rolle des Cloud Scheduler-Dienst-Agents entfernt haben. Weitere Informationen finden Sie unter Cloud Scheduler-Dienst-Agent-Rolle zuweisen.Berechtigungen des Dienstkontos prüfen: Das Dienstkonto, das mit Ihrem Job verknüpft ist, muss die richtigen Berechtigungen und den richtigen Bereich haben, um den Zieldienst aufzurufen. Dazu gehören 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 automatisch das generierte Token. Für Cloud Run und Cloud Run Functions müssen Sie beispielsweise die Rolle
Cloud 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 Google Cloud-Feature, mit dem Sie einen sicheren Perimeter einrichten können, der vor Daten-Exfiltration schützt. Damit Sie ermitteln 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 möchten. 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.
Um den Umfang eines Problems zu ermitteln, können Sie VPC Service Controls-Fehler aus Audit-Logs abrufen.
-
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Logging ist.
Fragen Sie die Audit-Logs anhand der folgenden Kriterien ab:
severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"
Fehlermeldungen können beispielsweise den folgenden Text enthalten:
Request is prohibited by organization's policy
Request violates VPC Service Controls
Weitere Informationen zu Problemen, die beim Konfigurieren von VPC Service Controls auftreten können, finden Sie unter Häufige Probleme beheben.
-
Private Endpunkte überprüfen: Cloud Scheduler kann nur bestimmte private Endpunkte wie Cloud Run, Cloud Run-Funktionen und Google Cloud APIs innerhalb eines VPC Service Controls-Perimeters aufrufen. Prüfen Sie die Einstellungen für eingehenden Traffic für Ihren Zieldienst, z. B. unter Netzwerkzugriff für Cloud Run einschränken, und die Berechtigungen des angehängten Dienstkontos. Möglicherweise erhalten Sie eine Fehlermeldung
URL_ERROR-ERROR_DNS
. Weitere Informationen finden Sie in diesem Dokument unter Job schlägt fehl, weil das Ziel nicht erreichbar ist.
Job schlägt aufgrund eines nicht erreichbaren Zielpfads 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 erhaltener Fehlermeldung einen der folgenden Schritte aus, um das Problem zu beheben:
URL_ERROR-ERROR_AUTHENTICATION
: Es wird ein HTTP-401 (Unauthorized)
- oder HTTP-407 (Proxy Authentication Required)
-Fehler zurückgegeben. Für das Ziel ist eine Authentifizierung erforderlich. Die Cloud Scheduler-Anfrage enthält jedoch kein gültiges Authentifizierungstoken. Beispielsweise fehlt der Anfrage ein Autorisierungsheader oder die Anmeldedaten sind ungültig. Prüfen Sie die Authentifizierungseinstellungen Ihres Jobs. 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 z. B. daran liegen, dass der Hostname nicht vorhanden ist 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 und achten Sie beim Aufrufen eines privaten Endpunkts darauf, dass er von Cloud Scheduler unterstützt wird, und prüfen Sie die Ingress-Einstellungen.URL_ERROR-ERROR_NOT_FOUND
: Der Webserver gibt einen HTTP-Fehler404 Not Found
zurück. Prüfen Sie, ob die Ziel-URL korrekt ist und die Ressource vorhanden ist.URL_ERROR-ERROR_OTHER
: Dies bezieht sich auf einen allgemeinen HTTP-4xx
-Fehler, der zuvor nicht detailliert beschrieben wurde. Sehen Sie in den Logs nach, um den ursprünglichen HTTP-Antwortcode abzurufen. Wenn Sie einen HTTP-403
-Fehler erhalten, lesen Sie in diesem Dokument den Abschnitt Job schlägt mit einem Berechtigungsfehler fehl.URL_UNREACHABLE-UNREACHABLE_5xx
: Das Ziel gibt einen HTTP-Fehler5xx
oder429
zurück. Möglicherweise handelt es sich um einen vorübergehenden Zustand, z. B. einen überlasteten Server. Prüfen Sie die Logs des Ziel-Targets, um das Problem zu beheben.URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET
: Die Verbindung wurde vom Peer zurückgesetzt. Prüfen Sie, ob ein Problem auf dem externen Server vorliegt.URL_UNREACHABLE-UNREACHABLE_ERROR
: Dies weist auf einen Netzwerkfehler hin. Prüfen Sie, ob die Ziel-URL korrekt ist und ob Firewallregeln den Zugriff blockieren.
Probleme bei der Jobausführung
Cloud Scheduler-Jobs werden zu festgelegten Zeiten oder in regelmäßigen Abständen ausgeführt. Die folgenden Probleme können während der Ausführung eines Jobs auftreten.
Ein Job, der bisher 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 mit 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 das Problem zu beheben.
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 eine Zeitzone mit dem Flag --time-zone
angeben. Andernfalls wird die koordinierte Weltzeit (Coordinated Universal Time, UTC) oder UTC
als Standardzeitzone verwendet.
Dieses Problem tritt auf, wenn ein Job mit einer anderen Zeitzone als UTC konfiguriert ist und die Ausführung aufgrund von Änderungen der Sommerzeit unregelmäßig wird. Dieses Verhalten ist normal.
Wenn für Ihren Job ein sehr genauer Rhythmus erforderlich ist, sollten Sie eine Zeitzone auswählen, in der die Sommerzeit nicht berücksichtigt wird. Um das Problem ganz zu vermeiden, sollten Sie den Zeitplan für Ihren Job so konfigurieren, dass die UTC-Zeitzone verwendet wird.
Weitere Informationen finden Sie unter Cronjob-Format und Zeitzone.
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 Support von der Community erhalten, indem Sie Fragen auf Stack Overflow stellen oder mit dem Tag
google-cloud-scheduler
nach ähnlichen Problemen suchen. - Wenden Sie sich an den Google Cloud Customer Care, um eine Supportanfrage zu stellen.
- Sie können über die öffentliche Problemverfolgung einen Fehler melden oder eine Funktionsanfrage stellen.
Weitere Informationen finden Sie unter Cloud Scheduler-Support.