In dieser Anleitung wird gezeigt, wie Sie eine HTTP-Cloud Run-Funktion planen, indem Sie in Cloud Scheduler einen HTTP-Endpunkt 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.
Wenn Sie eine ereignisgesteuerte Funktion auf Grundlage von CloudEvents erstellen, können Sie Eventarc-Trigger verwenden, um die Funktion so zu planen, dass sie auf Ereignisse in Ihrem Projekt reagiert. Eventarc kann Nachrichten in einem Pub/Sub-Thema, Änderungen in einem Cloud Storage-Bucket und vieles mehr auslösen. Weitere Informationen finden Sie unter Cloud Run-Funktionen schreiben.
Cloud Scheduler wird häufig dazu verwendet, die Ausführung einer Cloud Run-Funktion zu planen. In dieser Anleitung wird Folgendes beschrieben:
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.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, 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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Cloud Run Admin, Cloud Scheduler 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 following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click Add another role and add each additional role.
- 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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build, Cloud Run Admin, Cloud Scheduler 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 following roles to the service account: Cloud Run > Cloud Run Invoker, Cloud Run > Cloud Run Builder.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click Add another role and add each additional role.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
Sie müssen die Rolle „Cloud Run Invoker“ gewähren, da in Cloud Run-Funktionen Aufrufberechtigungen durch die Verwaltung des zugrunde liegenden Cloud Run-Dienstes verfügbar sind.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Anleitung benötigen:
-
Cloud Run Source Developer (
roles/run.sourceDeveloper) -
Cloud Scheduler-Administrator (
roles/cloudscheduler.admin) -
Zugriffsberechtigter für Logbetrachtung (
roles/logging.viewAccessor) -
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) - Service Account Admin (
roles/iam.serviceAccountAdmin) -
Service Account User (
roles/iam.serviceAccountUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Rollen zuweisen
Console
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf Zugriffsrechte erteilen.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Dies ist in der Regel die E-Mail-Adresse, die zum Bereitstellen des Cloud Run-Dienstes verwendet wird.
- Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
- Wenn Sie weitere Rollen zuweisen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
- Klicken Sie auf Speichern.
gcloud
So weisen Sie Ihrem Konto die erforderlichen IAM-Rollen für Ihr Projekt zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
Ersetzen Sie:
- PROJECT_NUMBER durch die Google Cloud Projektnummer.
- PROJECT_ID durch Ihre Google Cloud Projekt-ID.
- PRINCIPAL durch das Konto, für das Sie die Bindung hinzufügen. Dies ist in der Regel die E-Mail-Adresse, die zum Bereitstellen des Cloud Run-Dienstes verwendet wird.
- ROLE durch die Rolle, die Sie dem Bereitstellerkonto hinzufügen.
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 > Dienste auf.
Klicken Sie auf Funktion schreiben.
Führen Sie im Abschnitt Konfigurieren die folgenden Schritte aus:
- Geben Sie im Feld Dienstname einen Namen für die Funktion ein.
- Wählen Sie in der Liste Region eine Region aus.
- Ändern Sie die Standardsprache für die Laufzeit nicht.
Wählen Sie für die Authentifizierung Authentifizierung erforderlich aus.
Wenn Sie einer Organisationsrichtlinie zur Domaineinschränkung unterliegen, die nicht authentifizierte Aufrufe für Ihr Projekt einschränkt, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.
Weitere Informationen dazu finden Sie in der Authentifizierungsübersicht.
Übernehmen Sie alle anderen Standardeinstellungen und klicken Sie auf Erstellen.
Kopieren Sie die HTTP-URL für die Funktion.
Weitere Informationen, einschließlich der Bereitstellung einer Cloud Run Functions-Funktion mit Terraform, finden Sie unter Cloud Run Functions-Funktion bereitstellen.
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> Jobs 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 HTTP aus.
Geben Sie im Feld URL die HTTP-URL der Funktion ein, die Sie zuvor kopiert haben.
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.
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 den erstellten Job jetzt ausführen.
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler> Jobs auf.
Klicken Sie das Kästchen für den von Ihnen erstellten Job an.
Klicken Sie auf Force run (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 der Status der letzten Ausführung
Successanzeigen.
Ergebnisse in Cloud Run Functions überprüfen
Sie können prüfen, ob Ihre Cloud Run-Funktion erfolgreich von Ihrem Cronjob ausgelöst und ausgeführt wird.
Rufen Sie in der Google Cloud Console die Seite Cloud Run > Dienste auf.
Wenn Sie die Liste der Dienste nach Funktionen filtern möchten, wählen Sie filter_list Filter > Bereitstellungstyp > Funktion aus.
Klicken Sie auf den Funktionsnamen.
Die Seite Servicedetails wird geöffnet und zeigt Servicemesswerte an.
Klicken Sie auf den Tab Logs.
Es sollte ein Logeintrag wie der folgende angezeigt werden:
POST 200 146 B 5 ms Google-Cloud-Scheduler https://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
- 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 Seite Cloud Scheduler> Jobs auf.
Klicken Sie auf das Kästchen neben Ihrem Job.
Klicken Sie auf Löschen und bestätigen Sie den Löschvorgang.
Rufen Sie in der Google Cloud Console die Seite Cloud Run > Dienste auf.
Aktivieren Sie das Kästchen neben dem Dienst.
Klicken Sie auf Löschen und bestätigen Sie den Löschvorgang.
Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
Aktivieren Sie das Kästchen neben dem von Ihnen erstellten Dienstkonto.
Klicken Sie auf Löschen und bestätigen Sie den Löschvorgang.
Nächste Schritte
- Cloud Scheduler zum Auslösen von Cloud Run nach Zeitplan verwenden
- Schreiben Sie CloudEvents-Funktionen, um festzulegen, dass Ihre Funktion auf Ereignisse in Ihrem Projekt reagiert.