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 recuperare i pacchetti direttamente dai repository supportati, come GitHub, Bitbucket, Launchpad e altri.
A partire dalla versione 1.22 di Go e versioni successive:
Non puoi utilizzare
go get
al di fuori di un modulo nella modalitàGOPATH
precedente (GO111MODULE
=off
). Per ulteriori informazioni, consulta Strumenti.Go consiglia di utilizzare un file
go.mod
per gestire le dipendenze. Per installare delle dipendenze durante il deployment, includi un filego.mod
nella stessa cartella del il fileapp.yaml
. Per ulteriori informazioni sulle versioni di 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 di directory
dei file sorgente. Quando utilizzi un'istruzione di importazione, i percorsi relativi nell'importazione vengono interpretati. I percorsi di importazione validi sono percorsi completamente qualificati relativi alla sottodirectory src
di tutte le directory specificate in GOPATH
.
Ad esempio, considera un'app di esempio in cui definisci quanto segue:
Modulo
GOPATH
:export GOPATH=/home/fred/go.
File
src1-1.go
:import "foo/bar"
gcloud CLI cerca il pacchetto
foo/bar
nel/home/fred/go/src/foo/bar
posizione in cui esegui o esegui il deployment dell'app.
Se includi le origini del pacchetto 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 sottili perché un pacchetto potrebbe essere caricato due volte, una per il percorso relativo alla directory di un servizio e un'altra per il percorso completo. Per evitare problemi, gcloud CLI
eseguirà la scansione della directory dell'app e di GOPATH
, quindi segnalerà un errore
in caso di conflitto.
Per risultati ottimali, ti consigliamo quanto segue:
- Crea una directory separata per ogni servizio nella directory dell'app.
- 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 e contenere tutte le dipendenze importate dalla tua app.
Scarica i pacchetti richiesti
Puoi utilizzare il comando go get
per scaricare i pacchetti. 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 dall'app insieme al codice dell'applicazione. Per i dettagli completi, vedi Test e deployment dell'applicazione.