Avviso: nei prossimi mesi, stiamo riorganizzando il sito della documentazione di App Engine per semplificare la ricerca di contenuti e l'allineamento con gli altri prodotti Google Cloud. Saranno disponibili gli stessi contenuti, ma ora la navigazione corrisponderà al resto dei prodotti Cloud. Se hai feedback o domande mentre navighi nel sito, fai clic su Invia feedback.

Runtime di Go

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Panoramica

Il runtime Go è lo stack software responsabile dell'installazione del codice e delle dipendenze dell'applicazione e dell'esecuzione dell'applicazione nell'ambiente flessibile.

Le versioni di runtime di Go supportate sono: 1.19 (anteprima), 1.18 (anteprima), 1.15, 1.14, 1.13, 1.12, 1.11, 1.10 e 1.9.

Importante: la transizione del supporto di runtime ai buildpack di Google Cloud inizierà con Go versione 1.18:

  • Anteprima: a partire dalla versione 1.18, tutti i nuovi runtime Go vengono creati utilizzando buildpack che ti consentono di scegliere un sistema operativo. Per utilizzare questi nuovi runtime, devi specificare impostazioni aggiuntive nel app.yaml. Scopri di più

  • Le versioni di runtime di Go 1.15 e precedenti sono create con Docker. Il codice sorgente è disponibile su GitHub.

Scegli una versione Go

Nuove versioni di runtime (anteprima)

Per il runtime Go 1.18 e versioni successive, devi includere le impostazioni runtime_config e operating_system in app.yaml per specificare un sistema operativo. Le versioni di runtime di Go 1.18 (anteprima) e 1.19 (anteprima) vengono eseguite su Ubuntu 22.

Obbligatorio:

  • La tua applicazione deve utilizzare una gcloud interfaccia a riga di comando versione 417.0.1 o successiva. Per visualizzare la versione attuale di gcloud, esegui il comando gcloud version.

  • L'applicazione deve utilizzare i moduli Go e includere il file go.mod nella stessa cartella di app.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.
    
    

Facoltativo: puoi specificare una versione del runtime includendo l'impostazione runtime_version in app.yaml. Per impostazione predefinita, viene utilizzata l'ultima versione Go se l'impostazione runtime_version non è specificata.

Esempi

  • Specificare Go 1.18:

    runtime: go
    env: flex
    
    runtime_config:
        operating_system: "ubuntu22"
        runtime_version: 1.18
    
  • Specificare l'ultima versione di Go supportata su Ubuntu 22:

      runtime: go
      env: flex
    
      runtime_config:
          operating_system: "ubuntu22"
    

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, ma non aggiorna automaticamente le versioni principali.

Ad esempio, è possibile eseguire il deployment dell'applicazione a Go 1.18.10 e versioni successive, che verrà aggiornato automaticamente alla versione 1.18.11, ma non verrà aggiornato automaticamente alla versione principale Go 1.19.

Se scegli la versione di runtime di Go 1.19 come mostrato di seguito in app.yaml, viene usata l'ultima versione di 1.19, ad esempio 1.19.5.

    runtime: go
    env: flex

    runtime_config:
        operating_system: "ubuntu22"
        runtime_version: 1.19

Per ulteriori informazioni, consulta il riferimento app.yaml.

Versioni di runtime precedenti

Per le versioni di runtime Go 1.15 e versioni precedenti, puoi scegliere una versione specifica di versionGo utilizzando il formato go1.x nel file di configurazione di app.yaml come runtime: go1.x:

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, ma non aggiorna automaticamente le versioni principali.

Ad esempio, è possibile eseguire il deployment dell'applicazione a Go 1.14.10 e versioni successive, che verrà aggiornato automaticamente alla versione 1.14.11, ma non verrà aggiornato automaticamente alla versione principale Go 1.15.

Se scegli la versione go runtime go1.15 come mostrato di seguito in app.yaml, viene usata l'ultima versione di 1.15, ad esempio 1.15.15.

  runtime: go1.15
  env: flex

Importazione di pacchetti

Il codice viene compilato quando esegui il deployment della tua app in App Engine. Quando esegui il comando di deployment, le dipendenze dell'app vengono prima raccolte dal GOPATH locale, quindi vengono inviate al server di build. Eventuali dipendenze mancanti, ad esempio librerie di terze parti, comportano errori di compilazione.

Per evitare errori di build e per assicurarti che venga eseguito il deployment di tutte le dipendenze dell'app con il tuo codice, devi testare l'app localmente prima del deployment.

Estensione del runtime

Per istruzioni su come estendere e personalizzare il runtime Go, leggi l'articolo Strumento di creazione runtime di Go su GitHub.

Server di metadati

Ogni istanza della tua applicazione può utilizzare il server di metadati di Compute Engine per eseguire query sulle informazioni sull'istanza, inclusi nome host, indirizzo IP esterno, ID istanza, metadati personalizzati e 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 di App Engine e Compute Engine.

Utilizza il pacchetto cloud.google.com/go/compute/metadata per accedere al server di metadati.