Il runtime Go è lo stack software responsabile installando il codice e le dipendenze dell'applicazione ed eseguendola dell'applicazione nell'ambiente flessibile.
Versioni Go
Usi di Go 1.22 buildpacks. Per l'elenco completo delle versioni di Go supportate e della versione di Ubuntu corrispondente, consulta la pianificazione del supporto del runtime.
Per utilizzare un modello supportato Go, devi:
Installa
gcloud CLI
versione 420.0.0 o successiva. Puoi aggiornare gli strumenti CLI eseguendo il comandogcloud components update
. Per visualizzare la versione installata, puoi eseguiregcloud 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 come 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
nelapp.yaml
per specificare un sistema operativo.Facoltativamente, puoi specificare una versione del runtime includendo l'elemento
runtime_version
nel tuoapp.yaml
. Per impostazione predefinita, viene utilizzata la versione più recente 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 nella
app.yaml
. App Engine si aggiorna automaticamente alle nuove revisioni delle patch,
non aggiorna automaticamente la versione principale.
Ad esempio, il deployment dell'applicazione potrebbe essere eseguito in Go 1.18.10 e successivamente verrà aggiornato automaticamente a Go 1.18.11, ma non verrà aggiornato la versione principale Go 1.19.
Se scegli Go 1.22 nel file app.yaml
, viene utilizzata la versione patch
più recente di Go 1.22 disponibile.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.22"
Per saperne di più, consulta la documentazione di riferimento app.yaml
.
Versioni precedenti dell'ambiente di runtime
Per utilizzare la versione 1.15 e precedenti di Go, specifica una versione in
runtime
utilizzando il formato go1.x
nel tuo
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 la release stabile più recente della versione specificata nel
file app.yaml
. App Engine si aggiorna automaticamente alle nuove revisioni delle patch,
non aggiorna automaticamente la versione principale.
Ad esempio, il deployment dell'applicazione potrebbe essere eseguito in Go 1.14.10 e successivamente aggiornato a Go 1.14.11, ma non verrà aggiornato automaticamente la versione principale Go 1.15.
Se scegli la versione del runtime Go go1.15
nel file app.yaml
, viene utilizzata la versione 1.15 più recente 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 di cui hai bisogno.
Per le immagini di base fornite da Google Immagini di base di Docker Go consulta la sezione 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 GOPATH
locale e poi inviate tutte al server di compilazione. Qualsiasi mancante
come le librerie di terze parti, causano errori di build.
Per evitare errori di compilazione e assicurarti che tutte le dipendenze dell'app vengano dipiattate con il codice, devi testare l'app localmente prima di eseguire il deployment.
Estensione del runtime
Per istruzioni su come estendere e personalizzare il runtime Go, leggi il Goditi il runtime Builder su GitHub.
Server dei metadati
Ogni istanza dell'applicazione può utilizzare il server metadati di Compute Engine per eseguire query sulle informazioni dell'istanza, tra cui il nome host, l'indirizzo IP esterno, l'ID istanza, i metadati personalizzati e le informazioni dell'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 tue istanze App Engine e Compute Engine.
Utilizza il pacchetto
cloud.google.com/go/compute/metadata
per accedere al server di metadati.