Specifica le dipendenze in Ruby
Cloud Functions scritte in Ruby bundler per accedere delle dipendenze. Puoi scaricare le dipendenze al momento del deployment della funzione oppure pacchettizzati localmente insieme alla tua funzione.
Ogni funzione deve fornire un valore Gemfile
che specifica il valore functions_framework
gem, insieme a eventuali altre gemme richieste dalla funzione. Gemfile
deve essere in
nella stessa directory del file app.rb
che contiene il codice della funzione. Nella
Inoltre, la funzione deve fornire un file di blocco che specifichi tutte le
delle dipendenze transitive e le relative versioni esatte. Il file Gemfile.lock
è
che si trova anch'esso nella stessa directory accanto a Gemfile
.
Quando esegui il deployment della funzione, Cloud Functions scarica e installa
le dipendenze dichiarate in Gemfile
e Gemfile.lock
utilizzando bundler
.
Gemfile
elenca i pacchetti richiesti dalla tua funzione, insieme a eventuali
vincoli di versione facoltativi. Per ulteriori dettagli, consulta
Riferimento del file gemfile.
Di seguito è riportato un esempio di Gemfile
:
source "https://rubygems.org" gem "functions_framework", "~> 0.7" gem "google-cloud-storage", "~> 1.29"
Esegui questo comando per installare il gem functions_framework
e le altre
delle dipendenze:
bundle install
Gemfile.lock
viene generato dal bundler quando analizza le tue dipendenze,
e blocca le versioni esatte di ogni gem da installare. Ciò garantisce,
esempio, il deployment della funzione viene eseguito con le stesse versioni delle dipendenze
utilizzati nei test locali. Il formato esatto dell'elemento Gemfile.lock
è
privato per il bundler e non è pensato per essere modificato manualmente.
Se hai già utilizzato bundler per installare le dipendenze ed eseguire test
in locale, probabilmente hai già un file Gemfile.lock
. In caso contrario,
puoi generarne uno eseguendo:
bundle lock
Il framework delle funzioni è un la dipendenza richiesta per tutte le funzioni. Sebbene Cloud Functions lo installi per tuo conto quando viene creata la funzione, ti consigliamo includerla come dipendenza esplicita per maggiore chiarezza.
Se le tue
si basa su dipendenze private, ti consigliamo di
esegui il mirroring di functions-framework
nel tuo registro privato. Includi lo stato
functions-framework
come dipendenza dalla tua funzione per evitare di installare il componente
dalla rete internet pubblica.
Pacchettizzazione delle dipendenze locali
Puoi anche pacchettizzare ed eseguire il deployment delle dipendenze insieme alla funzione. Questo approccio è utile se la dipendenza non è disponibile tramite gestore di pacchetti rubygems.
Per pacchettizzare un gem localmente, includilo in una directory nella directory della tua funzione
della struttura e fornisci il percorso nella voce Gemfile
della dipendenza. La gemma
deve includere un file gemspec
valido e deve trovarsi all'interno della sezione
la gerarchia di directory della funzione in modo che il deployment del codice venga eseguito insieme
personalizzata. Ad esempio, potresti utilizzare una struttura di directory come
seguenti:
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"
Consulta le Riferimento del file gemfile per ulteriori discussioni sul riferimento ai percorsi delle gemme locali.