Il runtime di Go è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione e dell'esecuzione dell'applicazione nell'ambiente flessibile.
Versioni Go
Go 1.22 utilizza buildpacks. Per l'elenco completo delle versioni di Go supportate e delle versioni Ubuntu corrispondenti, consulta la pianificazione del supporto di runtime.
Per utilizzare una versione Go supportata, devi:
Installa
gcloud CLI
versione 420.0.0 o successiva. Puoi aggiornare gli strumenti dell'interfaccia a riga di comando eseguendo il comandogcloud components update
. Per visualizzare la versione installata, puoi eseguire il comandogcloud version
.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
.Ad esempio, la struttura di cartelle dell'app con
go.mod
deve rappresentare:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Includi le impostazioni
runtime_config
eoperating_system
nel fileapp.yaml
per specificare un sistema operativo.Facoltativamente, puoi specificare una versione del runtime includendo l'impostazione
runtime_version
inapp.yaml
. Per impostazione predefinita, viene utilizzata l'ultima versione di Go se l'impostazioneruntime_version
non è specificata.
Esempi
Per specificare Go 1.22 su Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.22"
Per specificare l'ultima versione di Go supportata su Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
La tua app utilizza l'ultima release stabile della versione specificata nel file app.yaml
. App Engine si aggiorna automaticamente alle nuove revisioni
delle patch, ma non aggiorna automaticamente la versione principale.
Ad esempio, il deployment dell'applicazione potrebbe essere eseguito in Go 1.18.10 e successivamente potrebbe essere aggiornata automaticamente a Go 1.18.11, ma non verrà aggiornata automaticamente alla versione principale Go 1.19.
Se scegli Go 1.22 nel file app.yaml
, verrà visualizzata l'ultima versione patch
di Go 1.22 disponibile.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.22"
Per ulteriori informazioni, consulta il riferimento di app.yaml
.
Versioni precedenti del runtime
Per utilizzare la versione 1.15 e precedenti di Go, specifica una versione nell'impostazione runtime
utilizzando il formato go1.x
nel file app.yaml
. Ad esempio:
runtime: go1.14 env: flex
Se non viene specificata alcuna versione, verrà selezionata automaticamente la versione predefinita di go1.11
.
La tua app utilizza l'ultima release stabile della versione specificata nel file app.yaml
. App Engine si aggiorna automaticamente alle nuove revisioni
delle patch, ma non aggiorna automaticamente la versione principale.
Ad esempio, il deployment dell'applicazione potrebbe essere stato eseguito in Go 1.14.10 e successivamente potrebbe essere aggiornata automaticamente a Go 1.14.11, ma non verrà aggiornata automaticamente alla versione principale Go 1.15.
Se scegli la versione del runtime Go go1.15
nel file app.yaml
, verrà visualizzata l'ultima versione 1.15 disponibile, ad esempio 1.15.15.
runtime: go1.15 env: flex
Supporto per altri runtime Go
Se devi utilizzare una versione di Go non supportata, puoi creare un runtime personalizzato e selezionare un'immagine di base valida con la versione di Go che ti serve.
Per le immagini di base fornite da Google o le immagini di base di Docker Go, consulta Creazione di runtime personalizzati.
Importa pacchetti
Il codice viene compilato quando esegui il deployment dell'app in App Engine. Quando
esegui il comando di deployment, le dipendenze dell'app vengono prima raccolte dal
tuo locale GOPATH
, poi vengono tutte inviate al server di build. Eventuali dipendenze mancanti, ad esempio le librerie di terze parti, causano errori di build.
Per evitare errori di build e assicurarti che il deployment di tutte le dipendenze dell'app venga eseguito con il codice, devi testare l'app localmente prima di eseguirne il deployment.
Estensione del runtime
Per istruzioni su come estendere e personalizzare il runtime Go, leggi la pagina dedicata al runtime Builder di Go su GitHub.
Server metadati
Ogni istanza dell'applicazione può utilizzare il server di metadati di Compute Engine per eseguire query sull'istanza, tra cui nome host, indirizzo IP esterno, ID istanza, metadati personalizzati e informazioni dell'account di servizio. App Engine non consente di impostare metadati personalizzati per ogni istanza, ma puoi impostare metadati personalizzati a livello di progetto e leggerli dalle istanze App Engine e Compute Engine.
Utilizza il pacchetto cloud.google.com/go/compute/metadata
per accedere al server dei metadati.