La tua funzione Cloud Run viene eseguita in un ambiente costituito da una versione del sistema operativo con pacchetti aggiuntivi, supporto dei linguaggi e la libreria del framework di Functions per Ruby che supporta e richiama la tua funzione. Questo ambiente è identificato dalla versione del linguaggio ed è noto come ID runtime.
Preparazione della funzione
Puoi preparare una funzione direttamente dalla Google Cloud console oppure puoi scriverla sulla tua macchina locale e caricarla. Per preparare la macchina locale per lo sviluppo Ruby, consulta Configurare un ambiente di sviluppo Ruby.
Runtime Ruby e immagini di base supportati
| Runtime | ID runtime | Stack | Immagine di base runtime | Ritiro | Dismissione |
|---|---|---|---|---|---|
| Ruby 4.0 | ruby40 | google-24-full (impostazione predefinita) | google-24-full/ruby40 | 2029-03-31 | 2029-09-30 |
| Ruby 3.4 | ruby34 |
|
|
31/03/2028 | 30/09/2028 |
| Ruby 3.3 | ruby33 |
|
|
31/03/2027 | 30/09/2027 |
| Ruby 3.2 | ruby32 |
|
|
31/03/2026 | 30/09/2026 |
| Ruby 3.0 | ruby30 | google-18-full | google-18-full/ruby30 | 31/03/2024 | 31/03/2025 |
| Ruby 2.7 | ruby27 | google-18-full | google-18-full/ruby27 | 30/01/2024 | 30/01/2025 |
| Ruby 2.6 | ruby26 | google-18-full | google-18-full/ruby26 | 30/01/2024 | 30/01/2025 |
Seleziona il runtime
Puoi selezionare uno dei runtime Ruby supportati per la tua funzione durante il deployment.
Puoi selezionare una versione del runtime utilizzando la Google Cloud console o la gcloud CLI. Fai clic sulla scheda per visualizzare le istruzioni sull'utilizzo dello strumento che preferisci:
gcloud
Specifica l'immagine di base Ruby per la tua funzione utilizzando il flag --base-image
durante il deployment della funzione. Ad esempio:
gcloud run deploy FUNCTION \
--source . \
--function FUNCTION_ENTRYPOINT \
--base-image ruby40
Sostituisci:
FUNCTION con il nome della funzione di cui stai eseguendo il deployment. Puoi omettere completamente questo parametro, ma ti verrà chiesto il nome se lo ometti.
FUNCTION_ENTRYPOINT con l'entry point della funzione nel codice sorgente. Questo è il codice che Cloud Run esegue quando viene eseguita la funzione. Il valore di questo flag deve essere un nome di funzione o un nome di classe completo esistente nel codice sorgente.
Per istruzioni dettagliate sul deployment di una funzione utilizzando gcloud CLI, consulta Eseguire il deployment di funzioni in Cloud Run.
Console
Puoi selezionare una versione del runtime quando crei o aggiorni una funzione Cloud Run nella Google Cloud console. Per istruzioni dettagliate sul deployment di una funzione, consulta Eseguire il deployment di funzioni in Cloud Run.
Per selezionare un runtime nella Google Cloud console quando crei una funzione:
Nella Google Cloud console, vai alla pagina Cloud Run:
Fai clic su Scrivi una funzione.
Nell'elenco Runtime, seleziona una versione del runtime Ruby.
Fai clic su Crea e attendi che Cloud Run crei il servizio utilizzando una revisione segnaposto.
La console ti reindirizzerà alla scheda Origine , dove potrai visualizzare il codice sorgente della funzione. Fai clic su Salva ed esegui di nuovo il deployment.
Struttura del codice sorgente
Affinché Cloud Run Functions trovi la definizione della tua funzione, il codice sorgente deve seguire una struttura specifica. Per saperne di più, consulta Scrivere funzioni Cloud Run per maggiori informazioni.
Specifica le dipendenze
Le funzioni Cloud Run scritte in Ruby utilizzano Bundler per accedere alle dipendenze.
Il framework di Functions è una dipendenza obbligatoria per tutte le funzioni. Sebbene Cloud Run Functions lo installi per tuo conto al momento della creazione della funzione, ti consigliamo di includerlo come dipendenza esplicita per maggiore chiarezza.
Se la tua funzione si basa su dipendenze private, ti consigliamo di eseguire il mirroring di functions-framework nel tuo registro privato. Includi functions-framework sottoposto a mirroring come dipendenza della tua funzione per evitare di installare il pacchetto dalla rete internet pubblica.
Ogni funzione deve fornire un Gemfile che specifica il gem functions_framework, insieme a eventuali gem aggiuntivi necessari alla funzione. Gemfile deve trovarsi nella stessa directory del file app.rb che contiene il codice della funzione. Inoltre, la funzione deve fornire un file di blocco che specifichi tutte le dipendenze transitive e le relative versioni esatte. Anche questo file, Gemfile.lock, si
trova nella stessa directory del Gemfile.
Quando esegui il deployment della funzione, Cloud Run scarica e installa
le dipendenze dichiarate in Gemfile e Gemfile.lock utilizzando bundler.
Il file Gemfile elenca i pacchetti richiesti dalla funzione, insieme a eventuali vincoli di versione facoltativi. Per maggiori dettagli, consulta il Riferimento per Gemfile.
Di seguito è riportato un esempio di Gemfile:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
Pacchettizzazione delle dipendenze locali
Puoi anche creare pacchetti delle dipendenze ed eseguirne il deployment insieme alla funzione. Questo approccio è utile se la dipendenza non è disponibile tramite il gestore di pacchetti rubygems.
Per pacchettizzare un gem localmente, includilo in una directory nella struttura delle directory della funzione e fornisci il percorso nella voce Gemfile della dipendenza. La directory del gem deve includere un file gemspec valido e deve trovarsi all'interno della gerarchia di directory della funzione in modo da eseguire il deployment del relativo codice insieme alla funzione. Ad esempio, puoi utilizzare una struttura di directory come la seguente:
myfunction/
├── Gemfile
├── Gemfile.lock
├── app.rb
└── my_private_gem/
├── lib/
| └── my_private_gem.rb
└── my_private_gem.gemspec
La voce Gemfile può essere simile a questa:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "my_private_gem", path: "./my_private_gem"
Per saperne di più sul riferimento ai percorsi dei gem locali, consulta il Riferimento per Gemfile.