In dieser Anleitung erfahren Sie, wie Sie eine HTTP-Cloud Run-Funktion mit Cloud Scheduler und mit Ausrichtung auf einen HTTP-Endpunkt auslösen. Verwenden Sie eine HTTP-Funktion, wenn Ihre Funktion muss einen URL-Endpunkt haben und auf HTTP-Anfragen reagieren, z. B. wie bei Webhooks.
Sie können auch eine ereignisgesteuerte Funktion planen, 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. 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 HTTP-Funktion von Cloud Run.
- Cloud Scheduler-Job erstellen
- 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.
Hinweise
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
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.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.
-
Create a service account:
-
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.
-
- 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 dem Dienstkonto die folgenden Rollen zuweisen:
- Artifact Registry-Writer (
roles/artifactregistry.writer
) - Log-Autor (
roles/logging.logWriter
) - Storage-Objekt-Betrachter (
roles/storage.objectViewer
)
- Artifact Registry-Writer (
Sie müssen die Rolle „Cloud Run Invoker“ gewähren, da bei Cloud Run-Funktionen der 2. Generation Aufrufberechtigungen über die Verwaltung des zugrunde liegenden Cloud Run-Dienstes verfügbar sind.
HTTP-Cloud Run-Funktion erstellen
Erstellen Sie eine HTTP-Funktion, die von Cloud Scheduler ausgelöst wird.
Rufen Sie in der Google Cloud Console die Seite Cloud Run-Funktionen auf. Seite.
Klicken Sie auf
Funktion erstellen.Führen Sie im Abschnitt Grundlagen die folgenden Schritte aus:
- Wählen Sie in der Liste Umgebung die Option Cloud Run-Funktion aus.
- Geben Sie einen Namen für die Funktion ein.
- Wählen Sie in der Liste Region eine Region aus.
Führen Sie im Bereich Trigger die folgenden Schritte aus:
- Wählen Sie in der Liste Triggertyp die Option HTTPS aus.
Wählen Sie für die Authentifizierung Authentifizierung erforderlich aus.
Weitere Informationen finden Sie unter Für den Aufruf authentifizieren (2. Generation)
Übernehmen Sie die anderen Standardeinstellungen und klicken Sie auf Weiter.
Ändern Sie nicht die Standardlaufzeitsprache und den Beispielcode. Der Code keine Cloud-Dienste verwendet und es sind keine zusätzlichen Berechtigungen erforderlich. Klicken Sie auf Bereitstellen.
Klicken Sie nach der Bereitstellung der Funktion auf den Tab Trigger.
Kopieren Sie die HTTP-URL für die Funktion.
Cloud Scheduler-Job erstellen
Erstellen Sie einen Cloud Scheduler-Job, der eine Aktion über HTTP auslöst.
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler 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 des Jobs im Unix-Cron-Format an:
30 16 * * 7
Weitere Informationen finden Sie unter Format und Zeitzone des Cronjobs:
Wählen Sie in der Liste Zeitzone eine Zeitzone aus.
Klicken Sie auf Weiter.
Wählen Sie in der Liste Zieltyp die Option HTTP aus.
Geben Sie im Feld URL die zuvor verwendete HTTP-URL der Funktion ein. kopiert.
Wählen Sie in der Liste Auth-Header die Option OIDC-Token hinzufügen aus.
Wählen Sie in der Liste Dienstkonto das Dienstkonto aus, das Sie zuvor erstellt haben. erstellt.
Geben Sie im Feld Zielgruppe die HTTP-URL der Funktion ein, die Sie zuvor kopiert haben.
Klicken Sie auf Erstellen.
Sie haben einen Cronjob erstellt, der Ihre Cloud Run-Funktion sonntags um 16:30 Uhr ausführt.
Cloud Scheduler-Job ausführen
Sie können jetzt den von Ihnen erstellten Job ausführen.
Rufen Sie in der Google Cloud Console die Seite „Cloud Scheduler“ auf.
Klicken Sie auf das Kästchen neben dem erstellten Job und dann auf Ausführung erzwingen.
Beim ersten Aufruf kann der erste in einem Projekt erstellte Job nur wenige Minuten für Konfiguration und Ausführung.
Nach der Ausführung des Jobs sollte für den Status der letzten Ausführung
Success
angezeigt 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 wird.
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.
Klicken Sie auf den Funktionsnamen.
Die Seite Funktionsdetails und das Diagramm Aufrufe/Sekunde werden geöffnet. zeigt den ersten Aufruf der Funktion.
Klicken Sie auf den Tab Logs.
Sie sollten einen Logeintrag wie den folgenden sehen:
POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME
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
- 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.
Anleitungsressourcen 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 Ihre Auswahl. zu löschen.Wechseln Sie in der Google Cloud Console zur Seite Cloud Run-Funktionen.
Klicken Sie das Kästchen neben Ihrer Funktion an.
Klicken Sie auf
Löschen und bestätigen Sie Ihre Auswahl. zu löschen.Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Klicken Sie das Kästchen neben dem von Ihnen erstellten Dienstkonto an.
Klicken Sie auf
Löschen und bestätigen Sie den Löschvorgang.