Specifica le dipendenze in Ruby
Le funzioni Cloud Functions scritte in Ruby utilizzano il bundler per accedere alle dipendenze. Le dipendenze possono essere scaricate quando viene eseguito il deployment della funzione o pacchettizzate localmente insieme alla funzione.
Ogni funzione deve fornire un oggetto Gemfile
che specifichi la gemma functions_framework
, insieme a eventuali gemme aggiuntive necessarie 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 transitorie e le relative versioni esatte. Questo file, Gemfile.lock
, si trova anch'esso nella stessa directory insieme a Gemfile
.
Quando esegui il deployment della tua funzione, Cloud Functions scarica e installa le dipendenze dichiarate in Gemfile
e Gemfile.lock
utilizzando bundler
.
Gemfile
elenca i pacchetti richiesti dalla funzione, insieme a eventuali vincoli di versione facoltativi. Per maggiori dettagli, consulta il riferimento file principale.
Di seguito è riportato un esempio Gemfile
:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
Esegui il comando seguente per installare la gemma functions_framework
e altre dipendenze:
bundle install
Il Gemfile.lock
viene generato dal bundler quando analizza le tue dipendenze e
blocca le versioni esatte di ogni gemma da installare. Questo garantisce, ad esempio, che il deployment della funzione utilizzi le stesse versioni delle dipendenze di quelle utilizzate nei test locali. Il formato esatto di Gemfile.lock
è privato per il bundler e non è destinato a essere modificato manualmente.
Se hai già utilizzato il bundler per installare le dipendenze ed eseguire i test localmente, probabilmente hai già un file Gemfile.lock
presente. In caso contrario, puoi generarne uno eseguendo:
bundle lock
Presentazione delle dipendenze locali
Puoi anche pacchettizzare ed eseguire il deployment delle dipendenze insieme alla tua funzione. Questo approccio è utile se la dipendenza non è disponibile tramite il gestore dei pacchetti Rubygems.
Per pacchettizzare un gem localmente, includilo in una directory nella struttura di directory della funzione e fornisci il percorso nella voce Gemfile
della dipendenza. La directory gem deve includere un file gemspec
valido e deve trovarsi all'interno della gerarchia di directory della funzione, in modo che venga eseguito il deployment del 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
potrebbe avere il seguente aspetto:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "my_private_gem", path: "./my_private_gem"
Per ulteriori informazioni sul riferimento a percorsi gem locali, consulta il riferimento per il file gem.