Die Cloud Run-Funktion wird in einer Umgebung ausgeführt, die aus einer Betriebssystemversion, Add-on-Paketen, Sprachunterstützung und der Ruby Functions Framework-Bibliothek besteht, die Ihre Funktion unterstützt und aufruft. Diese Umgebung wird durch die Sprachversion identifiziert und als Laufzeit-ID bezeichnet.
Funktionsvorbereitung
Sie können eine Funktion direkt über die Google Cloud Console vorbereiten oder auf Ihren lokalen Computer schreiben und hochladen. Informationen zum Vorbereiten Ihres lokalen Computers für die Ruby-Entwicklung finden Sie unter Ruby-Entwicklungsumgebung einrichten.
Unterstützte Ruby-Laufzeiten und Basis-Images
Laufzeit | Laufzeit-ID | Stacks | Laufzeit-Basis-Image |
---|---|---|---|
Ruby 3.3 | ruby33 |
|
|
Ruby 3.2 | ruby32 |
|
|
Ruby 3.0 | ruby30 | google-18-full | google-18-full/ruby30 |
Ruby 2.7 | ruby27 | google-18-full | google-18-full/ruby27 |
Ruby 2.6 | ruby26 | google-18-full | google-18-full/ruby26 |
Laufzeit auswählen
Sie können während der Bereitstellung eine der unterstützten Ruby-Laufzeiten für Ihre Funktion auswählen.
Sie können eine Laufzeitversion über die Google Cloud Console oder die gcloud CLI auswählen. Klicken Sie auf den Tab, um eine Anleitung zum Verwenden des gewünschten Tools zu erhalten.
gcloud
Geben Sie das Ruby-Basis-Image für Ihre Funktion mit dem Flag --base-image
an, während Sie die Funktion bereitstellen. Beispiel:
gcloud run deploy FUNCTION \
--source . \
--function FUNCTION_ENTRYPOINT \
--base-image ruby33
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.
Eine ausführliche Anleitung zum Bereitstellen einer Funktion mit der gcloud CLI finden Sie unter Funktionen in Cloud Run bereitstellen.
Console
Sie können eine Laufzeitversion auswählen, wenn Sie in der Google Cloud Console eine Cloud Run-Funktion erstellen oder aktualisieren. Eine ausführliche Anleitung zum Bereitstellen einer Funktion finden Sie unter Funktionen in Cloud Run bereitstellen.
So wählen Sie beim Erstellen einer Funktion eine Laufzeit in der Google Cloud Console aus:
Wechseln Sie in der Google Cloud Console zur Seite Cloud Run.
Klicken Sie auf Funktion schreiben.
Wählen Sie in der Liste Laufzeit eine Ruby-Laufzeitversion aus.
Klicken Sie auf Erstellen und warten Sie, bis der Dienst in Cloud Run mit einer Platzhalter-Überarbeitung erstellt wurde.
Die Console leitet Sie zum Tab Quelle weiter, auf dem Sie den Quellcode Ihrer Funktion sehen. Klicken Sie auf Speichern und neu bereitstellen.
Eine ausführliche Anleitung zum Aktualisieren der Laufzeitversion nach der Bereitstellung Ihrer Funktion finden Sie unter Neuen Quellcode noch einmal bereitstellen.
Struktur des Quellcodes
Damit Cloud Run Functions die Definition Ihrer Funktion findet, muss Ihr Quellcode einer bestimmten Struktur entsprechen. Weitere Informationen finden Sie unter Cloud Run-Funktionen schreiben.
Abhängigkeiten angeben
In Ruby geschriebene Cloud Run-Funktionen verwenden Bundler, um auf Abhängigkeiten zuzugreifen.
Das Functions Framework ist eine erforderliche Abhängigkeit für alle Funktionen. Obwohl Cloud Run-Funktionen sie bei der Erstellung der Funktion für Sie installiert, empfehlen wir, sie zur Klarstellung hinzuzufügen.
Wenn Ihre Funktion private Abhängigkeiten benötigt, sollten Sie functions-framework
in Ihre private Registry spiegeln. Fügen Sie die gespiegelte functions-framework
als Abhängigkeit zu Ihrer Funktion hinzu, um die Installation des Pakets aus dem öffentlichen Internet zu vermeiden.
Jede Funktion muss eine Gemfile
bereitstellen, die das Gem functions_framework
und alle weiteren von der Funktion benötigten Gems angibt. Gemfile
muss sich im selben Verzeichnis befinden wie die Datei app.rb
, die den Funktionscode enthält. Darüber hinaus muss Ihre Funktion eine Sperrdatei bereitstellen, in der alle transitiven Abhängigkeiten und ihre exakten Versionen angegeben sind. Die Datei Gemfile.lock
befindet sich auch im selben Verzeichnis, in dem sich auch die Gemfile
befindet.
Wenn Sie die Funktion bereitstellen, lädt Cloud Run die in Gemfile
und Gemfile.lock
deklarierten Abhängigkeiten mithilfe von bundler
herunter und installiert sie.
Unter Gemfile
sind die für Ihre Funktion erforderlichen Pakete sowie optionale Versionseinschränkungen aufgelistet. Weitere Informationen finden Sie in der Gemfile-Referenz.
Folgendes ist ein Gemfile
-Beispiel.
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
Paket mit lokalen Abhängigkeiten erstellen
Sie können auch ein Paket mit der Funktion und ihren Abhängigkeiten erstellen und bereitstellen. Dieser Ansatz ist nützlich, wenn Ihre Abhängigkeit nicht über den Rubygem-Paketmanager verfügbar ist.
Wenn Sie ein Gem lokal packen möchten, fügen Sie es in ein Verzeichnis in der Verzeichnisstruktur Ihrer Funktion ein und geben Sie den Pfad im Eintrag Gemfile
der Abhängigkeit an. Das Gem-Verzeichnis muss eine gültige gemspec
-Datei enthalten. Es muss sich in der Verzeichnishierarchie der Funktion befinden, damit der Code zusammen mit der Funktion bereitgestellt wird. Beispielsweise können Sie eine Verzeichnisstruktur verwenden, die so aussieht:
myfunction/ ├── Gemfile ├── Gemfile.lock ├── app.rb └── my_private_gem/ ├── lib/ | └── my_private_gem.rb └── my_private_gem.gemspec
Der Eintrag für Gemfile
könnte so aussehen:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "my_private_gem", path: "./my_private_gem"
Weitere Informationen zum Verweisen auf lokale Gem-Pfade finden Sie in der Gemfile-Referenz.