In dieser Anleitung erfahren Sie, wie Sie mit Cloud Scheduler eine ereignisgesteuerte Cloud Run-Funktion auslösen, indem Sie ein Pub/Sub-Thema als Ziel festlegen. Verwenden Sie eine ereignisgesteuerte Funktion, wenn Ihre Funktion direkt als Reaktion auf Ereignisse in Ihrem Google Cloud Projekt ausgelöst werden soll, z. B. Nachrichten in einem Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.
Sie können auch eine HTTP-Funktion planen , indem Sie den HTTP-Endpunkt Ihrer Funktion als Ziel festlegen. Verwenden Sie eine HTTP-Funktion, wenn Ihre Funktion einen URL-Endpunkt haben und auf HTTP-Anfragen antworten muss, z. B. für Webhooks. Weitere Informationen finden Sie unter Arten von Cloud Run-Funktionen.
Cloud Scheduler wird häufig dazu verwendet, die Ausführung einer Cloud Run-Funktion zu planen. In dieser Anleitung wird Folgendes beschrieben:
- Erstellen Sie eine einfache Cloud Run-Funktion, die ein Pub/Sub-Thema abonniert.
- Erstellen Sie einen Cloud Scheduler-Job, der eine Nachricht im Pub/Sub-Thema veröffentlicht.
- Führen Sie den Cloud Scheduler-Job aus.
- Prüfen Sie, ob die Cloud Run-Funktion vom Cloud Scheduler-Job ausgelöst wurde.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Verwenden Sie den Preisrechner.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Konto haben, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
- Standardmäßig verwendet Cloud Run-Funktionen das automatisch erstellte
Compute Engine-Standarddienstkonto
als Laufzeitdienstkonto. Sie können dieses Dienstkonto verwenden, um diese Anleitung auszuprobieren. Abhängig von der Konfiguration Ihrer Organisationsrichtlinie kann dem Standarddienstkonto für Ihr Projekt jedoch nicht automatisch die Rolle „Bearbeiter“ zugewiesen werden.
- In diesem Fall müssen Sie dem Dienstkonto die folgenden Rollen zuweisen:
- Artifact Registry-Writer (
roles/artifactregistry.writer) - Logs Writer (
roles/logging.logWriter) - Storage-Objekt-Betrachter (
roles/storage.objectViewer)
- Artifact Registry-Writer (
Sie müssen die Rolle „Cloud Run-Aufrufer“ zuweisen, da in Cloud Run-Funktionen (2. Generation), Aufrufberechtigungen über die Verwaltung des zugrunde liegenden Cloud Run-Dienstes verfügbar sind.
Ereignisgesteuerte Cloud Run-Funktion erstellen
Erstellen Sie eine ereignisgesteuerte Funktion, die direkt als Reaktion auf Ereignisse in Ihrem Google Cloud Projekt ausgelöst wird. In diesem Fall ist das eine Nachricht, die in einem Pub/Sub-Thema veröffentlicht wird.
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.
Klicken Sie auf Funktion erstellen.
Führen Sie im Abschnitt Grundlagen folgende Schritte aus:
- Wählen Sie in der Liste Umgebung die Option 2. Generation aus.
- Geben Sie einen Namen für Ihre Funktion ein.
- Wählen Sie in der Liste Region eine Region aus.
Führen Sie im Abschnitt Trigger folgende Schritte aus:
- Wählen Sie in der Liste Triggertyp die Option Cloud Pub/Sub aus.
- Wählen Sie in der Liste Cloud Pub/Sub-Thema ein vorhandenes Thema aus oder klicken Sie auf Thema erstellen , um ein neues Thema zu erstellen. Notieren Sie sich den Namen des Themas, da Sie ihn in einem späteren Schritt benötigen.
Klicken Sie auf Weitere Optionen.
Das Feld Eventarc-Trigger wird geöffnet.
Führen Sie im Feld Eventarc-Trigger folgende Schritte aus:
- Wenn Sie aufgefordert werden, dem Pub/Sub-Dienst zu erlauben, die Identitätstokens zu erstellen, die zum Aufrufen der Funktion erforderlich sind, klicken Sie auf Gewähren.
- Wählen Sie in der Liste Dienstkonto das zuvor erstellte Dienstkonto aus.
- Übernehmen Sie die anderen Standardeinstellungen.
Klicken Sie auf Trigger speichern.
Das Feld Eventarc-Trigger wird geschlossen.
Übernehmen Sie die anderen Standardeinstellungen und klicken Sie auf Weiter.
Ändern Sie die Standardlaufzeitsprache und den Beispielcode nicht. Der Code verwendet keine Cloud-Dienste und erfordert keine zusätzlichen aktivierten Berechtigungen. Klicken Sie auf Bereitstellen.
Cloud Scheduler-Job erstellen
Erstellen Sie einen Cloud Scheduler-Job mit einem Pub/Sub-Ziel.
Rufen Sie in der Google Cloud Console die Cloud Scheduler Seite auf.
Klicken Sie auf Job erstellen.
Geben Sie einen Namen für den Job ein.
Wählen Sie in der Liste Region eine Region aus.
Geben Sie die Häufigkeit der Ausführung des Jobs im Format unix-cron an:
30 16 * * 7Weitere Informationen finden Sie unter Cronjob-Format und Zeitzone.
Wählen Sie in der Liste Zeitzone eine Zeitzone aus.
Klicken Sie auf Weiter.
Wählen Sie in der Liste Zieltyp die Option Pub/Sub aus.
Wählen Sie das zuvor erstellte Pub/Sub-Thema aus.
Geben Sie in das Feld Nachrichtentext einen String ein, der an das Pub/Sub-Zielthema gesendet werden soll. Beispiel: „Hallo Welt!“
Klicken Sie auf Erstellen.
Sie haben einen Cronjob erstellt, der sonntags um 16:30 Uhr eine Nachricht an Ihr Pub/Sub-Thema sendet. Ihre Cloud Run-Funktion hat dieses Thema abonniert.
Cloud Scheduler-Job ausführen
Sie können den erstellten Job jetzt ausführen.
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
Klicken Sie das Kästchen für den erstellten Job an und klicken Sie auf Ausführung erzwingen.
Beim ersten Aufruf kann es einige Minuten dauern, bis der erste in einem Projekt erstellte Job konfiguriert und ausgeführt wird.
Nachdem der Job ausgeführt wurde, sollte unter Status der letzten Ausführung
Successangezeigt werden.
Ergebnisse in Cloud Run-Funktionen prüfen
Sie können prüfen, ob Ihre Cloud Run-Funktion erfolgreich von Ihrem Cronjob ausgelöst und ausgeführt wurde.
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.
Klicken Sie auf den Funktionsnamen.
Die Seite Funktionsdetails wird geöffnet und im Diagramm Aufrufe/Sekunde wird der erste Aufruf der Funktion angezeigt.
Klicken Sie auf den Tab Logs.
Es sollte ein Logeintrag ähnlich
Hello, YOUR_STRING!angezeigt werden.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Anleitungsressourcen löschen
Rufen Sie in der Google Cloud Console die Cloud Scheduler Seite auf.
Klicken Sie auf das Kästchen neben Ihrem Job.
Klicken Sie auf „Löschen“ und bestätigen Sie den Löschvorgang.
Wechseln Sie in der Google Cloud Console zur Pub/Sub Seite.
Klicken Sie auf das Kästchen neben Ihrem Thema.
Klicken Sie auf „Löschen“ und bestätigen Sie den Löschvorgang.
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.
Klicken Sie auf das Kästchen neben Ihrer Funktion.
Klicken Sie auf „Löschen“ und bestätigen Sie den Löschvorgang.
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Klicken Sie auf das Kästchen neben dem erstellten Dienstkonto.
Klicken Sie auf „Löschen“ und bestätigen Sie den Löschvorgang.