Specificare le dipendenze in Go
Puoi specificare le dipendenze delle funzioni Cloud Run con un
modulo Go o una directory vendor
.
Specificare le dipendenze con i moduli Go
Per specificare le dipendenze delle funzioni di Cloud Run con un modulo Go,
e li elenca in un file go.mod
.
Quando esegui il deployment della funzione, Go incorpora automaticamente le dipendenze
il tuo file go.mod
.
Per creare un file go.mod
, consulta:
Gestione delle dipendenze in Go.
Il framework delle funzioni è un la dipendenza richiesta per tutte le funzioni. Sebbene Cloud Run funzioni lo installi per tuo conto quando viene creata la funzione, ti consigliamo includerla come dipendenza esplicita per maggiore chiarezza.
Se la funzione si basa su dipendenze private, ti consigliamo di eseguire il mirroring di functions-framework
nel tuo registry privato. Includi lo stato
functions-framework
come dipendenza dalla tua funzione per evitare di installare il componente
dalla rete internet pubblica.
Specifica le dipendenze con una directory vendor
Le funzioni di Cloud Run ti consentono anche di includere le dipendenze tramite un
Directory vendor
.
L'utilizzo di una directory dei fornitori è utile se la dipendenza non è disponibile tramite un gestore delle dipendenze o se l'accesso a internet dell'ambiente Cloud Run functions è limitato.
Il più delle volte, le directory vendor
vengono gestite con un gestore delle dipendenze.
Puoi utilizzare qualsiasi gestore delle dipendenze. Ad esempio, puoi utilizzare la funzionalità Moduli di Go per creare una directory vendor
dal file go.mod
.
Devi includere il Functions Framework per Go nella directory del fornitore. Per utilizzare la catena di strumenti Go:
Aggiungi la seguente direttiva al blocco di importazione del codice Go:
_ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
Aggiorna il file
go.mod
in modo da includere il nuovo pacchetto importato:go mod tidy
Crea una directory
vendor
utilizzando i contenuti del filego.mod
:go mod vendor
Versioni di Go precedenti alla 1.16
Per le versioni di Go precedenti alla 1.16, se hai un file go.mod
e una directory vendor
, la directory vendor
verrà ignorata durante il deployment della funzione.
Per assicurarti che la directory del fornitore venga rispettata, utilizza un
file .gcloudignore
per evitare di caricare i file go.mod
e go.sum
:
Crea un file
.gcloudignore
nella directory principale del progetto con il seguente contenuto:go.mod go.sum # Also ignore Git directories. Delete the following two lines if you want to # upload them. .git .gitignore
Utilizzo di dipendenze private
Se le dipendenze della funzione sono ospitate in un repository che non è
pubblicamente accessibile, devi utilizzare una directory vendor
per recuperare
delle dipendenze prima di eseguire il deployment della funzione. Se prevedi di utilizzare un file go.mod
, consulta le istruzioni riportate sopra per evitare potenziali conflitti tra il file go.mod
e la directory vendor
.