In dieser Anleitung erfahren Sie, wie Sie mit Cloud Scheduler und Pub/Sub eine Cloud Functions-Funktion auslösen. Cloud Scheduler wird häufig dazu verwendet, die Ausführung einer Cloud-Funktion zu planen. Vorgehensweise:
- Erstellen Sie eine einfache Cloud Functions-Funktion die ein Pub/Sub-Thema abonniert.
- Erstellen Sie ein Pub/Sub-Thema, um diese Funktion auszulösen.
- Erstellen Sie einen Cloud Scheduler-Job, der den Pub/Sub-Trigger aufruft.
- Führen Sie den Cloud Scheduler-Job aus.
- Prüfen Sie das Ergebnis.
Hinweise
In dieser Anleitung wird davon ausgegangen, dass Sie die Cloud Scheduler-Kurzübersicht bereits durchgearbeitet haben. Daher stehen Ihnen die folgenden Tools und Ressourcen zur Verfügung:Google Cloud-Projekt mit aktivierter Abrechnungsfunktion.
Die Cloud Scheduler API und die Pub/Sub API sind beide im Projekt aktiviert. Sie aktivieren die Cloud Functions API während der Anleitung.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- Cloud Functions
- Pub/Sub
- Cloud Scheduler
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Cloud Functions-Funktion mit einem Trigger erstellen
Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf.
Klicken Sie auf API aktivieren, wenn Sie dazu aufgefordert werden.
Klicken Sie auf Funktion erstellen. Wenn Sie aufgefordert werden, APIs zu aktivieren, klicken Sie auf Aktivieren.
Wählen Sie im Abschnitt Basics (Grundlagen) die Umgebung 2nd gen aus, geben Sie einen Namen für die Funktion ein und wählen Sie eine Region aus.
Wählen Sie im Bereich Trigger die Option Authentifizierung erforderlich aus. Klicken Sie auf Trigger hinzufügen und wählen Sie Pub/Sub-Trigger aus. Der Bereich Eventarc-Trigger wird geöffnet. Wenn die Eingabeaufforderung Erforderliche APIs aktivieren angezeigt wird, klicken Sie auf Aktivieren.
Achten Sie im Bereich Eventarc-Trigger darauf, dass die ersten Felder so ausgefüllt sind, oder füllen Sie sie bei Bedarf aus:
- Triggertyp:Google-Quellen
- Ereignisanbieter:Cloud Pub/Sub
- Ereignis:
google.cloud.pubsub.topic.v1.messagePublished
Wählen Sie im Feld Cloud Pub/Sub-Thema auswählen ein vorhandenes Thema aus oder klicken Sie auf Neues Thema erstellen, um ein neues Thema zu erstellen. Ihre Funktion abonniert dieses Thema. Notieren Sie sich den Namen des Themas, denn Sie werden ihn später brauchen.
- Klicken Sie auf Erteilen, wenn Sie dazu aufgefordert werden, damit der Pub/Sub-Dienst die zum Auslösen der Funktion erforderlichen Identitätstokens erstellen kann. Denken Sie daran, dass Sie zuvor Authentifizierung erforderlich für die Funktion ausgewählt haben. Pub/Sub verwendet die Identitätstokens für diese erforderliche Authentifizierung.
Klicken Sie im Feld Dienstkonto auf Neues Dienstkonto erstellen.
Geben Sie einen Namen für das Dienstkonto ein und klicken Sie auf Erstellen. Eventarc verwendet dieses Dienstkonto, um die Funktion mit einem Identitätstoken aus dem Pub/Sub-Dienst aufzurufen.
Wählen Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt gewähren die Rolle Cloud Run-Aufrufer aus. Dadurch kann das Dienstkonto die Funktion der 2. Generation aufrufen.
Klicken Sie auf Fertig.
Lassen Sie die Option Bei Fehler noch einmal versuchen deaktiviert. Klicken Sie auf Trigger speichern.
Maximieren Sie den Bereich Laufzeit, Build, Verbindungen und Sicherheitseinstellungen und wählen Sie den Tab Laufzeit aus.
Klicken Sie unter Laufzeitdienstkonto im Feld Dienstkonto auf Erstellen. Der Vorgang zum Erstellen des Dienstkontos wird in einem neuen Tab geöffnet. Dieses Dienstkonto ist die Identität, die die Cloud Functions-Funktion hat, wenn sie ausgeführt wird.
- Geben Sie einen Namen für das Dienstkonto ein.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie auf Fertig.
Sie werden zur Seite Dienstkonten der Google Cloud Console weitergeleitet. Sie können diesen Tab schließen.
Kehren Sie auf der Seite zur Funktionserstellung zum Feld Dienstkonto zurück, klicken Sie auf Aktualisieren und wählen Sie das soeben erstellte Dienstkonto aus.
Klicken Sie auf Next (Weiter). Wenn Sie aufgefordert werden, erforderliche APIs zu aktivieren, klicken Sie auf Aktivieren.
Ändern Sie nicht die Standardsprache und den Beispielcode. Der Code verwendet keine Cloud-Dienste und erfordert keine Aktivierung zusätzlicher Berechtigungen. Klicken Sie auf Bereitstellen.
Cloud Scheduler-Job erstellen
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
Klicken Sie auf Job erstellen.
Wählen Sie bei Bedarf eine Region für die Ausführung des Jobs aus.
Geben Sie Ihrem Job einen Namen und fügen Sie optional unter "Description" eine Beschreibung hinzu.
Geben Sie die Häufigkeit der Ausführung des Jobs im Format unix-cron an.
30 16 * * 7
Weitere Informationen finden Sie unter Cronjob-Zeitpläne konfigurieren.
Wählen Sie Ihre Zeitzone unter "Timezone" aus.
Klicken Sie auf Weiter.
Wählen Sie im Abschnitt Ausführung konfigurieren als Zieltyp Pub/Sub aus.
Wählen Sie den Namen Ihres Themas aus.
Fügen Sie einen kurzen Message-String hinzu, der an Ihr Ziel gesendet werden soll.
Klicken Sie auf Erstellen.
Sie haben jetzt einen Cronjob, der sonntags um 16:30 Uhr eine Nachricht an Ihr Pub/Sub-Thema sendet. Ihre Cloud-Funktion hat dieses Thema abonniert.
Job ausführen
Sie können den von Ihnen erstellten Job jetzt ausführen.
Rufen Sie in der Google Cloud Console die Seite „Cloud Scheduler“ auf.
Wählen Sie den von Ihnen erstellten Job aus.
Klicken Sie auf Ausführung erzwingen.
Die Ausführung des ersten in einem Projekt erstellten Jobs kann aufgrund der erforderlichen Konfiguration beim ersten Aufruf einige Minuten dauern.
Sehen Sie sich die Spalte Status der letzten Ausführung an. Nachdem der Job ausgeführt wurde, sollte in dieser Spalte „Success“ angezeigt werden.
Glückwunsch! Sie haben gerade die Console verwendet, um die Ergebnisse der Ausführung eines Cronjobs anzuzeigen, der eine Nachricht an Pub/Sub sendet. Im nächsten Schritt prüfen Sie, ob Cloud Pub/Sub tatsächlich ausgeführt wurde.
Ergebnisse in Cloud Functions prüfen
So prüfen Sie, ob die Cloud Functions-Funktion erfolgreich von Ihrem Cronjob ausgelöst wird:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Functions.
Klicken Sie auf den Funktionsnamen.
Die Seite Funktionsdetails wird geöffnet. Das Diagramm Aufrufe/Sekunden sollte Ihren ersten Aufruf der Funktion anzeigen. Klicken Sie auf Logs, um Details zum Aufruf anzusehen.
Glückwunsch! Ihre Funktion wurde ausgeführt.
Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Cloud Scheduler-Job löschen
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
Klicken Sie auf das Kästchen neben Ihrem Job.
Klicken Sie auf
Löschen und bestätigen Sie den Löschvorgang.
Pub/Sub-Thema löschen
Rufen Sie in der Google Cloud Console die Seite Cloud Pub/Sub auf.
Klicken Sie das Kästchen neben Ihrem Thema an.
Klicken Sie auf
Löschen und bestätigen Sie den Löschvorgang.
Cloud Functions-Funktion löschen
Wechseln Sie in der Google Cloud Console zur Seite Cloud Functions.
Klicken Sie das Kästchen neben der Funktion an.
Klicken Sie auf
Löschen und bestätigen Sie den Löschvorgang.
Dienstkonten löschen
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Klicken Sie das Kästchen neben den von Ihnen erstellten Dienstkonten an.
Klicken Sie auf
Löschen und bestätigen Sie den Löschvorgang.
APIs deaktivieren
Wenn Sie im Verlauf dieser Anleitung APIs aktiviert haben (z. B. die Eventarc-, Cloud Functions- oder Pub/Sub-APIs), deaktivieren Sie sie. Das Deaktivieren von APIs wirkt sich auf den Zugriff auf die API für das Projekt aus. Deaktivieren Sie daher APIs nicht, wenn sie von anderen Ressourcen in Ihrem Projekt verwendet werden.
Rufen Sie in der Google Cloud Console die Seite APIs & Dienste auf.
Klicken Sie auf die API, die Sie deaktivieren möchten. Eine Seite mit einer Beschreibung der API wird angezeigt.
Klicken Sie auf
API deaktivieren.
Projekt löschen
Löschen Sie das Projekt, das Sie nur für diese Anleitung erstellt haben.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.