Pub/Sub-Ziel
Wenn Sie den Zieltyp Pub/Sub auswählen: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.
Geben Sie eine Nachricht an, die an das Thema gesendet werden soll. Sie wird als
data
-Parameter in der Pub/Sub-Nachricht gesendet. Ein entsprechendes Beispiel finden Sie in der Kurzanleitung.Fügen Sie alle erforderlichen Nachrichtenattribute hinzu.
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 die App Engine-Anwendung und die dem aktuellen Projekt zugeordnete Region verwenden. Wenn Sie eine andere App Engine-Anwendung außerhalb des 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.Legen Sie das Format so fest:
Wählen Sie in der Liste Zieltyp die Option App Engine HTTP aus.
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 Dienst
default
angenommen. Sie können die Dienstnamen in der Google Cloud Console festlegen.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.
Geben Sie optional die Instanz an. Wenn die Richtlinie nicht konfiguriert ist, kann jede verfügbare Instanz verwendet werden. Verfügbare Versionen finden Sie in der Google Cloud Console.
Geben Sie die relative URL des App Engine-Endpunkts an, den der Job kontaktiert. Wenn Sie den Standardwert
/
verwenden, verwendet der JobPROJECT-ID.appspot.com
, wobeiPROJECT-ID
Ihre aktuelle Projekt-ID ist.Legen Sie die HTTP-Methode fest, die bei Ausführung des Jobs verwendet werden soll. Die Standardeinstellung ist
POST
.Fügen Sie der Anfrage alle erforderlichen Header hinzu.
Geben Sie optional die Textdaten an, die an das Ziel gesendet werden sollen. Diese Daten werden im Text der Anfrage in Byte gesendet, wenn die HTTP-Methode
POST
oderPUT
ausgewählt ist.
Die ausgewählten App Engine-Endpunkte müssen sich im selben Projekt befinden und können mit login: admin
im Element handlers
in der Datei app.yaml
gesichert werden.
HTTP-Ziel
Bei Auswahl des Zieltyps HTTP:Geben Sie die vollständig qualifizierte URL des Endpunkts an, an den sich der Job richtet.
Geben Sie die HTTP-Methode an. Die Standardeinstellung ist
POST
.Geben Sie optional die Daten an, die an das Ziel gesendet werden sollen. Diese Daten werden im Text der Anfrage in Byte gesendet, wenn entweder die HTTP-Methode
POST
oderPUT
ausgewählt ist.Fügen Sie alle erforderlichen Überschriften hinzu.
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 (sogenannte Cronjobs) einrichten, die nach einem wiederkehrenden Zeitplan, auch Jobintervall oder -häufigkeit genannt, an Ziele gesendet werden.
Es darf immer nur eine Instanz eines Jobs ausgeführt werden. In seltenen Fällen können mehrere Instanzen desselben Jobs angefordert werden. Daher sollte der Anfrage-Handler idempotent sein und der Code sollte dafür sorgen, dass in diesem Fall keine schädlichen Nebenwirkungen auftreten.
Cloud Scheduler ist für wiederkehrende Jobs vorgesehen. Wenn Sie einen Job nur einmal ausführen müssen, sollten Sie Cloud Tasks verwenden. Damit können Sie eine Aufgabe bis zu 30 Tage im Voraus planen.
Hinweise
Prüfen Sie, ob Sie Ihre Umgebung für Cloud Scheduler eingerichtet haben.
Zieltyp auswählen
Cloud Scheduler kann die folgenden Arten von Zielen aufrufen:
HTTP-Endpunkte
App Engine-Dienste
Zieldienste aufrufen, die auf internen eingehenden Traffic beschränkt sind
Cloud Scheduler kann die folgenden Dienste intern aufrufen:
- Cloud Functions
- Cloud Run (in der URL
run.app
, nicht in benutzerdefinierten Domains)
Damit diese Ziele intern aufgerufen werden können, muss sich das Ziel im selben Google Cloud-Projekt oder VPC Service Controls-Perimeter wie Ihr Cloud Scheduler-Job befinden.
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
Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
Klicken Sie auf Job erstellen.
Geben Sie im Feld Name einen Namen für den Job an, der für das Projekt eindeutig ist.
Nachdem Sie den zugehörigen Job gelöscht haben, können Sie einen Jobnamen in einem Projekt wiederverwenden.
Wählen Sie in der Liste Region eine Region aus.
Wenn Sie ein App Engine-HTTP-Ziel verwenden, müssen Sie dieselbe Region wie Ihre App Engine-Anwendung auswählen. Weitere Informationen finden Sie unter Unterstützte Regionen nach Ziel.
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.
Geben Sie mithilfe eines Konfigurationsstrings die Häufigkeit an, mit der der Job ausgeführt werden soll.
Beispiel: Mit dem String
0 1 * * 0
wird der Job einmal pro Woche um 1:00 Uhr jeden Sonntagmorgen ausgeführt. Hier kann jeder beliebige mit unix-cron kompatible String angegeben werden. Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.Wählen Sie in der Liste Zeitzone die Zeitzone aus, die für den Jobzeitplan verwendet werden soll.
Klicken Sie auf Weiter.
Geben Sie den Zieltyp an:
Pub/Sub: Sie müssen den Namen des Pub/Sub-Themas angeben, das Sie bereits in Ihrem Projekt eingerichtet haben und in dem der Job veröffentlicht wird.
App Engine HTTP: Sie müssen die App Engine-Anwendung und die mit dem aktuellen Projekt verknüpfte Region verwenden.
Klicken Sie auf Weiter.
(Optional) Klicken Sie zum Konfigurieren des Wiederholungsverhaltens auf Optionale Einstellungen konfigurieren. 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 Werteh
,m
unds
. SowohlMin backoff duration
als auchMax backoff duration
unterstützen das vollständige Set.Konfigurieren Sie optional für HTTP- und App Engine-HTTP-Ziele eine Frist für Jobversuche. Wenn der Anfrage-Handler innerhalb dieser Frist nicht antwortet, wird die Anfrage abgebrochen und der Versuch als fehlgeschlagen markiert. Cloud Scheduler wiederholt den Job gemäß der Wiederholungskonfiguration.
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 mit der gcloud CLI erstellen, verwenden Sie für jeden Zieltyp unterschiedliche Befehle:
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
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem der Job ausgeführt werden soll.SCHEDULE
: Häufigkeit oder Jobintervall, in der der Job ausgeführt wird, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
URI
: der voll qualifizierte URI des Endpunkts, den der Job kontaktiert.
Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben:
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 werden im Text der Anfrage in Byte gesendet, wenn die HTTP-Methode
POST
oderPUT
ausgewählt ist.Legen Sie optional die Wiederholungswerte fest, die angeben, wie der App Engine-Job im Falle eines Fehlers wiederholt werden soll. In den meisten Fällen sind die Standardeinstellungen ausreichend.
Informationen zum Erstellen eines HTTP-Zieljobs, 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 Pub/Sub-Thema verwenden, das Sie in Ihrem Projekt bereits eingerichtet haben. Cloud Scheduler veröffentlicht Nachrichten zu diesem Thema als Google API-Dienstkonto.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Ersetzen Sie Folgendes:
JOB
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem der Job ausgeführt werden soll.SCHEDULE
: Häufigkeit oder Jobintervall, in der der Job ausgeführt wird, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
TOPIC
: Der Name des Themas, in dem der Job veröffentlicht wird. Verwenden Sie das Flag--message-body
oder--message-body-from-file
, um eine Nachricht anzugeben, die an das Thema gesendet werden soll. Sie wird alsdata
-Parameter in der Pub/Sub-Nachricht gesendet. Ein entsprechendes Beispiel finden Sie in der quickstart.
Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben.
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 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
aus. Die Zielfirewallregeln müssen Anfragen aus dem IP-Bereich 0.1.0.2/32 zulassen.
App Engine-Endpunkte können mit login: admin
im 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
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem der Job ausgeführt werden soll. Sie muss mit dem Speicherort der App Engine-Anwendung übereinstimmen.SCHEDULE
: Häufigkeit oder Jobintervall, mit der der Job ausgeführt werden soll, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben:
Geben Sie die relative URL des App Engine-Endpunkts an, den der Job kontaktiert. Wenn Sie den Standardwert
/
verwenden, verwendet der JobPROJECT-ID.appspot.com
, wobeiPROJECT-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 Dienst
default
angenommen. Sie können die Namen der Dienste in der Google Cloud Console festlegen.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, wird die aktuell bereitgestellte Version verwendet. Verfügbare Versionen finden Sie in der Google Cloud Console.
Geben Sie optional die Instanz an. Wenn die Richtlinie nicht konfiguriert ist, kann jede verfügbare Instanz verwendet werden. Verfügbare Versionen finden Sie in der Google Cloud Console.
Geben Sie optional die Daten an, die an das Ziel gesendet werden sollen. Diese Daten werden im Text der Anfrage in Byte gesendet, wenn entweder die HTTP-Methode
POST
oderPUT
ausgewählt wird.Legen Sie optional die Wiederholungswerte fest, die angeben, wie der App Engine-Job im Falle eines Fehlers wiederholt werden soll. 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
Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
Wählen Sie den Job aus, den Sie bearbeiten möchten.
Klicken Sie auf Bearbeiten.
Führen Sie die Schritte aus, um den Zeitplan zu definieren, die Ausführung zu konfigurieren und optionale Einstellungen zu konfigurieren, wenn Sie einen Job erstellen.
gcloud
Wenn Sie einen Job über die gcloud CLI bearbeiten, verwenden Sie für jeden Zieltyp unterschiedliche Befehle:
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
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem Ihr Job ausgeführt wird. Wenn Sie den Speicherort nicht angeben, verwendet die gcloud CLI Ihren Standardspeicherort. Wenn sich der zu bearbeitende Job an einem anderen Standort befindet, müssen Sie den Standort zusätzlich zuNAME
angeben, damit der Job identifiziert werden kann. Sie können den Jobstandort nicht aktualisieren.SCHEDULE
: Häufigkeit oder Jobintervall, in der der Job ausgeführt wird, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
URI
: der voll qualifizierte URI des Endpunkts, den der Job kontaktiert.
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 Pub/Sub-Thema verwenden, das Sie in Ihrem Projekt bereits eingerichtet haben. Cloud Scheduler veröffentlicht Nachrichten zu diesem Thema als Google API-Dienstkonto.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Ersetzen Sie Folgendes:
JOB
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem Ihr Job ausgeführt wird. Wenn Sie den Speicherort nicht angeben, verwendet die gcloud CLI Ihren Standardspeicherort. Wenn sich der zu bearbeitende Job an einem anderen Standort befindet, müssen Sie den Standort zusätzlich zuNAME
angeben, damit der Job identifiziert werden kann. Sie können den Jobstandort nicht aktualisieren.SCHEDULE
: Häufigkeit oder Jobintervall, mit der der Job ausgeführt werden soll, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
TOPIC
: Der Name des Themas, in dem der Job veröffentlicht wird. Verwenden Sie das Flag--message-body
oder--message-body-from-file
, um eine Nachricht anzugeben, die an das Thema gesendet werden soll. Sie wird alsdata
-Parameter in der Pub/Sub-Nachricht gesendet. Ein entsprechendes Beispiel finden Sie in der quickstart.
Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben.
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-Anwendung verfügbar, 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
aus.
App Engine-Endpunkte können mit login: admin
im Element handlers
in der Datei app.yaml
gesichert werden.
gcloud scheduler jobs update app-engine JOB \ --location=LOCATION \ --schedule=SCHEDULE
Ersetzen Sie Folgendes:
JOB
: Jobname, der im Projekt eindeutig sein muss. Beachten Sie, dass Sie einen Jobnamen in einem Projekt nicht wiederverwenden können, auch wenn Sie den zugehörigen Job löschen.LOCATION
: der Standort, an dem der Job ausgeführt wird. Er entspricht dem Standort der App Engine-Zielanwendung. Wenn Sie den Speicherort nicht angeben, verwendet die gcloud CLI Ihren Standardspeicherort. Wenn sich der zu bearbeitende Job an einem anderen Standort befindet, müssen Sie den Standort zusätzlich zuNAME
angeben, damit der Job identifiziert werden kann. Sie können den Jobstandort nicht aktualisieren.SCHEDULE
: Häufigkeit oder Jobintervall, mit der der Job ausgeführt werden soll, z. B.every 3 hours
. Sie können hier einen beliebigen mit unix-cron kompatiblen String angeben. Die alte Cron-Syntax von App Engine wird für vorhandene Jobs weiterhin unterstützt, obwohl wir die Verwendung nicht mehr empfehlen.Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
Weitere Parameter werden in der gcloud-Befehlszeilenreferenz beschrieben.
Beispiel
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Jobs pausieren
Sie können die Ausführung eines Jobs anhalten.
Console
Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
Wählen Sie den zu pausierenden Job aus.
Klicken Sie auf Pausieren.
gcloud
Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.
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 bleibt er pausiert, bis Sie ihn fortsetzen.
Job fortsetzen
Sie können die Ausführung eines pausierten Jobs fortsetzen.
Console
Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
Wählen Sie den Job aus, den Sie fortsetzen möchten.
Der Job muss bereits angehalten sein.
Klicken Sie auf Fortsetzen.
gcloud
Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.
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
Rufen Sie in der Google Cloud Console Cloud Scheduler auf.
Wählen Sie den zu löschenden Job aus.
Klicken Sie auf Löschen.
gcloud
Öffnen Sie ein Terminalfenster auf dem Computer, auf dem Sie die gcloud CLI installiert haben.
Führen Sie diesen Befehl aus:
gcloud scheduler jobs delete MY_JOB
Ersetzen Sie
MY_JOB
durch den Namen des Jobs, der gelöscht werden soll.