Creazione di un'app Go su App Engine

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

Questa guida ti aiuta a iniziare a utilizzare App Engine e a familiarizzare con lo sviluppo, il deployment e la gestione di un'app Go.

Dopo aver creato l'app, potrai leggere altri tutorial per scoprire come eseguire l'integrazione con altri servizi Google Cloud e aggiungere altre funzionalità alla tua app.

Costi

L'esecuzione di questa guida non prevede costi. L'esecuzione di questa applicazione di esempio da sola non supera la quota gratuita.

Configurazione dell'ambiente di sviluppo

Puoi usare la tua macchina locale, con strumenti che già conosci, oppure Cloud Shell. In Cloud Shell è già installato Google Cloud CLI, il tuo ambiente è già configurato e molte altre funzionalità.

Computer locale

Installa Go e configura gcloud CLI come descritto in Configurazione dell'ambiente di sviluppo.

Cloud Shell

Avvia Cloud Shell, che ha tutti gli strumenti di cui hai bisogno preinstallato:

Apri Cloud Shell

Creazione di un progetto Google Cloud

Per utilizzare Google Cloud è necessario un progetto che costituisce la base per l'utilizzo di tutti i servizi Google Cloud.

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Cloud Build API.

    Abilita l'API

  5. Installa Google Cloud CLI.
  6. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  7. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Attiva Cloud Build API.

    Abilita l'API

  10. Installa Google Cloud CLI.
  11. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  12. Crea la tua app App Engine e le risorse associate. Devi scegliere una località, che non può essere modificata in un secondo momento.
    gcloud app create

Scrittura di un servizio web di base per App Engine

Scopri come scrivere un servizio web e dichiarare le impostazioni di runtime.

Strutturare i file

Il tuo servizio avrà la seguente struttura di file:

  • go-app/: directory per il tuo servizio Go 1.12 e versioni successive.
    • app.yaml: impostazioni di configurazione del tuo servizio.
    • main.go: il codice della tua applicazione.

Creazione del file app.yaml in corso...

Ogni progetto App Engine ha un file di configurazione app.yaml che specifica le impostazioni dell'ambiente di runtime del tuo servizio. Il deployment del tuo servizio non verrà eseguito senza questo file.

  1. Crea una nuova cartella denominata go-app per il tuo servizio Go 1.12 e versioni successive:

    mkdir go-app

  2. Nella cartella go-app/, crea un file denominato app.yaml e aggiungi il seguente contenuto:

    runtime: go115  # or another supported version
    

    Questa è la configurazione più semplice per un'app di App Engine. Indica ad App Engine che stai utilizzando Go. Il file app.yaml può specificare altre versioni di Go, le impostazioni di rete, le impostazioni di scalabilità e altro ancora. Per scoprire di più, consulta la documentazione di riferimento di app.yaml.

Creazione del file main.go in corso...

In questo esempio viene utilizzato il pacchetto net/http per creare un server HTTP che visualizza "Hello, World!".

Per configurare il file main.go:

  1. Nella cartella go-app/, crea un file main.go.

  2. Aggiungi l'istruzione package main per trattare il tuo codice come un programma eseguibile:

    package main
    

    Per eseguire correttamente il deployment di un servizio nei runtime Go 1.12 e versioni successive, è necessario definire un'istruzione package main all'inizio di almeno uno dei file di origine Go.

  3. Importa i seguenti pacchetti:

    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
  4. Definisci il gestore HTTP:

    
    // indexHandler responds to requests with our greeting.
    func indexHandler(w http.ResponseWriter, r *http.Request) {
    	if r.URL.Path != "/" {
    		http.NotFound(w, r)
    		return
    	}
    	fmt.Fprint(w, "Hello, World!")
    }
    

    L'oggetto http.ResponseWriter assembla la risposta del server HTTP; scrivendoci, invii i dati al browser. L'oggetto http.Request è una struttura di dati che rappresenta la richiesta HTTP in entrata.

  5. Registra il tuo gestore HTTP:

    
    func main() {
    	http.HandleFunc("/", indexHandler)
    
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    		log.Printf("Defaulting to port %s", port)
    	}
    
    	log.Printf("Listening on port %s", port)
    	if err := http.ListenAndServe(":"+port, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    

    La funzione main è il punto di ingresso del programma eseguibile, quindi avvia l'applicazione. Inizia con una chiamata alla funzione http.HandleFunc che indica al pacchetto http di gestire tutte le richieste alla radice web ("/") con la funzione indexHandler.

    Se la variabile di ambiente PORT non è impostata, viene utilizzata la porta 8080 come predefinita. Quando la tua app è in esecuzione su App Engine, la variabile di ambiente PORT è impostata automaticamente, ma quando testi l'app localmente, puoi impostare PORT su qualsiasi valore preferito.

Deployment del servizio web su App Engine

  1. Nella directory go-app in cui si trova il file app.yaml, esegui il deployment del tuo servizio web in App Engine utilizzando questo comando:

    gcloud app deploy

  2. Per avviare il browser e visualizzare il servizio web su https://PROJECT_ID.REGION_ID.r.appspot.com, esegui questo comando:

    gcloud app browse

Complimenti! Hai appena creato un servizio ed eseguito il deployment su App Engine.

Servizi e versioni

Il primo servizio di cui esegui il deployment per la tua applicazione sarà quello predefinito. Puoi specificare il nome del tuo servizio nel file app.yaml, ma se il nome viene omesso, viene considerato default. Puoi eseguire il deployment di più servizi diversi da quello predefinito.

Puoi aggiornare il servizio in qualsiasi momento eseguendo il comando gcloud app deploy. Ogni volta che esegui il deployment, viene creata una nuova versione e il traffico viene instradato automaticamente alla versione più recente.

Per confermare la creazione del servizio e il deployment della versione:

  1. Visualizza i servizi App Engine nella console Google Cloud:

    Visualizza i servizi

    Dovresti vedere un servizio nell'elenco, denominato default. Il servizio predefinito è accessibile pubblicamente al seguente URL:

    https://PROJECT_ID.REGION_ID.r.appspot.com

  2. Visualizza le tue versioni:

    Visualizza versioni

    Dovresti vedere una versione con timestamp, corrispondente al deployment.

Per scoprire come inviare richieste a versioni e servizi specifici, consulta Modalità di routing delle richieste.

Passaggi successivi

Complimenti! Hai appena configurato ed eseguito il deployment della tua applicazione web in App Engine.

Scopri come aggiungere altre funzionalità alla tua applicazione esplorando le pagine seguenti: