Cloud Run-Funktion bereitstellen

In dieser Anleitung erfahren Sie, wie Sie eine Cloud Run Functions-Funktion aus dem Quellcode bereitstellen.

Beim Bereitstellungsprozess werden die Quellcode- und Konfigurationseinstellungen verwendet und ein ausführbares Image erstellt, das von Cloud Run Functions automatisch verwaltet wird, um Anfragen an die Funktion zu verarbeiten.

Bereitstellungsgrundlagen

Nutzer, die Cloud Run-Funktionen bereitstellen, müssen die IAM-Rolle Cloud Functions-Entwickler oder eine Rolle mit denselben Berechtigungen haben. Siehe auch Zusätzliche Konfiguration für die Bereitstellung.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Verwenden Sie den Befehl gcloud functions deploy, um eine Funktion bereitzustellen:

    gcloud functions deploy YOUR_FUNCTION_NAME \
     --gen2 \
     --region=YOUR_REGION \
     --runtime=YOUR_RUNTIME \
     --source=YOUR_SOURCE_LOCATION \
     --entry-point=YOUR_CODE_ENTRYPOINT \
     TRIGGER_FLAGS
    

    Das erste Argument, YOUR_FUNCTION_NAME, ist ein Name für Ihre bereitgestellte Funktion. Der Name muss mit einem Buchstaben beginnen, gefolgt von bis zu 62 Buchstaben, Ziffern, Bindestrichen oder Unterstrichen. Das letzte Zeichen muss ein Buchstabe oder eine Ziffer sein. Unterstreichungen werden im Namen des Cloud Run-Dienstes, der für Ihre Funktion erstellt wird, durch Bindestriche ersetzt und Großbuchstaben werden in Kleinbuchstaben umgewandelt. Function_1 erhält beispielsweise den Namen function-1 in Cloud Run.

    • Das Flag --gen2 (optional) gibt an, dass Sie die Bereitstellung in Cloud Run Functions vornehmen möchten.

    • Das Flag --region gibt die Region an, in der die Funktion bereitgestellt werden soll. Eine Liste der von Cloud Run Functions unterstützten Regionen finden Sie unter Standorte.

    • Das Flag --runtime gibt an, welche Sprachlaufzeit die Funktion verwendet. Cloud Run Functions unterstützt mehrere Laufzeiten. Weitere Informationen finden Sie unter Laufzeiten.

    • Das Flag --source gibt den Speicherort des Quellcodes der Funktion an. Weitere Informationen finden Sie in den folgenden Abschnitten.

    • Das Flag --entry-point gibt den Einstiegspunkt für die Funktion in Ihrem Quellcode an. Dies ist der Code, der beim Ausführen der Funktion ausgeführt wird. Der Wert dieses Flags muss ein Funktionsname oder ein voll qualifizierter Klassenname sein, der in Ihrem Quellcode vorhanden ist. Weitere Informationen finden Sie unter Funktionseinstiegspunkt.

    • Zum Festlegen des Triggers für Ihre Funktion sind je nach gewünschtem Trigger zusätzliche Flags (TRIGGER_FLAGS oben dargestellt) erforderlich:

      Trigger-Flags Triggerbeschreibung
      --trigger-http Funktion mit einer HTTP(S)-Anfrage auslösen Weitere Informationen finden Sie unter HTTP-Trigger.
      --trigger-topic=YOUR_PUBSUB_TOPIC Lösen Sie die Funktion aus, wenn eine Nachricht im angegebenen Pub/Sub-Thema veröffentlicht wird. Weitere Informationen finden Sie unter Pub/Sub-Trigger.
      --trigger-bucket=YOUR_STORAGE_BUCKET Lösen Sie die Funktion aus, wenn ein Objekt im angegebenen Cloud Storage-Bucket erstellt oder überschrieben wird. Weitere Informationen finden Sie unter Cloud Storage-Trigger.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Lösen Sie die Funktion mit Eventarc aus, wenn ein Ereignis mit den angegebenen Filtern übereinstimmt. Weitere Informationen und zusätzliche Optionen finden Sie unter Eventarc-Trigger.

      Sie können optional weitere Konfigurations-, Netzwerk- und Sicherheitsoptionen angeben, wenn Sie eine Funktion bereitstellen.

      Eine vollständige Referenz zum Bereitstellungsbefehl und seinen Flags finden Sie in der Dokumentation zu gcloud functions deploy.

      Einige Beispiele für Bereitstellungsbefehle finden Sie unter Befehlszeilenbeispiele.

Wenn die Bereitstellung erfolgreich abgeschlossen wurde, werden Funktionen mit einem grünen Häkchen auf der Cloud Run-Übersichtsseite in der Google Cloud Console angezeigt.

Die anfängliche Bereitstellung einer Funktion kann einige Minuten dauern, während die zugrunde liegende Infrastruktur bereitgestellt wird. Die erneute Bereitstellung einer vorhandenen Funktion ist schneller und der eingehende Traffic wird automatisch zur neuesten Version migriert.

Vom lokalen Computer bereitstellen

In diesem Abschnitt wird beschrieben, wie Sie eine Funktion aus dem Quellcode auf Ihrem lokalen Computer bereitstellen.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Folgen Sie der oben beschriebenen Bereitstellungsanleitung mit dem Befehl gcloud functions deploy.

    Geben Sie für das Flag --source einen lokalen Dateisystempfad zum Stammverzeichnis des Funktionsquellcodes an. Weitere Informationen finden Sie unter Quellverzeichnisstruktur. Das aktuelle Arbeitsverzeichnis wird verwendet, wenn dieses Flag weggelassen wird.

    Optional können Sie auch das Flag --stage-bucket verwenden, um einen Cloud Storage-Bucket anzugeben, in den der Quellcode als Teil der Bereitstellung hochgeladen werden soll.

    Beim Hochladen Ihres Quellcodes schließt Cloud Run Functions unnötige Dateien über die Datei .gcloudignore aus.

Über Cloud Storage bereitstellen

In diesem Abschnitt wird beschrieben, wie Sie eine Funktion aus dem Quellcode in einem Cloud Storage-Bucket bereitstellen. Der Quellcode muss als ZIP-Datei gepackt werden.

Damit Cloud Run-Funktionen aus einem Cloud Storage-Bucket lesen können, benötigt der Cloud Run-Dienst-Agent die Berechtigung storage.objects.get. Wenn sich der Quell-Bucket im selben Projekt wie Ihre Funktion befindet, wird die Berechtigung automatisch gewährt. Wenn sich der Bucket in einem anderen Projekt befindet, müssen Sie die Berechtigung dem Dienst-Agent manuell zuweisen.

Informationen zum Steuern des Zugriffs auf Buckets finden Sie in der Cloud Storage-Dokumentation unter IAM-Berechtigungen verwenden.

Mit dieser Berechtigung können Sie jetzt eine Funktion aus Cloud Storage bereitstellen:

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Folgen Sie der oben beschriebenen Bereitstellungsanleitung mit dem Befehl gcloud functions deploy.

    Geben Sie für das Flag --source einen Cloud Storage-Pfad an, der mit gs:// beginnt. Das Objekt im Pfad muss eine ZIP-Datei sein, die den Quellcode der Funktion enthält. Die Quelldateien Ihrer Funktion müssen sich im Stammverzeichnis der ZIP-Datei befinden. Siehe Quellverzeichnisstruktur.

Befehlszeilenbeispiele

Dieser Abschnitt enthält Bereitstellungsbefehle für einige Beispielbereitstellungsszenarien.

Weitere Informationen zu den verschiedenen von Cloud Run-Funktionen unterstützten Triggern finden Sie unter Trigger für Cloud Run-Funktionen.

HTTP-Funktion aus lokalem Quellcode

Angenommen, Sie haben eine HTTP-Funktion:

  • Die Funktion verwendet nodejs22.
  • Der Quellcode befindet sich im aktuellen Arbeitsverzeichnis (.).
  • Der Einstiegspunkt im Code heißt myHttpFunction.

Verwenden Sie den folgenden Befehl, um die Funktion mit dem Namen my-http-function in der Region us-central1 bereitzustellen:

gcloud functions deploy my-http-function \
  --gen2 \
  --region=us-central1 \
  --runtime=nodejs22 \
  --source=. \
  --entry-point=myHttpFunction \
  --trigger-http

Pub/Sub-Funktion aus Quellcode in Cloud Storage

Angenommen, Sie haben eine ereignisgesteuerte Funktion:

  • Die Funktion verarbeitet Pub/Sub-Nachrichtenveröffentlichungsereignisse.
  • Die Funktion verwendet python312.
  • Der Quellcode befindet sich in Cloud Storage unter dem Pfad. gs://my-bucket/my_function_source.zip
  • Der Einstiegspunkt im Code heißt pubsub_handler.

So stellen Sie die Funktion mit dem Namen my-pubsub-function in der Region europe-west1 bereit und lassen die Funktion durch Nachrichten im Pub/Sub-Thema my-topic auslösen: Verwenden Sie den folgenden Befehl:

gcloud functions deploy my-pubsub-function \
  --gen2 \
  --region=europe-west1 \
  --runtime=python312 \
  --source=gs://my-bucket/my_function_source.zip \
  --entry-point=pubsub_handler \
  --trigger-topic=my-topic

Cloud Storage-Funktion aus lokalem Quellcode

Angenommen, Sie haben eine ereignisgesteuerte Funktion:

  • Die Funktion verarbeitet Cloud Storage-Ereignisse beim Löschen von Objekten.
  • Die Funktion verwendet java21.
  • Der Quellcode befindet sich lokal unter dem Pfad ./functions/storage-function.
  • Der Einstiegspunkt im Code heißt myproject.StorageFunction.

So stellen Sie die Funktion mit dem Namen my-storage-function in der Region asia-northeast1 bereit und lassen die Funktion durch Ereignisse im Cloud Storage-Bucket my-bucket auslösen: Verwenden Sie den folgenden Befehl:

gcloud functions deploy my-storage-function \
  --gen2 \
  --region=asia-northeast1 \
  --runtime=java21 \
  --source=./functions/storage-function \
  --entry-point=myproject.StorageFunction \
  --trigger-event-filters="type=google.cloud.storage.object.v1.deleted" \
  --trigger-event-filters="bucket=my-bucket"

Nächste Schritte