Il runtime Go è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione e della sua esecuzione nell'ambiente flessibile.
Versioni di Go
Go 1.24 (anteprima) utilizza i buildpack. Per l'elenco completo delle versioni di Go supportate e delle versioni di Ubuntu corrispondenti, consulta il programma di supporto del runtime.
Per utilizzare una versione di Go supportata, devi:
Installa
gcloud CLI
versione 420.0.0 o successive. Puoi aggiornare gli strumenti CLI 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 delle cartelle della tua 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.Se vuoi, puoi specificare una versione del runtime includendo l'impostazione
runtime_version
nel fileapp.yaml
. Per impostazione predefinita, viene utilizzata l'ultima versione di Go se l'impostazioneruntime_version
non è specificata.
Esempi
Per specificare Go 1.24 (anteprima) su Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.24"
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 esegue automaticamente l'aggiornamento alle nuove revisioni delle patch, ma
non aggiorna automaticamente la versione principale.
Ad esempio, la tua applicazione potrebbe essere implementata in Go 1.18.10 e in seguito potrebbe essere aggiornata automaticamente a Go 1.18.11, ma non verrà aggiornata automaticamente alla versione principale Go 1.19.
La scelta di Go 1.24 (anteprima) nel file app.yaml
comporta
l'utilizzo della versione più recente di Go 1.24 (anteprima) disponibile.patch
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.24"
Per saperne di più, consulta il riferimento app.yaml
.
Versioni precedenti dell'ambiente di runtime
Per utilizzare Go versione 1.15 e precedenti, 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 esegue automaticamente l'aggiornamento alle nuove revisioni delle patch, ma
non aggiorna automaticamente la versione principale.
Ad esempio, la tua applicazione potrebbe essere implementata in Go 1.14.10 e in seguito potrebbe essere aggiornata automaticamente a Go 1.14.11, ma non verrà aggiornata automaticamente alla versione principale Go 1.15.
La scelta della versione del runtime Go go1.15
nel file app.yaml
comporta
l'utilizzo dell'ultima versione 1.15 disponibile, ad esempio 1.15.15.
runtime: go1.15 env: flex
Supporto di 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 Docker Go, vedi 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 della tua app vengono prima raccolte dal tuo GOPATH
locale e poi vengono inviate al server di build. Eventuali dipendenze
mancanti, ad esempio librerie di terze parti, causano errori di compilazione.
Per evitare errori di compilazione e assicurarti che tutte le dipendenze della tua app vengano implementate con il tuo codice, devi testare la tua app localmente prima di eseguirne il deployment.
Estensione della durata
Per istruzioni su come estendere e personalizzare il runtime Go, consulta la pagina Go runtime builder su GitHub.
Server dei metadati
Ogni istanza della tua applicazione può utilizzare il server di metadati di Compute Engine per eseguire query sulle informazioni sull'istanza, inclusi il nome host, l'indirizzo IP esterno, l'ID istanza, i metadati personalizzati e le informazioni sull'account di servizio. App Engine non ti 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.