Guide de démarrage rapide pour l'environnement standard Python 2

Dans ce guide de démarrage rapide, vous allez apprendre à créer une petite application App Engine permettant d'afficher un court message.

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.

Avant de commencer

Avant d'exécuter et de déployer l'application de ce guide de démarrage rapide, installez le SDK Cloud, puis configurez un projet GCP pour App Engine :

  1. Téléchargez et installez le SDK Cloud :

    Télécharger le SDK

    Remarque : Si le SDK Cloud est déjà installé, mettez-le à jour en exécutant la commande suivante :

    gcloud components update
    
  2. Créez un projet :

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    Vérifiez que le projet a été créé :

    gcloud projects describe [YOUR_PROJECT_ID]
    

    Vous voyez alors les informations relatives au projet qui peuvent se présenter sous la forme suivante :

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. Initialisez votre application App Engine avec votre projet, puis choisissez sa région :

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Lorsque vous y êtes invité, sélectionnez la région dans laquelle vous souhaitez déployer votre application App Engine.

  4. Installez les composants requis suivants :

    • Exécutez la commande suivante pour installer le composant gcloud qui inclut l'extension App Engine pour Python 2 :

      gcloud components install app-engine-python
      
  5. Préparez l'environnement au développement de Python. Il est recommandé d'installer la dernière version de Python, pip, virtualenv et d'autres outils connexes sur votre système. Pour obtenir des instructions, reportez-vous au Guide de configuration de l'environnement de développement Python.

Zones App Engine

App Engine est régional, ce qui signifie que l'infrastructure qui exécute vos applications est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.

Lors de la sélection d'une région dans laquelle exécuter vos applications, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité. Vous pouvez choisir la région la plus proche des utilisateurs de votre application, mais vous devez aussi tenir compte de l'emplacement des autres produits et services GCP exploités par votre application. L'utilisation des services dans plusieurs emplacements peut affecter la latence et les tarifs de votre application.

App Engine est disponible dans les régions suivantes :

  • northamerica-northeast1 (Montréal)
  • us-central (Iowa)
  • us-west2 (Los Angeles)
  • us-east1 (Caroline du Sud)
  • us-east4 (Virginie du Nord)
  • southamerica-east1 (São Paulo)
  • europe-west (Belgique)
  • europe-west2 (Londres)
  • europe-west3 (Francfort)
  • europe-west6 (Zurich)
  • asia-northeast1 (Tokyo)
  • asia-northeast2 (Osaka)
  • asia-east2 (Hong Kong)
  • asia-south1 (Mumbai)
  • australia-southeast1 (Sydney)

Une fois que vous avez défini la région d'une application, vous ne pouvez plus la modifier.

Si vous avez déjà créé une application App Engine, vous pouvez afficher la région en exécutant la commande gcloud app describe ou en ouvrant le tableau de bord App Engine dans la console GCP. La région de votre application App Engine est indiquée sous http://[YOUR_PROJECT_ID].appspot.com.

Ce démarrage rapide présente une application Python simple, écrite à l'aide du framework Web Flask et pouvant être déployée sur App Engine. Bien que cet exemple utilise Flask, vous pouvez opter pour n'importe quel framework Web répondant aux exigences ci-dessus. Il est également possible d'utiliser d'autres frameworks comme Django, Pyramid, Bottle et web.py.

Télécharger l'application Hello World

Nous avons créé une application Hello World simple pour Python, afin de vous aider à comprendre rapidement comment déployer une application sur Google Cloud Platform. Pour télécharger Hello World sur votre ordinateur local :

  1. Clonez le dépôt de l'exemple d'application Hello World sur votre ordinateur :

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    
  2. Accédez au répertoire qui contient l'exemple de code :

    cd python-docs-samples/appengine/standard/hello_world
    

Vous pouvez également télécharger l'exemple en tant que fichier zip et l'extraire.

Tester l'application

Testez l'application à l'aide du serveur de développement local (dev_appserver.py), fourni avec le SDK.

  1. Dans le répertoire hello_world qui contient le fichier de configuration app.yaml de l'application, démarrez le serveur de développement local en exécutant la commande ci-dessous :

    dev_appserver.py app.yaml
    

    Le serveur de développement local est désormais en cours d'exécution et écoute les requêtes envoyées sur le port 8080. Une erreur s'est produite ?

    1. Vous pouvez également saisir l'adresse http://localhost:8080/ dans votre navigateur Web pour afficher l'application.

Exécuter le serveur de développement local (dev_appserver.py)

Pour exécuter le serveur de développement local, vous pouvez exécuter dev_appserver.py en spécifiant le chemin d'accès complet au répertoire, ou ajouter dev_appserver.py à votre variable d'environnement PATH :

  • Si vous avez installé le SDK App Engine d'origine, l'outil se trouve à l'emplacement suivant :

    [PATH_TO_APP_ENGINE_SDK]/dev_appserver.py
    
  • Si vous avez installé le SDK Google Cloud, l'outil se trouve à l'emplacement suivant :

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
    

    Conseil : Pour ajouter les outils du SDK Google Cloud à votre variable d’environnement PATH et permettre l'activation des commandes dans votre interface système, vous pouvez exécuter la commande suivante :

    [PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
    

Consultez la documentation de référence relative au serveur de développement local pour en savoir plus sur l'exécution de ce dernier, y compris sur la modification du numéro de port.

Effectuer une modification

Vous pouvez continuer à développer votre application alors que le serveur de développement est en cours d'exécution. Le serveur de développement recherche les modifications apportées à vos fichiers sources et les actualise, le cas échéant.

  1. Essayez maintenant : sans arrêter le serveur de développement, modifiez le fichier main.py pour remplacer Hello, World! par autre chose. .
  2. Actualisez la page http://localhost:8080/ pour voir le résultat.

Déployer l'application

Pour déployer votre application dans App Engine, exécutez la commande suivante depuis le répertoire racine de votre application où se trouve le fichier app.yaml :

gcloud app deploy

Renseignez-vous au sujet des indicateurs facultatifs.

Indicateurs de commande gcloud courants

  • Incluez l'indicateur --version pour spécifier un ID qui identifie de manière unique la version de votre application. Si vous l'omettez, cet ID est généré pour vous. Exemple : --version [YOUR_VERSION_ID]
  • Incluez l'indicateur --project pour spécifier un ID de projet GCP alternatif à celui que vous avez initialisé par défaut dans l'outil gcloud. Exemple : --project [YOUR_PROJECT_ID]

Exemple :

gcloud app deploy --version pre-prod-5 --project my-sample-app

Pour en savoir plus sur le déploiement de l'application depuis la ligne de commande, consultez la section Déployer une application Python 2. Pour obtenir la liste de tous les indicateurs de commande, consultez la documentation de référence sur gcloud app deploy.

Afficher votre application

Pour lancer le navigateur et afficher l'application sur http://[YOUR_PROJECT_ID].appspot.com, exécutez la commande suivante :

gcloud app browse

Félicitations !

Vous avez terminé ce guide de démarrage rapide.

Consultez les sections suivantes pour en savoir plus sur le nettoyage et découvrir des liens vers les prochaines étapes que vous pourriez effectuer avec vos applications déployées.

Pour en savoir plus sur cette application Hello World, consultez la section Examiner le code Hello World.

Effectuer un nettoyage

Si vous avez activé la facturation pour votre projet GCP, vous pouvez le supprimer afin d'éviter des frais supplémentaires. Cette mesure interrompt la facturation de toutes les ressources utilisées au sein du projet.

  1. Dans la console GCP, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes

Développer une application Flask élémentaire

Découvrez comment développer et déployer des applications Python 2.7 élémentaires s'exécutant dans l'environnement standard Google App Engine. Si vous débutez avec Google App Engine, les services associés et en particulier l’utilisation d'App Engine avec le langage Python, le guide Flask offre des explications plus détaillées que celles du guide de démarrage rapide sur chacune des tâches. Pour en savoir plus, consultez la page Premiers pas avec Flask dans l'environnement standard App Engine.

Utiliser un domaine personnalisé

Vous pouvez diffuser votre application App Engine en utilisant votre propre domaine personnalisé au lieu de appspot.com. Pour en savoir plus, consultez la page Utiliser des domaines personnalisés et SSL.

Examen du code Hello World

Hello World est l'application App Engine la plus simple qui soit : elle ne contient qu'un seul service, ne possède qu'une version, et tout le code se trouve dans le répertoire racine de l'application. Cette section décrit chacun des fichiers de l'application en détail.

main.py

Ce script Python répond à une requête composée d'un en-tête HTTP et du message Hello, World!.

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, World!')

app = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

app.yaml

Le fichier de configuration app.yaml définit plusieurs options pour l'application et décrit les scripts de gestionnaire qui doivent être associés aux différentes URL.

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

De haut en bas, ce fichier de configuration fournit les informations suivantes à propos de l'application :

  • Ce code s'exécute dans l'environnement d'exécution python27, dans la version d'API 1.
  • Cette application est dite threadsafe (à fil sécurisé) : la même instance peut traiter plusieurs requêtes simultanées. "Threadsafe" est une fonctionnalité avancée qui peut être source d'instabilité si l'application n'a pas été conçue spécialement dans cette optique.
  • Toutes les requêtes adressées à une URL dont le chemin correspond à l'expression régulière /.* (toutes les URL) doivent être gérées par l'objet app dans le module Python main.

Dans ce fichier, la syntaxe utilisée est YAML. Pour obtenir la liste complète des options de configuration, consultez la documentation de référence sur app.yaml.

En savoir plus

Découvrir la plate-forme dans son ensemble

Maintenant que vous savez comment développer et déployer des applications App Engine, vous pouvez découvrir le reste de Google Cloud Platform. Pour une visite guidée vous apprenant à créer une application qui utilise la plate-forme dans son intégralité, et pas seulement App Engine, consultez notre guide de démarrage Créer un livre d'or, dans lequel vous développez cette application simple pour en faire une application de livre d'or à part entière permettant à des comptes Google authentifiés de publier des messages sur une page publique.

En savoir plus sur l'environnement standard App Engine

Voici quelques rubriques vous permettant d'approfondir vos connaissances sur App Engine :