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 Cloud Run con un modulo Go, devi elencarle 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 Gestire le dipendenze in Go.

Il Functions Framework è una dipendenza obbligatoria per tutte le funzioni. Anche se le funzioni Cloud Run lo installano per tuo conto al momento della creazione della funzione, ti consigliamo di includerlo 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 functions-framework sottoposto a mirroring come dipendenza della funzione per evitare di installare il pacchetto dalla rete internet pubblica.

Specifica le dipendenze con una directory vendor

Le funzioni Cloud Run ti consentono anche di includere le dipendenze tramite una directory vendor. L'utilizzo di una directory del fornitore è 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 Functions Framework for Go nella directory del fornitore. Per utilizzare la toolchain Go a questo scopo:

  1. Aggiungi la seguente direttiva al blocco di importazione del 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 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:

  1. 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
    

Utilizzare 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 di eseguire il 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.