Ce tutoriel s'adresse à ceux qui débutent dans la création d'applications sur le cloud, tels que les ingénieurs et les développeurs Web, et qui souhaitent connaître les concepts clés du développement d'applications sur Google Cloud.
Objectifs
- Découvrez les outils Google Cloud de base, tels que Google Cloud Console et
gcloud
. - Déployer votre application dans l'environnement standard App Engine
- Faire persister vos données avec Cloud Firestore
- Stocker des fichiers importés dans Cloud Storage
- Surveiller votre application à l'aide de la suite Google Cloud Operations
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Les instructions de ce document sont conçues pour que votre utilisation des ressources respecte les limites du niveau Toujours gratuit de Google Cloud.
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Pour créer une base de données Firestore en mode natif, effectuez la procédure suivante :
-
Dans Cloud Console, accédez à la page Firestore Viewer.
Accéder au lecteur Firestore - Sur l'écran Select a Cloud Firestore mode (Sélectionner un mode Cloud Firestore), cliquez sur Select Native Mode (Sélectionner le mode natif).
- Sélectionnez un emplacement pour votre base de données Firestore. Ce paramètre d'emplacement correspond à l'emplacement par défaut des ressources Google Cloud de votre projet Cloud. Cet emplacement est utilisé pour les services Google Cloud exploités dans votre projet Cloud qui requièrent un paramètre d'emplacement, plus précisément le bucket Cloud Storage par défaut et l'application App Engine.
- Cliquez sur Create Database (Créer une base de données).
-
Dans Cloud Console, accédez à la page Firestore Viewer.
-
Enable the App Engine Admin, Cloud Storage, Cloud Logging, and Error Reporting APIs.
-
Clonez l'exemple de dépôt et ouvrez l'exemple d'application dans Cloud Shell :
Accéder à Cloud ShellCloud Shell vous permet d'accéder en ligne de commande à vos ressources Google Cloud, directement depuis votre navigateur.
- Pour télécharger l'exemple de code et accéder au répertoire de l'application, cliquez sur Continuer.
-
Dans Cloud Shell, configurez l'outil
gcloud
pour qu'il utilise votre nouveau projet Google Cloud :# Configure gcloud for your project gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID du projet Google Cloud que vous avez créé à l'aide de Cloud Console.
La CLI Google Cloud est le principal moyen d'interagir avec vos ressources Google Cloud via la ligne de commande. Dans ce tutoriel, vous allez utiliser l'outil
gcloud
pour déployer et surveiller votre application.
Exécuter votre application
-
Dans Cloud Shell, installez vos dépendances d'application à l'aide de
pip
:pip3 install -r requirements.txt --user
-
Installez le serveur HTTP Gunicorn :
pip3 install gunicorn --user
-
Exécutez le serveur HTTP Gunicorn :
~/.local/bin/gunicorn -b :8080 main:app
- Dans Cloud Shell, cliquez sur Aperçu sur le Web, puis sélectionnez Prévisualiser sur le port 8080. Une nouvelle fenêtre s'affiche avec votre application en cours d'exécution.
Déployer votre application sur App Engine
Google Cloud permet d'exécuter du code de plusieurs façons. Dans cet exemple, vous utilisez App Engine pour déployer une application évolutive sur Google Cloud. Grâce à des déploiements ne nécessitant aucune configuration ni aucune gestion de serveur, App Engine vous permet de vous concentrer sur l'écriture du code. De plus, App Engine évolue automatiquement pour gérer les pics de trafic soudains.
Le fichierapp.yaml
est le fichier de configuration principal pour le déploiement sur App Engine :
-
Dans la fenêtre de terminal, déployez l'application sur App Engine à l'aide de la CLI gcloud:
# on the command-line gcloud app deploy
-
Dans votre navigateur Web, saisissez l'URL suivante:
https://PROJECT_ID.REGION_ID.r.appspot.com
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.REGION_ID
: code attribué par App Engine à votre application
Pour plus d'informations sur le déploiement sur App Engine, consultez la page Environnement d'exécution Python 3.
Faire persister vos données avec Firestore
Vous ne pouvez pas stocker d'informations sur vos instances App Engine, car elles sont perdues si l'instance redémarre et n'existent pas lorsque des instances sont créées. À la place, vous devez utiliser une base de données, sur laquelle vos instances effectuent toutes leurs opérations de lecture et d'écriture.
Google Cloud permet de stocker des données de plusieurs façons. Dans cet exemple, vous utilisez Firestore pour stocker les données de chaque livre. Firestore est une base de données de documents NoSQL entièrement gérée et sans serveur qui permet de stocker et d'interroger des données. Firestore effectue un autoscaling en fonction des besoins de votre application et n'exploite aucune instance lorsque vous ne l'utilisez pas. Ajoutez votre premier livre dès aujourd'hui.
-
Dans votre navigateur Web, saisissez l'URL suivante:
https://PROJECT_ID.REGION_ID.r.appspot.com
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.REGION_ID
: code attribué par App Engine à votre application
-
Pour créer un livre à partir de l'application déployée, cliquez sur Add book (Ajouter un livre).
- Dans le champ Title (Titre), saisissez
Moby Dick
. - Dans le champ Author (Auteur), saisissez
Herman Melville
. -
Cliquez sur Enregistrer. L'application Bookshelf possède désormais une entrée.
- Pour actualiser la page Firestore dans Cloud Console, cliquez sur Actualiser refresh. Les données s'affichent dans Firestore. L'application Bookshelf stocke chaque livre sous la forme d'un document Firestore ayant un ID unique, et tous ces documents sont stockés dans une collection Firestore. Dans ce tutoriel, la collection s'appelle "books" (livres).
Firestore stocke les livres à l'aide de la bibliothèque cliente Firestore. Voici un exemple de récupération d'un document Firestore :
Pour en savoir plus sur l'utilisation de Firestore, consultez l'article Ajouter des données.
Stocker des fichiers importés dans Cloud Storage
Maintenant que vous avez ajouté un livre, vous pouvez ajouter l'image de sa couverture. Vous ne pouvez pas stocker de fichiers sur vos instances. Une base de données n'est pas adaptée aux fichiers image. Utilisez plutôt Cloud Storage.
Cloud Storage est le principal magasin de blobs pour Google Cloud. Vous pouvez utiliser Cloud Storage pour héberger des éléments d'applications que vous voulez partager sur Google Cloud. Pour utiliser Cloud Storage, vous devez créer un bucket Cloud Storage, c'est-à-dire un conteneur de base permettant de conserver vos données.
- Dans Cloud Console, accédez à la page Cloud Storage Browser.
- Cliquez sur Créer un bucket.
- Dans la boîte de dialogue Créer un bucket, saisissez le nom du bucket en ajoutant l'ID du projet Google Cloud à la chaîne
_bucket
. Le nom de votre bucket doit ressembler à ceci :YOUR_PROJECT_ID_bucket
. Ce nom doit respecter les exigences concernant les noms de buckets. Vous pouvez conserver les valeurs par défaut de tous les autres champs. - Cliquez sur Create (Créer).
- Une fois le bucket créé, vous devez rendre les objets accessibles publiquement pour que les utilisateurs puissent les afficher. Pour savoir comment procéder, consultez la page Rendre des données publiques.
-
Cliquez sur Edit book (Modifier le livre), puis sélectionnez une image à importer pour sa couverture. Vous pouvez, par exemple, utiliser cette image du domaine public :
-
Cliquez sur Enregistrer. Vous êtes redirigé vers la page d'accueil sur laquelle se trouve une entrée de votre application Bookshelf.
L'application Bookshelf envoie les fichiers importés vers Cloud Storage à l'aide de la bibliothèque cliente Cloud Storage.
Pour en savoir plus sur l'utilisation de Cloud Storage, consultez la liste des guides d'utilisation.
Surveiller votre application à l'aide de la suite Google Cloud Operations
Vous avez déployé votre application, et créé et modifié des livres. Utilisez les outils de gestion des performances des applications pour surveiller ces événements pour vos utilisateurs.
Surveiller les journaux à l'aide de Cloud Logging
Cloud Console
-
Dans le navigateur, accédez à l'URL
/logs
dans l'application :https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Cette action entraîne l'envoi d'une entrée personnalisée à Cloud Logging. Cette entrée présente un niveau de gravité d'entrée de journal
NOTICE
et contient le message "Hey, you triggered a custom log entry. Good job!" (Vous avez déclenché une entrée de journal personnalisée. Félicitations !). -
Accédez à la visionneuse de journaux pour surveiller votre application en temps réel. Lorsqu'un problème survient, ayez le réflexe de la consulter.
-
Dans la liste déroulante des ressources, sélectionnez
GAE Application
. -
Dans la liste déroulante des journaux, sélectionnez Tous les journaux.
Une ligne concerne votre entrée de journal personnalisée.
gcloud
-
Dans la fenêtre de terminal, utilisez la CLI Google Cloud pour surveiller les journaux de votre application en recherchant les nouvelles entrées de journal:
gcloud app logs tail
-
Dans le navigateur, accédez à l'URL
/logs
dans l'application :https://PROJECT_ID.REGION_ID.r.appspot.com/logs
Cette action entraîne l'envoi d'une entrée personnalisée à Cloud Logging. Cette entrée présente un niveau de gravité d'entrée de journal
NOTICE
et contient le message "Hey, you triggered a custom log entry. Good job!" (Vous avez déclenché une entrée de journal personnalisée. Félicitations !).Le résultat de la commande
gcloud
contient la nouvelle entrée de journal :Waiting for new log entries... 2019-03-27 22:17:01 default[20190327t151430] "Hey, you triggered a custom log entry. Good job!"
Surveiller les erreurs à l'aide d'Error Reporting
-
Dans Cloud Console, accédez à la page Error Reporting.
Accéder à la page Error Reporting
Error Reporting met en évidence les erreurs et les exceptions dans votre application, et vous permet de configurer des alertes à leur sujet. -
Dans le navigateur, accédez à l'URL
/errors
dans l'application.
https://PROJECT_ID.REGION_ID.r.appspot.com/errors
Vous générez ainsi une nouvelle exception de test, qui est envoyée à la suite pour les opérations de Google Cloud.
-
Dans Cloud Console, revenez sur la page Error Reporting. Après quelques instants, la nouvelle erreur est visible. Cliquez sur Actualisation automatique pour ne pas avoir à actualiser la page manuellement.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.