Auf dieser Seite wird beschrieben, wie Sie Funktionen in Cloud Run bereitstellen und ändern. Eine Beispielanleitung für die Bereitstellung einer Hello World-Funktion finden Sie unter Beispielfunktion bereitstellen.
Im Hintergrund werden bei Cloud Run-Funktionsbereitstellungen die Buildpacks von Google Cloud und Cloud Build verwendet, um automatisch Container-Images aus dem Quellcode Ihrer Funktion zu erstellen, ohne Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten zu müssen.
Bei Cloud Run-Funktionsbereitstellungen wird auch Artifact Registry zum Speichern von Artefakten und zum Verwalten von Container-Images verwendet. Artifact Registry erstellt automatisch das Artifact Registry-Repository cloud-run-source-deploy
, falls in Ihrem Projekt noch keines mit diesem Namen vorhanden ist.
Hinweise
Prüfen Sie, ob Sie ein neues Projekt für Cloud Run eingerichtet haben, wie auf der Seite Einrichtung beschrieben.
Aktivieren Sie die Artifact Registry API, die Cloud Build API, die Cloud Run Admin API und die Cloud Logging API:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ run.googleapis.com \ logging.googleapis.com
Optional können Sie die Eventarc API aktivieren, um Ereignistrigger zu verwenden:
gcloud services enable eventarc.googleapis.com
Wenn Sie einer Domaineinschränkung zur Organisation nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Bereitstellen von Cloud Run-Diensten aus der Quelle benötigen:
- Cloud Run Source Developer (
roles/run.sourceDeveloper
) -
Service Account User (
roles/iam.serviceAccountUser
)
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run Service mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Rollen für das Dienstkonto
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Ersetzen Sie PROJECT_NUMBER
durch Ihre Google Cloud-Projektnummer und PROJECT_ID
durch Ihre Google Cloud-Projekt-ID. Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer finden Sie unter Projekte erstellen und verwalten.
Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Build-Dienstkonto“ für das Compute Engine-Standarddienstkonto übertragen wurde.
Wenn Sie Eventarc verwenden, können Sie Ihrem Dienstkonto optional die folgenden Rollen zuweisen:
- Cloud Build Editor (
roles/cloudbuild.builds.editor
) - Cloud Run-Administrator (
roles/run.admin
) - Dienstkonten erstellen (
roles/iam.serviceAccountCreator
) - Cloud Run Invoker (
roles/run.invoker
) - Eventarc Admin (
roles/eventarc.admin
) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) - Storage-Administrator (
roles/storage.admin
)
Weitere Informationen zum Gewähren bestimmter Rollen für Ihre Eventarc-Trigger finden Sie unter Rollen und Berechtigungen für Cloud Run-Ziele.
- Cloud Build Editor (
Funktion erstellen und bereitstellen
Sie können eine Funktion über die Google Cloud Console oder die gcloud CLI bereitstellen. Klicken Sie auf den Tab, um eine Anleitung zum Verwenden des gewünschten Tools zu erhalten.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie auf Funktion schreiben.
Geben Sie im Feld Dienstname einen Namen für die Funktion ein. Dienstnamen müssen mit einem Buchstaben beginnen und dürfen maximal 49 Zeichen lang sein, einschließlich Buchstaben, Ziffern oder Bindestriche. Dienstnamen dürfen nicht auf Bindestriche enden und müssen pro Region und Projekt eindeutig sein. Ein Dienstname kann später nicht mehr geändert werden und ist öffentlich sichtbar.
Verwenden Sie in der Liste Region den Standardwert oder wählen Sie die Region aus, in der Sie Ihre Funktion bereitstellen möchten.
Verwenden Sie in der Liste Laufzeit den Standardwert oder wählen Sie eine Laufzeitversion aus.
Optional: Klicken Sie im Bereich Trigger auf Trigger hinzufügen und wählen Sie eine Option aus. Der Bereich Eventarc-Trigger wird geöffnet. Dort können Sie die folgenden Details für den Trigger ändern:
Geben Sie im Feld Triggername einen Namen für den Trigger ein oder verwenden Sie den Standardnamen.
Wählen Sie in der Liste einen Triggertyp aus, um einen der folgenden Triggertypen anzugeben:
Google-Quellen: Hier können Sie Trigger für Pub/Sub, Cloud Storage, Firestore und andere Google-Ereignisanbieter angeben.
Benutzerdefiniert, um Ereignisse aus Ihrem Anwendungscode zu erstellen und zu verarbeiten. Folgen Sie der Anleitung im Bereich Eventarc-Trigger, um einen Kanal zu erstellen. Ein Kanal ist eine Ressource, die als Pipeline verwendet wird, um benutzerdefinierte Ereignisse von Erstellern an Nutzer bereitzustellen. Benutzerdefinierte Ereignisse werden in einem Kanal veröffentlicht und ein Eventarc-Trigger abonniert diese Ereignisse.
Drittanbieter, um Nicht-Google-Anbieter einzubinden, die eine Eventarc-Quelle anbieten. Weitere Informationen finden Sie unter Drittanbieterereignisse in Eventarc.
Wählen Sie in der Liste einen Ereignisanbieter aus, um ein Produkt auszuwählen, das den Ereignistyp angibt, den Sie für das Auslösen Ihrer Funktion benötigen. Eine Liste der Ereignisanbieter finden Sie unter Ereignisanbieter und -ziele.
Wählen Sie in der Liste einen Ereignistyp aus. Die Triggerkonfiguration variiert je nach unterstütztem Ereignistyp. Weitere Informationen finden Sie unter Ereignistypen.
Wählen Sie im Feld Region einen Speicherort für den Eventarc-Trigger aus. Im Allgemeinen sollte der Standort eines Eventarc-Triggers mit dem Standort der Google Cloud-Ressource übereinstimmen, die Sie auf Ereignisse überwachen möchten. In den meisten Szenarien sollten Sie Ihre Funktion auch in derselben Region bereitstellen. Weitere Informationen zu Eventarc-Triggerstandorten finden Sie unter Informationen zu Eventarc-Standorten.
Wählen Sie im Feld Dienstkonto ein Dienstkonto aus. Eventarc-Trigger sind mit Dienstkonten verknüpft, um sie beim Aufrufen Ihrer Funktion als Identität zu verwenden. Das Dienstkonto Ihres Eventarc-Triggers muss die Berechtigung zum Aufrufen Ihrer Funktion haben. Cloud Run verwendet standardmäßig das Compute Engine-Standarddienstkonto.
Geben Sie optional den Dienst-URL-Pfad an, an den die eingehende Anfrage gesendet werden soll. Dies ist der relative Pfad im Zieldienst, an den die Ereignisse für den Trigger gesendet werden sollen. Beispiel:
/
,/route
,route
undroute/subroute
.Wenn Sie alle erforderlichen Felder ausgefüllt haben, klicken Sie auf Trigger speichern.
Konfigurieren Sie unter Authentifizierung Folgendes:
Wenn Sie eine öffentliche HTTP-Funktion erstellen, z. B. einen Webhook, wählen Sie Nicht authentifizierte Aufrufe zulassen aus. Durch Anklicken des Kästchens wird der Sonderkennzeichnung
allUser
die Rolle "IAM-Invoker" zugewiesen. Sie können die Einstellung mit IAM bearbeiten, nachdem Sie den Dienst erstellt haben. Wenn Sie nicht berechtigt sind (Cloud Run Admin-Rolle), diese Option auszuwählen, wird der Dienst bereitgestellt und erfordert eine Authentifizierung.Wenn Sie eine ereignisgesteuerte Funktion erstellen, wählen Sie Authentifizierung anfordern aus.
Optional können Sie die folgenden zusätzlichen Konfigurationen für Ihre Funktionen aktualisieren:
Legen Sie CPU-Zuweisung und -Preise nach Bedarf fest.
Geben Sie unter Dienst-Autoscaling nach Bedarf die Mindestanzahl von Instanzen an.
Legen Sie die Steuerung für eingehenden Traffic nach Bedarf fest.
Maximieren Sie den Bereich Container, Volumes, Netzwerk, Sicherheit, um weitere optionale Einstellungen in den entsprechenden Tabs festzulegen:
Klicken Sie auf Erstellen und warten Sie, bis Cloud Run den Dienst mit einer Platzhalterversion erstellt hat.
Sie werden zum Tab Quellcode weitergeleitet, auf dem Sie den Quellcode Ihrer Funktion sehen. Klicken Sie auf Speichern und neu bereitstellen.
Auf dem Tab Quelle können Sie optional auf Nutzlast anzeigen klicken, um eine Beispielnutzlast eingehender Ereignisse zu sehen.
Testen Sie die erstellte Funktion nach der Bereitstellung, indem Sie auf die Schaltfläche Testen klicken.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Aktualisieren Sie die Komponenten von
gcloud
auf die neueste Version:gcloud components update
Führen Sie den folgenden Befehl in dem Verzeichnis aus, das den Beispielcode enthält:
gcloud beta run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGION
Ersetzen Sie:
FUNCTION durch den Namen der Funktion, die Sie bereitstellen. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Namen gefragt.
FUNCTION_ENTRYPOINT durch den Einstiegspunkt zur Funktion in Ihrem Quellcode. Dies ist der Code, der von Cloud Run ausgeführt wird, wenn Ihre Funktion ausgeführt wird. Der Wert dieses Flags muss ein Funktionsname oder ein voll qualifizierter Klassenname sein, der in Ihrem Quellcode vorhanden ist.
BASE_IMAGE durch die Umgebung des Basis-Images für Ihre Funktion. Weitere Informationen zu Basis-Images und den in den einzelnen Images enthaltenen Paketen finden Sie unter Basis-Images für Laufzeiten.
REGION durch die Google Cloud-Region, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Optional:
- Wenn Sie eine öffentliche HTTP-Funktion erstellen, z. B. einen Webhook, geben Sie das Flag
--allow-unauthenticated
an. Mit diesem Flag wird der SonderkennzeichnungallUser
die Rolle „Cloud Run IAM Invoker“ zugewiesen. Sie können die Einstellung mit IAM bearbeiten, nachdem Sie den Dienst erstellt haben. Wenn Sie eine ereignisgesteuerte Funktion oder einen authentifizierten Dienst erstellen, können Sie dieses Flag weglassen.
Optional können Sie Ihrer Funktion nach der Bereitstellung Eventarc-Trigger hinzufügen. Führen Sie den folgenden Befehl aus, um einen Trigger hinzuzufügen:
gcloud eventarc triggers create EVENTARC_TRIGGER_NAME \
--location=EVENTARC_TRIGGER_LOCATION \
--destination-run-service=FUNCTION \
--destination-run-region=REGION \
--event-filters="type=EVENTARC_FILTER_TYPE" \
--event-filters="EVENTARC_EVENT_FILTER" \
--service-account=EVENTARC_TRIGGER_SERVICE_ACCOUNT
Ersetzen Sie:
EVENTARC_TRIGGER_NAME durch den Namen des Eventarc-Triggers.
EVENTARC_TRIGGER_LOCATION durch den Standort für den Eventarc-Trigger. Im Allgemeinen sollte der Standort eines Eventarc-Triggers mit dem Standort der Google Cloud-Ressource übereinstimmen, die Sie auf Ereignisse überwachen möchten. In den meisten Szenarien sollten Sie Ihre Funktion auch in derselben Region bereitstellen. Weitere Informationen zu Eventarc-Triggerstandorten finden Sie unter Informationen zu Eventarc-Standorten.
FUNCTION durch den Namen Ihrer bereitgestellten Funktion.
REGION durch die Cloud Run-Region der Funktion.
EVENTARC_FILTER_TYPE durch die Ereignisfilter, die der Trigger überwacht. Ein Ereignis, das mit allen
--event-filters
-Filtern übereinstimmt, löst Aufrufe Ihrer Funktion aus. Jeder Trigger muss einen unterstützten Ereignistyp vom Typ--event-filters="type=EVENTARC_FILTER_TYPE"
haben. Dieser Ereignistyp kann nach dem Erstellen nicht mehr geändert werden. Wenn SieEVENT_FILTER_TYPE
ändern möchten, erstellen Sie einen neuen Trigger und löschen Sie den alten. Optional können Sie das Flag--event-filters
mit einem unterstützten Filter im FormatATTRIBUTE=VALUE
wiederholen, um weitere Filter hinzuzufügen.EVENTARC_TRIGGER_SERVICE_ACCOUNT durch ein Dienstkonto. Eventarc-Trigger sind mit Dienstkonten verknüpft, um sie beim Aufrufen Ihrer Funktion als Identität zu verwenden. Das Dienstkonto Ihres Eventarc-Triggers muss die Berechtigung zum Aufrufen Ihrer Funktion haben. Cloud Run verwendet standardmäßig das Compute-Standarddienstkonto.
Cloud Run-Standorte
Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.
Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden.
Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten liegt, aber Sie sollten den Standort der anderen Google Cloud-Produkte berücksichtigen, die von Ihrem Cloud Run-Dienst verwendet werden.
Die gemeinsame Nutzung von Google Cloud-Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.
Cloud Run ist in diesen Regionen verfügbar:
Unterliegt Preisstufe 1
asia-east1
(Taiwan)asia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finnland) Niedriger CO2-Werteurope-southwest1
(Madrid) Niedriger CO2-Ausstoßeurope-west1
(Belgien) Niedriger CO2-Ausstoßeurope-west4
(Niederlande) Niedriger CO2-Ausstoßeurope-west8
(Mailand)europe-west9
(Paris) Niedriger CO2-Ausstoßme-west1
(Tel Aviv)us-central1
(Iowa) Niedriger CO2-Ausstoßus-east1
(South Carolina)us-east4
(Northern Virginia)us-east5
(Columbus)us-south1
(Dallas) Niedriger CO2-Ausstoßus-west1
(Oregon) Niedriger CO2-Ausstoß
Unterliegt Preisstufe 2
africa-south1
(Johannesburg)asia-east2
(Hongkong)asia-northeast3
(Seoul, Südkorea)asia-southeast1
(Singapur)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Indien)asia-south2
(Delhi, Indien)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warschau, Polen)europe-west10
(Berlin) Niedriger CO2-Ausstoßeurope-west12
(Turin)europe-west2
(London, Vereinigtes Königreich) Niedriger CO2-Ausstoßeurope-west3
(Frankfurt, Deutschland) Niedriger CO2-Ausstoßeurope-west6
(Zürich, Schweiz) Niedriger CO2-Ausstoßme-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Niedriger CO2-Ausstoßnorthamerica-northeast2
(Toronto) Niedriger CO2-Ausstoßsouthamerica-east1
(Sao Paulo, Brasilien) Niedriger CO2-Ausstoßsouthamerica-west1
(Santiago, Chile) Niedriger CO2-Ausstoßus-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie dessen Region im Cloud Run-Dashboard der Google Cloud Console aufrufen.
Ereigniswiederholungen aktivieren
Eventarc verwendet Pub/Sub als Transportschicht und hat eine Standardwiederholrichtlinie, die für Ihre Funktion möglicherweise nicht geeignet ist.
Nachdem Sie einen Eventarc-Trigger erstellt haben, empfehlen wir Ihnen dringend, die Wiederholrichtlinie in Eventarc zu aktualisieren und ein Thema für unzustellbare Nachrichten in Pub/Sub zu konfigurieren.
Vorhandene Funktion ändern
Sie können entweder die Konfiguration oder den Code Ihrer Funktion ändern:
Konfiguration ändern
So ändern Sie Konfigurationsparameter wie CPU-Zuweisung, Arbeitsspeicher und VPC-Konnektivität:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie in der Übersicht auf den zu aktualisierenden Dienst, um dessen Details anzuzeigen.
Klicken Sie auf Neue Überarbeitung bearbeiten und bereitstellen, um das Formular für die Bereitstellung der Überarbeitung aufzurufen.
Konfigurationseinstellungen ändern.
Klicken Sie auf Bereitstellen und warten Sie, bis die Bereitstellung abgeschlossen ist.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Wenn Sie eine oder mehrere Dienstkonfigurationseinstellungen aktualisieren möchten, verwenden Sie den Befehl
gcloud beta run services update SERVICE
mit den Befehlszeilen-Flags der Konfiguration, die Sie aktualisieren möchten. Ersetzen Sie SERVICE durch den Namen des Dienstes.
Neuen Quellcode neu bereitstellen
Sie können das Basis-Image, die Laufzeit und den Quellcode Ihrer Funktion entweder über die Google Cloud Console oder die gcloud CLI ändern.
Klicken Sie auf den Tab, um eine Anleitung zum gewünschten Tool zu erhalten.
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie in der Liste Dienste auf die zu aktualisierende Funktion, um ihre Details anzuzeigen.
Rufen Sie den Tab Quelle auf und klicken Sie auf Quelle bearbeiten.
Klicken Sie neben Basis-Image auf
Laufzeit- und Sicherheitsupdates bearbeiten, wählen Sie bei Bedarf eine andere Laufzeit oder Umgebung aus der Liste aus und klicken Sie auf Speichern.Ändern Sie den Funktionseinstiegspunkt nach Bedarf.
Wählen Sie im Bereich Dateien die Option
Datei hinzufügen aus, um eine neue Datei zu erstellen, Datei umbenennen, um eine Datei umzubenennen, oder Datei löschen, um eine Datei zu löschen.Ändern Sie den Quellcode im Abschnitt Code nach Bedarf.
Klicken Sie auf Speichern und neu bereitstellen und warten Sie, bis die Bereitstellung abgeschlossen ist.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Führen Sie den folgenden Befehl in dem Verzeichnis aus, das den Quellcode der Funktion enthält:
gcloud beta run deploy FUNCTION \ --source . \ --function FUNCTION_ENTRYPOINT \ --base-image BASE_IMAGE \ --region REGION
Ersetzen Sie:
FUNCTION durch den Namen der Funktion, die Sie ändern möchten.
FUNCTION_ENTRYPOINT durch den Einstiegspunkt zur Funktion in Ihrem Quellcode.
BASE_IMAGE durch die Umgebung des Basis-Images für Ihre Funktion. In den meisten Fällen können Sie die Laufzeit-ID angeben, z. B.
nodejs22
.Wenn Sie stattdessen ein bestimmtes Systempaket im Stack verwenden oder die Region angeben möchten, aus der das Basis-Image heruntergeladen wird, können Sie eine der folgenden Optionen angeben:
- Der vollständige Pfad zum Basis-Image, z. B.
us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22
. Mit dieser Option können Sie das Basis-Image, ein bestimmtes Systempaket im Stack und die Region angeben, aus der das Basis-Image heruntergeladen wird. - Der Alias des vollständigen Pfads zum Basis-Image, z. B.
google-22/nodejs22
odergoogle-22-full/nodejs22
. Mit dieser kürzeren Aliasoption können Sie das Basis-Image und ein bestimmtes Systempaket im Stack angeben.
Weitere Informationen zu Basis-Images und den in den einzelnen Images enthaltenen Paketen finden Sie unter Laufzeit-Basis-Images.
- Der vollständige Pfad zum Basis-Image, z. B.
REGION durch die Google Cloud-Region, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Optionale Flags
Sie können die folgenden optionalen Flags konfigurieren, während Sie Ihre Funktion ändern:
Build-Umgebungsvariablen: Flags zum Angeben von Umgebungsvariablen während des Build-Schritts, z. B. zum Konfigurieren von Buildzeit-spezifischen Zertifikaten oder Parametern.
Worker-Pool-Flags, mit denen angegeben wird, welcher Worker-Pool im Build-Kontext mit VPC Service Controls verwendet werden soll.
Flags für benutzerdefinierte Build-Dienstkonten, mit denen eine Alternative zum Standard-Build-Dienstkonto für mehr Sicherheit angegeben werden kann.
Mit dem Flag Automatic base image updates (Automatische Basis-Image-Updates) können Sie automatische Updates deaktivieren. Für Funktionen sind standardmäßig automatische Sicherheitsupdates aktiviert.
Nächste Schritte
Nachdem Sie eine neue Funktion bereitgestellt haben, können Sie Folgendes tun:
- Funktionen ansehen oder löschen
- Dienste verwalten
- Logs ansehen
- Funktionscontainer in Ihrer eigenen Toolchain erstellen und in Cloud Run bereitstellen
- Trigger mit Ereignissen
- Funktionen aus Cloud Storage mit Eventarc auslösen