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. Dies wird als data gesendet. -Parameter in der Pub/Sub-Nachricht. 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 als Google APIs Dienstkonto.

App Engine-HTTP-Ziel

Wenn Sie den Zieltyp App Engine HTTP auswählen, müssen Sie den Parameter App Engine-Anwendung und die Region, die dem aktuellen Projekt zugeordnet ist Wenn andere App Engine-Anwendungen außerhalb der aktuellen HTTP und nicht App Engine HTTP. Die Zielfirewallregeln 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 die Handler für den Cloud Scheduler-Job. Wenn keine Angabe gemacht wird, wird der Wert default wird angenommen. Die Dienstnamen finden Sie in der Google Cloud Console:

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

  4. Geben Sie optional die Instanz an. Wenn die Richtlinie nicht konfiguriert ist, kann jede verfügbare Instanz verwendet werden können. 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. Diese Daten wird im Text der Anfrage als Byte gesendet, wenn entweder der Die HTTP-Methode POST oder PUT ist ausgewählt.

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

HTTP-Ziel

Wenn Sie den Zieltyp HTTP auswählen:

  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 benötigten Header 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.

Mit Cloud Scheduler können Sie geplante Arbeitseinheiten einrichten, als Cronjobs, die in manchen Fällen an Ziele gesendet werden wiederkehrender Zeitplan, auch Jobintervall oder -häufigkeit.

Es darf immer nur eine Instanz eines Jobs ausgeführt werden. Selten kann es vorkommen, dass mehrere Instanzen angefordert. 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

Stellen Sie sicher, dass Sie Ihre Umgebung eingerichtet haben für Cloud Scheduler

Zieltyp auswählen

Cloud Scheduler kann die folgenden Typen von Zielen aufrufen:

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

Cloud Scheduler kann die folgenden Dienste intern aufrufen:

  • Cloud Functions
  • 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 Sichern 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 Functions).

Job erstellen

Sie können einen Job 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.

    Diese Beschreibung wird in der Konsole neben dem Jobnamen angezeigt.

  6. Legen Sie die Häufigkeit fest. für die 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. Hier können Sie eine beliebige Zeichenfolge angeben Mit unix-cron kompatibel . Weitere Informationen finden Sie unter Konfigurieren Sie Cronjob-Zeitpläne.

  7. Wählen Sie in der Liste Zeitzone die Zeitzone aus, die für den Job verwendet werden soll. ein.

  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: müssen Sie die App Engine-Anwendung und die mit des aktuellen Projekts.

  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 durch diese Frist einzuhalten, 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. Ziel-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 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. 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.

  • URI: der voll qualifizierte URI des Endpunkts die der Job kontaktiert.

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 werden die Standardeinstellungen ausreichend sein.

  • 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 Thema dieses Themas als Google API-Dienstkonto an.

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. Die der hier angegebene String kann ein beliebiger unix-cron kompatiblen String. 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. Dies wird als data gesendet. -Parameter in der Pub/Sub-Nachricht. Ein Beispiel, bei dem 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 verfügbar App, die mit dem aktuellen Projekt verknüpft ist. Wenn Sie eine andere App Engine-Anwendung außerhalb Ihres aktuellen Projekts, wählen Sie HTTP als das 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 auf dem handlers-Element in der Datei app.yaml.

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 Standort, 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 bzw. dem der Job auszuführen ist, z. B. every 3 hours. Die von Ihnen angegebene Zeichenfolge können beliebige unix-cron kompatiblen String. 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.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz:

  • Geben Sie die relative URL des App Engine-Endpunkts an, den die angeschrieben wird. 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 ausgeführten App Engine-Dienstes an Den Handler für den Cloud Scheduler-Job. Wenn keine Angabe gemacht wird, 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. Die verfügbaren Versionen finden Sie in der Google Cloud Console:

  • Geben Sie optional die Instanz an. Wenn die Richtlinie nicht konfiguriert ist, werden alle verfügbaren Instanzen verwendet werden können. Die verfügbaren Versionen finden Sie 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. Ziel-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, selbst wenn Sie zugehörigen Job löschen.

  • 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 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 nicht den Jobstandort 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. 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.

  • URI: der voll qualifizierte URI des Endpunkts die der Job kontaktiert.

Andere Parameter werden in der gcloud-Befehlszeilenreferenz.

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 Thema dieses Themas als Google API-Dienstkonto an.

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, selbst wenn Sie zugehörigen Job löschen.

  • 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 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 nicht den Jobstandort aktualisieren.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem bzw. dem der Job auszuführen ist, z. B. every 3 hours. Die von Ihnen angegebene Zeichenfolge können beliebige unix-cron kompatiblen String. 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. Dies wird als data gesendet. -Parameter in der Pub/Sub-Nachricht. 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, wählen Sie HTTP als das Ziel und nicht App Engine HTTP.

App Engine-Endpunkte können mit login: admin auf dem handlers-Element in der Datei app.yaml.

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, selbst wenn Sie zugehörigen Job löschen.

  • LOCATION: der Standort, an dem Ihr Job ausgeführt wird Dies entspricht dem Standort der App Engine-Zielanwendung. Wenn Sie keinen Speicherort angeben, verwendet die gcloud CLI Ihren standardmäßigen Standort. Wenn sich der zu bearbeitende Job in einem anderen Standort verwenden möchten, müssen Sie zusätzlich zum NAME, damit Ihr Job identifiziert werden kann. Sie können nicht den Jobstandort aktualisieren.

  • SCHEDULE: Häufigkeit oder Jobintervall, mit dem bzw. dem der Job auszuführen ist, z. B. every 3 hours. Die von Ihnen angegebene Zeichenfolge können beliebige unix-cron kompatiblen String. 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.

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 zu pausierenden Job aus.

  3. Klicken Sie auf Pausieren.

gcloud

  1. Öffnen Sie auf dem Computer, auf dem Sie das Programm installiert haben, ein Terminalfenster. gcloud CLI verwenden können.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs pause MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des zu pausierenden Jobs.

Während 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 auf dem Computer, auf dem Sie das Programm installiert haben, ein Terminalfenster. gcloud CLI verwenden können.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs resume MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des Jobs, der fortgesetzt werden soll.

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 zu löschenden Job aus.

  3. Klicken Sie auf Löschen.

gcloud

  1. Öffnen Sie auf dem Computer, auf dem Sie das Programm installiert haben, ein Terminalfenster. gcloud CLI verwenden können.

  2. Führen Sie diesen Befehl aus:

     gcloud scheduler jobs delete MY_JOB
    

    Ersetzen Sie MY_JOB durch den Namen des Jobs, der ausgewählt werden soll. gelöscht.