Specifica le dipendenze in Go

Puoi specificare le dipendenze della Cloud Function con un modulo Go o una directory vendor.

Specifica le dipendenze con i moduli Go

Per specificare le dipendenze Cloud Functions con un modulo Go, le elenchi in un file go.mod. Quando esegui il deployment della funzione, Go incorpora automaticamente le dipendenze nel file go.mod.

Per creare un file go.mod, consulta Gestione delle dipendenze in Go.

Specifica le dipendenze con una directory vendor

Cloud Functions consente inoltre di includere le dipendenze tramite una 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 Functions è limitato.

La maggior parte delle volte, le directory vendor vengono gestite con un gestore delle dipendenze. Puoi utilizzare qualsiasi gestore di dipendenze che desideri. Ad esempio, puoi utilizzare la funzionalità di Moduli di Go per creare una directory vendor dal tuo file go.mod.

Devi includere il framework delle funzioni per Go nella directory dei fornitori. Per utilizzare la toolchain Go:

  1. Aggiungi la seguente istruzione al blocco di importazione del tuo codice Go:

    _ "github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
    
  2. Aggiorna il file go.mod in modo da includere il nuovo pacchetto importato:

    go mod tidy
    
  3. Crea una directory vendor utilizzando i contenuti del file go.mod:

    go mod vendor
    

Versioni 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 quando esegui il deployment della funzione. Per assicurarti che la directory dei fornitori venga rispettata, utilizza un file .gcloudignore per evitare di caricare i file go.mod e go.sum:

  1. Crea un file .gcloudignore nella directory principale del progetto con i seguenti contenuti:

    go.mod
    go.sum
    
    # Also ignore Git directories. Delete the following two lines if you want to
    # upload them.
    .git
    .gitignore
    

Utilizzo delle dipendenze private

Se le dipendenze della funzione sono ospitate in un repository non accessibile pubblicamente, devi utilizzare una directory vendor per recuperare le dipendenze prima del deployment della funzione. Se prevedi di utilizzare un file go.mod, consulta le istruzioni precedenti per evitare potenziali conflitti tra il file go.mod e la directory vendor.