Runtime Go

Il runtime Go è lo stack software responsabile installando il codice e le dipendenze dell'applicazione per poi eseguirle dell'applicazione nell'ambiente flessibile.

Versioni Go

Usi di Go 1.22 buildpacks. Per l'elenco completo delle Versioni Go e Ubuntu corrispondente la versione più recente, 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 dell'interfaccia a riga di comando eseguendo gcloud components update . Per visualizzare la versione installata, puoi eseguire gcloud version .

  • Go consiglia di utilizzare un file go.mod per gestire le dipendenze. Per installare le dipendenze durante il deployment, includi un file go.mod nella stessa cartella come file app.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 e operating_system nel tuo File app.yaml per specificare un sistema operativo.

  • Facoltativamente, puoi specificare una versione del runtime includendo l'elemento runtime_version nel tuo app.yaml. Per impostazione predefinita, viene utilizzata l'ultima versione di Go se l'impostazione runtime_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 aggiornato a Go 1.18.11, ma non verrà aggiornato automaticamente la versione principale Go 1.19.

Se scegli Go 1.22 nel file app.yaml, verrà visualizzato è disponibile l'ultima versione patch di Go 1.22.

  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 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à automaticamente utilizzata la versione predefinita di go1.11 selezionato.

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.14.10 e successivamente verrà aggiornato automaticamente a Go 1.14.11, ma non verrà aggiornato la versione principale Go 1.15.

Se scegli la versione del runtime Go go1.15 nel file app.yaml, l'ultima versione di 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 una runtime personalizzato e seleziona un'immagine di base valida con la versione Go necessaria.

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 il comando deployment, le dipendenze dell'app vengono innanzitutto raccolte il tuo GOPATH locale, dopodiché verranno tutti inviati al server di build. Qualsiasi mancante come 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 tuo codice, devi testare l'app in locale prima di eseguirne il deployment .

Estensione del runtime

Per istruzioni su come estendere e personalizzare il runtime Go, leggi il Goditi il runtime Builder su GitHub.

Server metadati

Ogni istanza dell'applicazione può utilizzare Server di metadati di Compute Engine per eseguire query sulle informazioni sull'istanza, inclusi nome host, indirizzo IP esterno, ID istanza metadati personalizzati e dati degli account di servizio. App Engine non ti consente per impostare metadati personalizzati per ogni istanza, metadati personalizzati a livello di progetto e leggerli dalle istanze di App Engine e Compute Engine.

Utilizza la cloud.google.com/go/compute/metadata per accedere al server dei metadati.