Google Cloud CLI comprend un serveur de développement local (dev_appserver.py), que vous pouvez utiliser pour simuler l'exécution de votre application App Engine en production, ainsi que pour accéder aux anciens services groupés App Engine. L'environnement simulé applique certaines restrictions de bac à sable, telles que la limitation des importations de modules de langage d'exécution et des fonctions système. En revanche, d'autres éléments, tels que les délais de requêtes ou les quotas, ne sont pas affectés.
Le serveur de développement local simule également les services fournis par les bibliothèques du SDK pour App Engine, y compris Datastore, Memcache et les files de tâches, en effectuant leurs tâches localement. Lorsque votre application s'exécute sur le serveur de développement, vous pouvez toujours effectuer des appels d'API distants vers l'infrastructure de production à l'aide des points de terminaison HTTP de l'API Google.
Configurer le serveur de développement local
Pour exécuter l'outil de serveur de développement local, vous devez d'abord appliquer la procédure suivante :
- Vérifiez que vous avez installé un interpréteur Python 3 compatible avec la version de Python requise par gcloud CLI.
Vérifiez que vous avez installé le composant Google Cloud CLI qui inclut l'extension App Engine pour Python 3 (
app-engine-python) :gcloud components listSi le composant
app-engine-pythonn'est pas installé, exécutez la commande suivante :gcloud components install app-engine-pythonIdentifiez le chemin d'installation de Google Cloud SDK en exécutant la commande suivante :
gcloud infoLa commande renvoie le répertoire racine dans lequel vous avez installé Google Cloud SDK. Par exemple :
Installation Root: [/Users/myname/google-cloud-sdk]Identifiez le chemin d'accès à l'outil
dev_appserver.py, dans le dossier/bin/où vous avez installé Google Cloud CLI, par exemple :CLOUD_SDK_ROOT/bin/dev_appserver.pyNotez le chemin d'accès à
dev_appserver.py, dont vous aurez besoin par la suite.
Exécuter le serveur de développement local
Après avoir configuré le serveur de développement local et créé le fichier de configuration app.yaml pour votre application, vous pouvez utiliser la commande dev_appserver.py pour exécuter votre application localement.
Pour démarrer le serveur de développement local, procédez comme suit :
-
Exécutez la commande
dev_appserver.pydans le répertoire contenant votre fichier de configurationapp.yaml.dev_appserver.py
Spécifiez le chemin d'accès au répertoire de votre application, par exemple :
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py PATH_TO_YOUR_APPVous pouvez également spécifier le fichier de configuration d'un service spécifique, par exemple :
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlPour changer le port, incluez l'option
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 PATH_TO_YOUR_APPgoapp serve
La commande
goapp serveest incluse dans le SDK App Engine pour Go d'origine et encapsule l'outil Pythondev_appserver.pysous-jacent. Pour démarrer le serveur de développement local, exécutez :goapp serve - Le serveur de développement local est désormais en cours d'exécution et à l'écoute des requêtes. Vous pouvez saisir l'adresse http://localhost:8080/ dans votre navigateur Web pour voir l'application en action.
Si vous avez spécifié un port personnalisé avec l'option
--port, n'oubliez pas d'ouvrir votre navigateur pour ce port.
Pour arrêter le serveur local à partir de la ligne de commande, appuyez sur les touches suivantes :
- macOS ou Linux : Contrôle+C
- Windows : Contrôle+Pause
Spécifier des ID d'application
Pour accéder à l'ID de votre application sur le serveur local, par exemple pour simuler une adresse e-mail, utilisez la fonction appengine.AppID.
Pour obtenir le nom d'hôte de l'application en cours d'exécution, utilisez la fonction appengine.DefaultVersionHostname.
Détecter l'environnement d'exécution de l'application
Pour déterminer si votre code est en cours d'exécution en production ou sur le serveur de développement local, vous pouvez appeler la méthode IsDevAppServer(). Lorsque la valeur est true, le code est exécuté dans l'environnement de développement local. Sinon, vous êtes en production.
Pour voir un exemple, consultez la section GitHub.
Utiliser le service Datastore local
Le serveur de développement local simule le App Engine Datastore à l'aide d'un fichier local persistant entre les appels du serveur local.
Pour en savoir plus sur les index et index.yaml, consultez la page Index Datastore.
Parcourir le datastore local
Si votre application a écrit des données sur votre datastore local à l'aide du serveur de développement local, vous pouvez les parcourir dans la console de développement local.
Pour parcourir le Datastore local, procédez comme suit :
Accédez au lecteur Datastore dans la console de développement local, L'URL est
http://localhost:8000/datastore.Affichez le contenu du datastore local.
Spécifier la stratégie d'attribution d'ID
Pour App Engine en production, vous pouvez configurer le datastore pour qu'il génère automatiquement des ID d'entité.
Bien que les stratégies d'attribution automatique d'ID pour le serveur de production soient complètement différentes de celles utilisées par le serveur de développement, vous pouvez également définir la stratégie d'attribution automatique d'ID pour le serveur local.
Pour spécifier la règle d'attribution automatique d'ID, utilisez l'option --auto_id_policy :
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --auto_id_policy=sequential
où --auto_id_policy peut avoir l'une des valeurs suivantes :
scattered: (par défaut) les identifiants sont attribués à partir d'une séquence non répétitive d'entiers répartis de manière quasi uniforme.sequential: les ID sont attribués à partir de la séquence d'entiers consécutifs.
Effacer le datastore local
Pour effacer le Datastore local d'une application, invoquez le serveur de développement local comme suit :
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --clear_datastore=yes app.yaml
Modifier l'emplacement du datastore local
Pour modifier l'emplacement utilisé pour le fichier du Datastore, utilisez l'option --datastore_path :
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
Utiliser le service de messagerie
Le serveur de développement local peut envoyer des e-mails pour les appels au service de messagerie App Engine à l'aide d'un serveur SMTP ou d'une installation locale de Sendmail.
Utiliser SMTP
Pour activer la messagerie avec un serveur SMTP, appelez dev_appserver.py comme suit :
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
où vous définissez les options --smtp_host, --smtp_port, --smtp_user et --smtp_password avec vos propres valeurs.
Utiliser Sendmail
Pour activer la messagerie avec Sendmail, appelez dev_appserver.py comme suit :
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Le serveur local utilise la commande sendmail pour envoyer des e-mails avec la configuration par défaut de votre installation.
Utiliser le service de récupération d'URL
Lorsque l'application utilise l'API URL Fetch pour exécuter une requête HTTP, le serveur de développement local effectue la requête directement à partir de votre ordinateur. Si vous accédez aux sites Web via un serveur proxy, le comportement du service URL Fetch sur le serveur local peut être différent de celui d'App Engine en production.
Utiliser le service Users
App Engine fournit un service Users pour simplifier l'authentification et les autorisations de votre application. Le serveur de développement local simule le comportement des comptes Google avec ses propres pages de connexion et de déconnexion.
Lorsque qu'elles s'exécutent sur le serveur de développement local, les fonctions LoginURL et LogoutURL renvoient les URL de /_ah/login et /_ah/logout sur le serveur local.
Arguments de ligne de commande
Pour connaître les options de commande du serveur de développement local, consultez la page Options du serveur de développement local.