Cronjobs verwalten

Pub/Sub-Ziel

Wenn Sie den Zieltyp Pub/Sub auswählen:

  1. Geben Sie den Namen des Themas an, zu dem der Job veröffentlicht wird. Dies ist ein Pub/Sub-Thema, das Sie in Ihrem Projekt bereits eingerichtet haben.

  2. Geben Sie eine Nachricht an, die an das Thema gesendet werden soll. Sie wird in der Pub/Sub-Nachricht als Parameter data gesendet. Ein Beispiel, bei dem finden Sie in der Kurzanleitung.

  3. Fügen Sie alle erforderlichen Nachrichtenattribute hinzu.

  4. Richten Sie zusätzliche Konfigurationen über den Abschnitt Configure optional settings ein.

Cloud Scheduler veröffentlicht Nachrichten zu diesem Thema mit einem Google APIs-Dienstkonto.

App Engine-HTTP-Ziel

Wenn Sie den Zieltyp App Engine-HTTP auswählen, müssen Sie die App Engine-Anwendung und die Region verwenden, die mit dem aktuellen Projekt verknüpft sind. Wenn Sie eine andere App Engine-Anwendung außerhalb Ihres aktuellen Projekts verwenden möchten, wählen Sie HTTP als Ziel und nicht App Engine-HTTP aus. Die Ziel-Firewallregeln müssen Anfragen aus dem IP-Bereich 0.1.0.2/32 zulassen.

Legen Sie das Format so fest:

  1. Wählen Sie in der Liste Zieltyp die Option App Engine-HTTP aus.

  2. Geben Sie den Namen des App Engine-Dienstes an, der den Handler für den Cloud Scheduler-Job ausführt. Ist kein Name angegeben, wird der Dienst default verwendet. Wenn Sie ihn festlegen möchten, finden Sie die Dienstnamen in der Google Cloud Console.

  3. Geben Sie optional die Version an. Wenn Sie keine Version angeben, wird die aktuelle Version verwendet. Verfügbare Versionen finden Sie in der Google Cloud Console:

  4. Geben Sie optional die Instanz an. Wenn Sie keine Instanz angeben, wird eine beliebige verfügbare Instanz verwendet. Die verfügbaren Versionen finden Sie in der Google Cloud Console:

  5. Geben Sie die relative URL des App Engine-Endpunkts an, den der Job enthält kontaktiert. Wenn Sie den Standardwert / verwenden, verwendet der Job PROJECT-ID.appspot.com, wobei PROJECT-ID Ihre aktuelle Projekt-ID ist.

  6. Legen Sie die HTTP-Methode fest, die bei Ausführung des Jobs verwendet werden soll. Die Standardeinstellung ist POST.

  7. Fügen Sie der Anfrage alle erforderlichen Header hinzu.

  8. Geben Sie optional die Textdaten an, die an das Ziel gesendet werden sollen. Die Daten werden im Anfragetext als Byte gesendet, wenn die HTTP-Methode POST oder PUT ausgewählt wurde.

Ziel-App Engine-Endpunkte müssen sich im selben Projekt befinden und können gesichert mit login: admin im Element handlers im app.yaml-Datei.

HTTP-Ziel

Wenn Sie den Zieltyp HTTP auswählen, gilt Folgendes:

  1. Geben Sie die vollständig qualifizierte URL des Endpunkts an, an den sich der Job richtet.

  2. Geben Sie die HTTP-Methode an. Die Standardeinstellung ist POST.

  3. Geben Sie optional die Daten an, die an das Ziel gesendet werden sollen. Diese Daten werden gesendet an Den Text der Anfrage als Byte, wenn die HTTP-Methode POST oder PUT gleich ausgewählt.

  4. Fügen Sie alle erforderlichen Überschriften hinzu.

  5. Informationen zum Erstellen eines HTTP-Zieljobs, der eine Authentifizierung erfordert, finden Sie unter Authentifizierung mit HTTP-Zielen verwenden

Auf ein Ziel ausgerichtete HTTP-Endpunkte müssen öffentlich zugänglich sein.

Sie können Cloud Scheduler zum Einrichten geplanter Arbeitseinheiten, als Cronjobs, die in einigen Fällen an Ziele gesendet werden wiederkehrender Zeitplan, auch Jobintervall oder -häufigkeit.

Es darf immer nur eine Instanz eines Jobs ausgeführt werden. In seltenen Fällen können mehrere Instanzen desselben Jobs angefragt werden. Daher sollte Ihr Anfrage-Handler idempotent ist, und Ihr Code sollte sicherzustellen, dass es in diesem Fall keine schädlichen Nebenwirkungen gibt.

Cloud Scheduler ist für wiederkehrende Jobs vorgesehen. Wenn Sie eine Job nur einmal ausführen. Mit Cloud Tasks lassen sich bis zu 30 Tage im Voraus eine Aufgabe erledigen.

Hinweise

Prüfen Sie, ob Sie Ihre Umgebung für Cloud Scheduler eingerichtet haben.

Zieltyp auswählen

Cloud Scheduler kann die folgenden Zieltypen aufrufen:

Zieldienste aufrufen, die auf internen eingehenden Traffic beschränkt sind

Cloud Scheduler kann die folgenden Dienste intern aufrufen:

  • Cloud Run-Funktionen
  • Cloud Run (in der run.app-URL, nicht in benutzerdefinierten Domains)

Um diese Ziele intern aufzurufen, muss sich das Ziel im selben Google Cloud-Projekt oder VPC Service Controls-Perimeter als Ihr Cloud Scheduler-Job.

Weitere Informationen zum Schützen von Zielen durch Einschränken von eingehendem Traffic finden Sie unter Eingehenden Traffic einschränken (für Cloud Run) und Netzwerkeinstellungen konfigurieren (für Cloud Run-Funktionen).

Job erstellen

Sie können einen Job entweder mit der Google Cloud Console oder der Google Cloud CLI erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.

    Zu Cloud Scheduler

  2. Klicken Sie auf Job erstellen.

  3. Geben Sie im Feld Name einen eindeutigen Namen für den Job ein. Projekt arbeiten.

    Nachdem Sie den zugehörigen Job gelöscht haben, können Sie einen Jobnamen in einem Projekt arbeiten.

  4. Wählen Sie in der Liste Region eine Region aus.

    Wenn Sie ein App Engine-HTTP-Ziel verwenden, müssen Sie dasselbe Ziel Region als Ihre App Engine-Anwendung. Weitere Informationen finden Sie unter Unterstützte Regionen nach Ziel.

  5. Geben Sie optional eine kurze Beschreibung des Jobs an, in der z. B. der Zweck des Jobs als Erinnerungshilfe genannt ist.

    Die Beschreibung wird in der Konsole neben dem Jobnamen angezeigt.

  6. Geben Sie mit einem Konfigurationsstring an, mit welcher Häufigkeit der Job ausgeführt werden soll.

    Mit dem String 0 1 * * 0 wird der Job beispielsweise einmal pro Woche um 1:00 Uhr ausgeführt. jeden Sonntagmorgen. Der hier angegebene String kann ein beliebiger Unix-Cron-kompatibler String sein. Weitere Informationen finden Sie unter Zeitpläne für Cronjobs konfigurieren.

  7. Wählen Sie in der Liste Zeitzone die Zeitzone für den Jobplan aus.

  8. Klicken Sie auf Weiter.

  9. Geben Sie den Zieltyp an:

    • HTTP

    • Pub/Sub: Sie müssen geben Sie den Namen des Pub/Sub-Themas an, die bereits in Ihrem Projekt eingerichtet sind und in dem der Job veröffentlicht wird.

    • App Engine-HTTP: Sie müssen die App Engine-Anwendung und die Region verwenden, die mit dem aktuellen Projekt verknüpft ist.

  10. Klicken Sie auf Weiter.

  11. Optional: Klicken Sie zum Konfigurieren eines Wiederholungsverhaltens auf Konfigurieren Sie optionale Einstellungen. Zur Angabe der Dauer verwenden Sie eine Sequenz von nicht negativen Ganzzahlen mit den folgenden Einheitensuffixen:

    • h: Stunde
    • m: Minute
    • s: Sekunde
    • ms – Millisekunde
    • us – Mikrosekunde
    • ns – Nanosekunde

    Negative Werte und Bruchwerte sind nicht zulässig. Das Feld Max retry duration unterstützt nur die Werte h, m und s. Sowohl Min backoff duration als auch Max backoff duration unterstützen das vollständige Set.

  12. Konfigurieren Sie optional für HTTP- und App Engine-HTTP-Ziele eine Frist für Jobversuche. Wenn der Anfrage-Handler nicht innerhalb dieses Zeitlimits antwortet, wird die Anfrage abgebrochen und der Versuch als fehlgeschlagen markiert. Cloud Scheduler wiederholt den Job gemäß der Wiederholungskonfiguration.

  13. Klicken Sie auf Erstellen, um den Job zu erstellen und zu speichern.

    Der Job wird jetzt mit der angegebenen Häufigkeit ausgeführt.

gcloud

Wenn Sie einen Job über die gcloud CLI erstellen, verwenden Sie andere Befehle für jeden Zieltyp:

HTTP

Sie können Anfragen an beliebige HTTP- oder HTTPS-Endpunkte senden. Auf ein Ziel ausgerichtete HTTP-Endpunkte müssen öffentlich zugänglich sein.

gcloud scheduler jobs create http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, selbst wenn Sie zugehörigen Job löschen.

  • LOCATION: Der Standort, an dem der Job ausgeführt werden soll.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem der Job ausgeführt werden soll, z. B. every 3 hours. Die den Sie hier angeben, kann beliebiges unix-cron kompatiblen String. Die alte Cron-Syntax von App Engine wird zwar nicht mehr empfohlen, wird aber für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Konfigurieren Sie Cronjob-Zeitpläne.

  • URI: der voll qualifizierte URI des Endpunkts an den der Job gesendet wird.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz:

  • Geben Sie optional die HTTP-Methode an. Der Standardwert ist POST.

  • Geben Sie optional die Daten an, die an das Ziel gesendet werden sollen. Diese Daten sind im Text der Anfrage als Byte gesendet, wenn entweder POST oder PUT HTTP-Methode ist ausgewählt.

  • Legen Sie optional die Wiederholungswerte fest, die angeben, wie die App Engine im Falle eines Fehlers wiederholt werden muss. In den meisten Fällen sind die Standardeinstellungen ausreichend.

  • Informationen zum Erstellen eines HTTP Target-Jobs, der eine Authentifizierung erfordert, finden Sie unter Authentifizierung mit HTTP-Zielen verwenden

Beispiel

gcloud scheduler jobs create http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET

Pub/Sub

Sie müssen ein bereits eingerichtetes Pub/Sub-Thema verwenden in Ihrem Projekt. Cloud Scheduler veröffentlicht Nachrichten an als Google API-Dienstkonto.

gcloud scheduler jobs create pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, selbst wenn Sie zugehörigen Job löschen.

  • LOCATION: Der Standort, an dem der Job ausgeführt werden soll.

  • SCHEDULE: Häufigkeit oder Job Intervall, in dem der Job ausgeführt werden soll, z. B. every 3 hours. Der hier angegebene String kann ein beliebiger Unix-Cron-kompatibler String sein. Die alte Cron-Syntax von App Engine wird zwar nicht mehr empfohlen, aber für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Konfigurieren Sie Cronjob-Zeitpläne.

  • TOPIC: der Name des Themas, zu dem der Job gehört veröffentlicht. Verwenden Sie das Flag --message-body oder --message-body-from-file, um eine Nachricht anzugeben, die an das Thema gesendet werden soll. Sie wird in der Pub/Sub-Nachricht als Parameter data gesendet. Ein Beispiel dafür finden Sie in der Kurzanleitung.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz.

Beispiel

gcloud scheduler jobs create pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic \
    --message-body "Hello"

App Engine HTTP

Das Ziel App Engine HTTP ist nur für die App Engine-Anwendung verfügbar, die dem aktuellen Projekt zugeordnet ist. Wenn Sie eine andere App Engine-Anwendung außerhalb Ihres aktuellen Projekts verwenden möchten, wählen Sie HTTP als Ziel und nicht App Engine HTTP. Die Zielfirewallregeln müssen Anfragen aus dem IP-Bereich 0.1.0.2/32 zulassen.

App Engine-Endpunkte können mit login: admin für das Element handlers in der Datei app.yaml gesichert werden.

gcloud scheduler jobs create app-engine \
    --JOB=JOB \
    --location=LOCATION \
    --schedule=SCHEDULE

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, selbst wenn Sie zugehörigen Job löschen.

  • LOCATION: Der Speicherort, an dem der Job ausgeführt werden soll. Dieser muss mit dem Speicherort Ihrer App Engine-Anwendung übereinstimmen.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem der Job auszuführen ist, z. B. every 3 hours. Der hier angegebene String kann ein beliebiger Unix-Cron-kompatibler String sein. Obwohl wir ihre Verwendung nicht mehr empfehlen, Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Zeitpläne für Cronjobs konfigurieren.

Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben:

  • Geben Sie die relative URL des App Engine-Endpunkts an, an den sich der Job richtet. Wenn Sie den Standardwert / verwenden, verwendet der Job PROJECT-ID.appspot.com, wobei PROJECT-ID Ihre aktuelle Projekt-ID ist.

  • Geben Sie den Namen des App Engine-Dienstes an, der den Handler für den Cloud Scheduler-Job ausführt. Wenn nichts angegeben ist, wird der Wert default wird angenommen. Sie können die Dienstnamen auch in der Google Cloud Console.

  • Legen Sie optional die HTTP-Methode fest, die bei Ausführung des Jobs verwendet werden soll. Der Standardwert ist POST.

  • Geben Sie optional die Version an. Wenn die Richtlinie nicht konfiguriert ist, -Version verwendet wird. Sie finden die verfügbaren Versionen in der Google Cloud Console.

  • Geben Sie optional die Instanz an. Wenn Sie keine Instanz angeben, wird eine beliebige verfügbare Instanz verwendet. Sie finden die verfügbaren Versionen in der Google Cloud Console.

  • Geben Sie optional die Daten an, die an das Ziel gesendet werden sollen. Diese Daten werden gesendet im Text der Anfrage als Byte, wenn entweder die HTTP-Anfrage POST oder PUT -Methode ausgewählt ist.

  • Legen Sie optional die Wiederholungswerte fest, die angeben, wie die App Engine im Falle eines Fehlers wiederholt werden muss. In den meisten Fällen sind die Standardeinstellungen ausreichend.

Beispiel

gcloud scheduler jobs create app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"

Job bearbeiten

Sie können die Konfiguration eines Jobs bearbeiten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.

    Zu Cloud Scheduler

  2. Wählen Sie den Job aus, den Sie bearbeiten möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Folgen Sie der Anleitung, um den Zeitplan zu definieren, die Ausführung zu konfigurieren optionale Einstellungen beim Erstellen eines Jobs konfigurieren.

gcloud

Wenn Sie einen Job über die gcloud CLI bearbeiten, verwenden Sie andere Befehle für jeden Zieltyp:

HTTP

Sie können Anfragen an beliebige HTTP- oder HTTPS-Endpunkte senden. Auf ein Ziel ausgerichtete HTTP-Endpunkte müssen öffentlich zugänglich sein.

gcloud scheduler jobs update http JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --uri=URI

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, auch wenn Sie den zugehörigen Job gelöscht haben.

  • LOCATION: Der Standort, an dem Ihr Job ausgeführt wird. Wenn Sie keinen Speicherort angeben, verwendet die gcloud CLI Ihren standardmäßigen Standort. Wenn sich der Job, den Sie bearbeiten möchten, an einem anderen Speicherort befindet, müssen Sie zusätzlich zu NAME den Speicherort angeben, damit der Job gefunden werden kann. Sie können den Standort des Jobs nicht aktualisieren.

  • SCHEDULE: Häufigkeit oder Job Intervall, in dem der Job ausgeführt werden soll, z. B. every 3 hours. Die den Sie hier angeben, kann beliebiges unix-cron kompatiblen String. Die alte Cron-Syntax von App Engine wird zwar nicht mehr empfohlen, aber für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Konfigurieren Sie Cronjob-Zeitpläne.

  • URI: der vollständig qualifizierte URI des Endpunkts, an den sich der Job richtet.

Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben.

Beispiel

gcloud scheduler jobs update http my-http-job \
    --schedule "0 1 * * 0" \
    --uri "http://myproject/my-url.com" \
    --http-method GET

Pub/Sub

Sie müssen ein bereits eingerichtetes Pub/Sub-Thema verwenden in Ihrem Projekt. Cloud Scheduler veröffentlicht Nachrichten an als Google API-Dienstkonto.

gcloud scheduler jobs update pubsub JOB \
    --location=LOCATION \
    --schedule=SCHEDULE \
    --topic=TOPIC

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, auch wenn Sie den zugehörigen Job gelöscht haben.

  • LOCATION: Der Standort, an dem Ihr Job ausgeführt wird. Wenn Sie keinen Speicherort angeben, verwendet die gcloud CLI Ihren standardmäßigen Standort. Wenn sich der Job, den Sie bearbeiten möchten, an einem anderen Speicherort befindet, müssen Sie zusätzlich zu NAME den Speicherort angeben, damit der Job gefunden werden kann. Sie können nicht den Jobstandort aktualisieren.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem der Job auszuführen ist, z. B. every 3 hours. Der hier angegebene String kann ein beliebiger Unix-Cron-kompatibler String sein. Obwohl wir ihre Verwendung nicht mehr empfehlen, Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Konfigurieren Sie Cronjob-Zeitpläne.

  • TOPIC: der Name des Themas, zu dem der Job gehört veröffentlicht. Verwenden Sie das Flag --message-body oder --message-body-from-file, um eine Nachricht anzugeben, die an das Thema gesendet werden soll. Sie wird in der Pub/Sub-Nachricht als Parameter data gesendet. Ein Beispiel, bei dem finden Sie in der Kurzanleitung.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz.

Beispiel

gcloud scheduler jobs update pubsub myjob \
    --schedule "0 1 * * 0" \
    --topic cron-topic --message-body "Hello"

App Engine HTTP

Das Ziel App Engine HTTP ist nur für die App Engine verfügbar App, die mit dem aktuellen Projekt verknüpft ist. Wenn Sie eine andere App Engine-Anwendung außerhalb Ihres aktuellen Projekts verwenden möchten, wählen Sie HTTP als Ziel und nicht App Engine HTTP.

App Engine-Endpunkte können mit login: admin für das Element handlers in der Datei app.yaml gesichert werden.

gcloud scheduler jobs update app-engine JOB \
    --location=LOCATION \
    --schedule=SCHEDULE

Ersetzen Sie Folgendes:

  • JOB: ein Jobname, der in der Projekt arbeiten. Sie können Jobnamen in einem Projekt nicht wiederverwenden, auch wenn Sie den zugehörigen Job gelöscht haben.

  • LOCATION: Der Standort, an dem der Job ausgeführt wird (entspricht dem Standort Ihrer Ziel-App Engine-Anwendung). Wenn Sie den Speicherort nicht angeben, verwendet die gcloud CLI Ihren Standardspeicherort. Wenn sich der zu bearbeitende Job in einem anderen Standort verwenden möchten, müssen Sie neben dem Attribut NAME, damit Ihr Job identifiziert werden kann. Sie können den Standort des Jobs nicht aktualisieren.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem der Job auszuführen ist, z. B. every 3 hours. Der hier angegebene String kann ein beliebiger Unix-Cron-kompatibler String sein. Obwohl wir ihre Verwendung nicht mehr empfehlen, Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt.

    Weitere Informationen finden Sie unter Zeitpläne für Cronjobs konfigurieren.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz.

Beispiel

gcloud scheduler jobs update app-engine my-appengine-job \
    --schedule "0 1 * * 0" \
    --relative-url "/cron-handler"

Job anhalten

Sie können die Ausführung eines Jobs anhalten.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Scheduler auf.

    Zu Cloud Scheduler

  2. Wählen Sie den Job aus, den Sie pausieren möchten.

  3. Klicken Sie auf Pausieren.

gcloud

  1. Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs pause MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des Jobs, den Sie pausieren möchten.

Wenn ein Job pausiert ist, können Sie ihn auch bearbeiten. Nach der Bearbeitung des Jobs pausiert, bis Sie sie fortsetzen.

Job fortsetzen

Sie können die Ausführung eines pausierten Jobs fortsetzen.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Scheduler auf.

    Zu Cloud Scheduler

  2. Wählen Sie den Job aus, den Sie fortsetzen möchten.

    Der Job muss bereits pausiert sein.

  3. Klicken Sie auf Fortsetzen.

gcloud

  1. Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs resume MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des Jobs, den Sie fortsetzen möchten.

Job löschen

Sie können einen Job löschen.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Scheduler auf.

    Zu Cloud Scheduler

  2. Wählen Sie den Job aus, den Sie löschen möchten.

  3. Klicken Sie auf Löschen.

gcloud

  1. Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs delete MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des zu löschenden Jobs.