Esistono due modi per specificare le dipendenze per Cloud Functions scritte in
Python: utilizzo del gestore di pacchetti pip
requirements.txt
o pacchettizza le dipendenze locali insieme alla funzione.
La specifica delle dipendenze che utilizza lo standard Pipfile/Pipfile.lock non è supportata. Il progetto non deve includere questi file.
Specifica le dipendenze con pip
Le dipendenze in Python sono gestite con pip ed espresse in un file di metadati
chiamata
requirements.txt
Questo file deve trovarsi nella stessa directory del file main.py
contenente il codice della funzione.
Quando esegui o riesegui il deployment della funzione, Cloud Functions
usa pip per scaricare e installare l'ultima versione del tuo
come dichiarato nel file requirements.txt
.
Il file requirements.txt
contiene una riga per pacchetto. Ogni riga contiene
il nome del pacchetto e, facoltativamente, la versione richiesta. Per ulteriori dettagli, vedi
il requirements.txt
riferimento.
Per evitare che la build venga influenzata da modifiche alla versione delle dipendenze, valuta la possibilità di bloccare i pacchetti di dipendenze su una versione specifica.
Di seguito è riportato un file requirements.txt
di esempio:
functions-framework requests==2.20.0 numpy
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.
Imballaggio delle dipendenze locali
Puoi anche pacchettizzare ed eseguire il deployment delle dipendenze insieme alla funzione. Questo è utile se la dipendenza non è disponibile tramite il pip gestore di pacchetti o se la connessione Internet del tuo ambiente Cloud Functions l'accesso è limitato.
Ad esempio, puoi utilizzare una struttura di directory come la seguente:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Puoi quindi importare il codice come di consueto da localpackage
utilizzando quanto segue
Informativa import
.
# Code in main.py from localpackage import script
Tieni presente che questo approccio non esegue alcun file setup.py
. Pacchetti con questi
file possono ancora essere raggruppati, ma potrebbero non essere eseguiti correttamente su Cloud Functions.