Ereignisgesteuerte Cloud Run-Funktion planen


In dieser Anleitung erfahren Sie, wie Sie eine ereignisgesteuerte Cloud Run-Funktion auslösen mit Cloud Scheduler und Targeting auf ein Pub/Sub-Thema. Verwenden Sie ereignisgesteuerte Funktion festlegen, wenn die Funktion direkt in auf Ereignisse in Ihrem Google Cloud-Projekt reagieren, z. B. auf Nachrichten in einem Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.

Sie können HTTP-Funktionen auch planen, indem Sie den HTTP-Endpunkt der Funktion anvisieren. Verwenden Sie eine HTTP-Funktion, wenn Ihre Funktion muss einen URL-Endpunkt haben und auf HTTP-Anfragen reagieren, z. B. wie bei 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:

  1. Einfache Cloud Run-Funktion erstellen, die eine Pub/Sub-Thema.
  2. Cloud Scheduler-Job erstellen, der eine Nachricht im Pub/Sub-Thema.
  3. Führen Sie den Cloud Scheduler-Job aus.
  4. 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. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.

    Enable the APIs

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. 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.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.

    Enable the APIs

  9. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. 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.

    6. Click Continue.
    7. Click Done to finish creating the service account.

  10. Sie müssen die Rolle „Cloud Run Invoker“ gewähren, da in Cloud Run-Funktionen (2. Generation) Aufrufberechtigungen sind verfügbar, indem Sie die zugrunde liegende Cloud Run-Dienst.

  11. Standardmäßig verwenden Cloud Run-Funktionen die automatisch erstellten Compute Engine-Standarddienstkonto für sein Laufzeitdienstkonto. Mit diesem Dienstkonto können Sie dieser Anleitung. Abhängig von der Konfiguration Ihrer Organisationsrichtlinie wird dem Standarddienstkonto für Ihr Projekt jedoch möglicherweise nicht automatisch die Rolle „Bearbeiter“ zugewiesen. In diesem Fall müssen Sie Dienstkonto gewähren folgende Rollen:
    1. Artifact Registry-Writer (roles/artifactregistry.writer)
    2. Logautor (roles/logging.logWriter)
    3. Storage-Objekt-Betrachter (roles/storage.objectViewer)

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 eine Nachricht, die in einem Pub/Sub-Thema veröffentlicht wird.

  1. Rufen Sie in der Google Cloud Console die Seite Cloud Run-Funktionen auf. Seite.

    Zu den Cloud Run-Funktionen

  2. Klicken Sie auf Funktion erstellen.

  3. Führen Sie im Abschnitt Grundlagen die folgenden Schritte aus:

    1. Wählen Sie in der Liste Environment (Umgebung) die Option 2nd gen aus.
    2. Geben Sie einen Namen für die Funktion ein.
    3. Wählen Sie in der Liste Region eine Region aus.
  4. Führen Sie im Bereich Trigger die folgenden Schritte aus:

    1. Wählen Sie in der Liste Triggertyp die Option Cloud Pub/Sub aus.
    2. Wählen Sie in der Liste Cloud Pub/Sub-Thema ein vorhandenes Thema aus oder Wenn Sie ein neues Thema erstellen möchten, klicken Sie auf Thema erstellen. Notieren Sie sich den Namen des Themas, da Sie ihn in einem nachfolgenden Schritt benötigen.
    3. Klicken Sie auf Weitere Optionen.

      Der Bereich Eventarc-Trigger wird geöffnet.

  5. Führen Sie im Bereich Eventarc-Trigger die folgenden Schritte aus:

    1. 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.
    2. Wählen Sie in der Liste Dienstkonto das Dienstkonto aus, erstellt wurde.
    3. Übernehmen Sie die anderen Standardeinstellungen.
    4. Klicken Sie auf Trigger speichern.

      Der Bereich Eventarc-Trigger wird geschlossen.

  6. Übernehmen Sie die anderen Standardeinstellungen und klicken Sie auf Weiter.

  7. Ändern Sie nicht die Standardlaufzeitsprache und den Beispielcode. Der Code verwendet keine Cloud-Dienste und es müssen keine zusätzlichen Berechtigungen aktiviert werden. Klicken Sie auf Bereitstellen.

Cloud Scheduler-Job erstellen

Cloud Scheduler-Job mit einem Pub/Sub-Ziel erstellen

  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 einen Namen für den Job ein.

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

  5. Geben Sie die Häufigkeit des Jobs im Unix-Cron-Format an:

    30 16 * * 7
    

    Weitere Informationen finden Sie unter Format und Zeitzone für Cronjobs.

  6. Wählen Sie in der Liste Zeitzone eine Zeitzone aus.

  7. Klicken Sie auf Weiter.

  8. Wählen Sie in der Liste Zieltyp die Option Pub/Sub aus.

  9. Wählen Sie das Pub/Sub-Thema aus, das Sie zuvor erstellt haben.

  10. Geben Sie in das Feld Nachrichtentext einen String ein, der an das Pub/Sub-Zielthema gesendet werden soll. Beispiel: „Hallo Welt!“

  11. Klicken Sie auf Erstellen.

Sie haben einen Cronjob erstellt, der eine Nachricht an Ihr Pub/Sub sendet. sonntags um 16:30 Uhr. Ihre Cloud Run-Funktion hat dieses Thema abonniert.

Cloud Scheduler-Job ausführen

Sie können den von Ihnen erstellten Job jetzt ausführen.

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

    Zu Cloud Scheduler

  2. Klicken Sie auf das Kästchen neben dem erstellten Job und dann auf Ausführung erzwingen.

    Beim ersten Aufruf kann es einige Minuten dauern, bis der erste Job, der in einem Projekt erstellt wurde, konfiguriert und ausgeführt wird.

  3. Nachdem der Job ausgeführt wurde, sollte im Status der letzten Ausführung Folgendes angezeigt werden: Success

Ergebnisse in Cloud Run-Funktionen prüfen

Sie können prüfen, ob die Cloud Run-Funktion erfolgreich ausgelöst wurde und vom Cronjob ausgeführt werden.

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.

    Zu den Cloud Run-Funktionen

  2. Klicken Sie auf den Funktionsnamen.

    Die Seite Funktionsdetails wird geöffnet. Im Diagramm Aufrufe/Sekunde sehen Sie die erste Aufrufung der Funktion.

  3. Klicken Sie auf den Tab Logs.

    Sie sollten einen Logeintrag ähnlich Hello, YOUR_STRING! sehen.

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Anleitungsressourcen löschen

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

    Zu Cloud Scheduler

  2. Klicken Sie auf das Kästchen neben Ihrem Job.

  3. Klicken Sie auf Löschen und bestätigen Sie Ihre Auswahl. zu löschen.

  4. Rufen Sie in der Google Cloud Console die Seite Pub/Sub auf.

    Zu Pub/Sub

  5. Klicken Sie das Kästchen neben Ihrem Thema an.

  6. Klicken Sie auf  Löschen und bestätigen Sie den Löschvorgang.

  7. Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.

    Zu den Cloud Run-Funktionen

  8. Klicken Sie das Kästchen neben der Funktion an.

  9. Klicken Sie auf  Löschen und bestätigen Sie den Löschvorgang.

  10. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  11. Klicken Sie das Kästchen neben dem von Ihnen erstellten Dienstkonto an.

  12. Klicken Sie auf  Löschen und bestätigen Sie den Löschvorgang.

Nächste Schritte