Concevoir une application Go sur App Engine

ID de la région

Le code REGION_ID est attribué par Google en fonction de la région que vous sélectionnez lors de la création de votre application. L'ajout de REGION_ID.r dans les URL App Engine est facultatif pour les applications existantes. Il sera bientôt nécessaire pour toutes les nouvelles applications.

Pour assurer une transition en douceur, nous mettons lentement à jour App Engine afin d'utiliser les ID de région. Si nous n'avons pas encore mis à jour votre projet Google Cloud, vous ne verrez pas d'ID de région pour votre application. Étant donné que l'ID est facultatif pour les applications existantes, vous n'avez pas besoin de mettre à jour les URL ni d'effectuer d'autres modifications une fois l'ID de région disponible pour vos applications existantes.

En savoir plus sur les ID de région.

Ce guide vous aide à démarrer avec App Engine et à vous familiariser avec le développement, le déploiement et la gestion d'une application Go.

Une fois que vous avez créé votre application, vous pouvez lire d'autres tutoriels pour apprendre à l'intégrer à d'autres services Google Cloud et lui ajouter des fonctionnalités.

Coûts

Les procédures de ce guide n'engendrent aucun coût. L'exécution seule de cet exemple d'application ne dépasse pas votre quota gratuit.

Configurer votre environnement de développement

Vous pouvez soit utiliser des outils qui vous sont familiers sur votre ordinateur local, soit employer Cloud Shell. Cloud Shell comprend le SDK Cloud, votre environnement entièrement configuré et de nombreuses autres fonctionnalités.

Ordinateur local

Installez Go et configurez le SDK Cloud comme décrit à la page Configurer votre environnement de développement.

Cloud Shell

Lancez Cloud Shell. Tous les outils dont vous aurez besoin y sont pré-installés.

Ouvrir Cloud Shell

Créer un projet Cloud

Un projet est requis pour utiliser Google Cloud et constitue la base de l'utilisation de tous les services Google Cloud.

  1. Créez un projet en saisissant la commande suivante dans votre environnement de développement :

    gcloud projects create PROJECT_ID

  2. Créez votre application App Engine et ses ressources associées. Vous devez sélectionner un emplacement, qui ne pourra pas être modifié ultérieurement.

    gcloud app create

  3. Assurez-vous que la facturation est activée pour votre application à déployer sur App Engine. L'exécution seule de cet exemple d'application ne dépasse pas votre quota gratuit :

    Découvrir comment activer la facturation

Créer un service Web de base pour App Engine

Découvrez comment créer un service Web et comment déclarer les paramètres d'exécution.

Structurer les fichiers

Votre service utilisera la structure de fichiers suivante :

  • go-app/ : répertoire de votre service Go 1.12+.
    • app.yaml : paramètres de configuration du service.
    • main.go : code de votre application.

Créer le fichier app.yaml

Chaque projet App Engine dispose d'un fichier de configuration app.yaml qui spécifie les paramètres d'environnement d'exécution du service. Le déploiement de ce dernier est impossible sans ce fichier.

  1. Créez un dossier nommé go-app pour votre service Go 1.12+ :

    mkdir go-app

  2. Dans votre dossier go-app/, créez un fichier appelé app.yaml et ajoutez le contenu suivant :

    runtime: go112
    

    Il s'agit de la configuration la plus simple pour une application App Engine. Elle indique à App Engine que vous utilisez l'environnement d'exécution Go 1.12 ou 1.13. Le fichier app.yaml peut également spécifier des paramètres réseau, des paramètres de scaling, etc. Pour en savoir plus, consultez la référence app.yaml.

Créer le fichier main.go

Cet exemple utilise le package net/http pour créer un serveur HTTP qui affiche "Hello, World!".

Pour configurer votre fichier main.go :

  1. Dans votre dossier go-app/, créez un fichier appelé main.go.

  2. Ajoutez l'instruction package main pour traiter votre code en tant que programme exécutable :

    package main
    

    Pour déployer correctement un service dans les environnements d'exécution Go 1.12+, une instruction package main doit être définie au début d'au moins un de vos fichiers source Go.

  3. Importez les packages suivants :

    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
  4. Définissez votre gestionnaire 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'objet http.ResponseWriter assemble la réponse du serveur HTTP. Lorsque vous écrivez sur cette dernière, vous envoyez des données au navigateur. L'objet http.Request est une structure de données qui représente la requête HTTP entrante.

  5. Enregistrez votre gestionnaire 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 fonction main est le point d’entrée de votre programme exécutable, elle démarre donc l’application. Elle commence par appeler la fonction http.HandleFunc qui indique au package http de traiter toutes les requêtes dans le répertoire Web racine ("/") avec la fonction indexHandler.

    Si la variable d'environnement PORT n'est pas définie, le port 8080 est utilisé par défaut. Lorsque votre application s'exécute sur App Engine, la variable d'environnement PORT est définie pour vous, mais lorsque vous testez votre application localement, vous pouvez définir PORT sur n'importe quelle valeur préférée.

Déployer votre service Web sur App Engine

  1. Dans le répertoire go-app où se trouve votre fichier app.yaml, déployez votre service Web dans App Engine à l'aide de la commande suivante :

    gcloud app deploy

  2. Pour lancer votre navigateur et afficher le service Web à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com, exécutez la commande suivante :

    gcloud app browse

Félicitations ! Vous venez de créer et de déployer un service sur App Engine.

Services et versions

Le premier service que vous déployez est le service par défaut. Vous pouvez spécifier le nom de votre service dans le fichier app.yaml, mais si le nom est omis, le service est traité en tant que default. Vous pouvez déployer plusieurs services autres que le service par défaut.

Vous pouvez mettre à jour votre service à tout moment en exécutant la commande gcloud app deploy. Chaque fois que vous déployez votre application, une version est créée et le trafic est automatiquement acheminé vers la dernière version.

Pour confirmer la création du service et le déploiement de la version, procédez comme suit :

  1. Affichez vos services App Engine dans Cloud Console :

    Afficher les services

    Un service nommé default doit s'afficher. Le service par défaut est accessible au public depuis l'URL suivante :

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

  2. Affichez vos versions :

    Afficher les versions

    Une version horodatée correspondant à votre déploiement doit s'afficher dans la liste.

Pour savoir comment envoyer des requêtes à des services et à des versions spécifiques, consultez la page Mode de routage des requêtes.

Étapes suivantes

Félicitations ! Vous venez de configurer et de déployer votre application Web sur App Engine.

Pour savoir comment ajouter d'autres fonctionnalités à votre application, consultez les pages suivantes :