Puoi utilizzare qualsiasi pacchetto compatibile con Linux/amd64 con istanze in esecuzione nell'ambiente flessibile di App Engine. Queste istruzioni presuppongono che tu stia utilizzando il comando go get
per scaricare i pacchetti direttamente dai repository supportati, come GitHub, Bitbucket, LaunchPad e altri.
A partire da Go versione 1.22 e successive:
Non puoi utilizzare
go get
al di fuori di un modulo nella modalitàGOPATH
legacy (GO111MODULE
=off
). Per ulteriori informazioni, consulta Strumenti.Go consiglia di utilizzare un file
go.mod
per gestire le dipendenze. Per installare le dipendenze durante il deployment, includi un filego.mod
nella stessa cartella del fileapp.yaml
. Per ulteriori informazioni sulle versioni Go e sulla gestione delle dipendenze per le directory dei fornitori, consulta GOPATH e moduli.
Dichiara e gestisci le dipendenze
Le applicazioni Go sono organizzate in pacchetti che rispecchiano la struttura
delle directory dei file di origine. Quando utilizzi un'istruzione di importazione, vengono interpretati i percorsi relativi nell'importazione. I percorsi di importazione validi sono percorsi completi relativi alla sottodirectory src
di tutte le directory specificate in GOPATH
.
Prendiamo ad esempio un'app di esempio in cui definisci quanto segue:
Modulo
GOPATH
:export GOPATH=/home/fred/go.
src1-1.go
file:import "foo/bar"
L'interfaccia a riga di comando gcloud cerca il pacchetto
foo/bar
nella località/home/fred/go/src/foo/bar
quando esegui o esegui il deployment dell'app.
Se includi le origini dei pacchetti in GOPATH
, devi fare attenzione a non
inserire il codice sorgente nella directory dell'app in cui si trova il file
app.yaml
. In questo caso, possono verificarsi problemi lievi perché un pacchetto potrebbe essere caricato due volte, una per il percorso relativo alla directory di un servizio e una volta per il percorso completo. Per evitare problemi, gcloud CLI eseguirà la scansione sia della directory dell'app che di GOPATH
, quindi segnalerà un errore in caso di conflitto.
Per ottenere risultati ottimali, è consigliabile che:
- Crea una directory separata nella directory dell'app per ogni servizio.
- La directory di ogni servizio deve contenere il file
app.yaml
del servizio e uno o più file.go
. - Non includere sottodirectory nella directory di un servizio.
GOPATH
deve specificare una directory esterna alla directory dell'app e contenere tutte le dipendenze importate dall'app.
Scarica i pacchetti richiesti
Per scaricare i pacchetti puoi utilizzare il comando go get
. Ad esempio, per scaricare
packagename
da GitHub my_repo
:
go get github.com/my_repo/packagename
esegui il deployment in App Engine
Per eseguire il deployment dell'applicazione in App Engine, devi eseguire il deployment delle librerie richieste dalla tua app insieme al codice dell'applicazione. Per i dettagli completi, consulta Test e deployment dell'applicazione.