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 en production dans App Engine, ainsi que pour accéder aux services groupés App Engine.
L'environnement simulé applique certaines restrictions de bac à sable, telles que des importations de modules PHP 5 et des fonctions système limitées, mais aucune autre, comme des délais de requêtes ou des quotas.
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 des API Google.
Exécuter le serveur de développement local
Après avoir créé le fichier de configuration app.yaml
pour votre application, vous pouvez démarrer le serveur de développement local avec la commande dev_appserver.py
pour l'exécuter localement.
Pour démarrer le serveur de développement local, procédez comme suit :
Exécuter le serveur de développement local (dev_appserver.py
)
Le serveur de développement local se trouve à l'emplacement [PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
. Pour exécuter l'outil, vous pouvez spécifier le chemin d'accès complet lorsque vous exécutez dev_appserver.py
ou ajouter dev_appserver.py
à votre variable d'environnement PATH
.
Si vous souhaitez ajouter les outils de Google Cloud CLI à votre chemin PATH
et activer l'achèvement de commande, exécutez la commande suivante :
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
Exécutez la commande
dev_appserver.py
dans le répertoire contenant votre fichier de configurationapp.yaml
. Si Python 2 n'est pas l'interpréteur par défaut sur votre système, vous devez exécuterpython2 dev_appserver.py
pour vous assurer que l'interpréteur Python 2 est utilisé.Windows/macOS
Spécifiez le chemin d'accès au répertoire de votre application, par exemple :
dev_appserver.py [PATH_TO_YOUR_APP]
Vous pouvez également spécifier le fichier de configuration d'un service spécifique, par exemple :
dev_appserver.py app.yaml
Pour changer le port, incluez l'option
--port
:dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
Linux/cust. php-cgi
Si vous utilisez Linux ou si vous souhaitez utiliser une version personnalisée de
php-cgi
, vous devez spécifier le chemin d'accès au répertoirephp-cgi
:Créez votre propre version de l'extension PHP pour App Engine sur votre machine locale.
Démarrez le serveur de développement local avec les options
--php_executable_path
et--php_gae_extension_path
:dev_appserver.py --php_executable_path=[PATH_TO_PHP_CGI] --php_gae_extension_path=[PATH_TO_APPENGINE_EXTENSION] app.yaml
où
--php_executable_path
correspond à l'emplacement de l'interpréteur PHP que vous utilisez, et--php_gae_extension_path
correspond à l'emplacement du fichiergae_runtime_module.so
que vous avez créé à l'étape précédente.
La commande dev_appserver.py ne s'exécute pas ?
Pour en savoir plus sur les options de la commande
dev_appserver.py
, consultez la section Options du serveur de développement local.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 application
Pour accéder à l'ID de votre application sur le serveur local, par exemple pour simuler une adresse e-mail, utilisez la fonction AppIdentityService::getApplicationId
. Pour obtenir le nom d'hôte de l'application en cours d'exécution, utilisez la fonction AppIdentityService::getDefaultVersionHostname
.
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 vérifier la valeur de la variable d'environnement SERVER_SOFTWARE
.
if (strpos(getenv('SERVER_SOFTWARE'), 'Development') === 0){
echo 'Local development server';
} else {
echo 'Production';
}
Stocker des données
App Engine pour PHP permet de lire et écrire sur Cloud Storage via l'API de flux de PHP. Vous pouvez lire et écrire sur Cloud Storage en spécifiant un URI Cloud Storage (gs://
) lorsque vous utilisez une fonction PHP compatible avec la mise en œuvre des flux PHP, telle que fopen, fwrite ou file_get_contents.
Le serveur de développement local émule cette fonctionnalité en lisant et en écrivant dans des fichiers locaux temporaires qui sont conservés entre les requêtes.
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 :
Accédez au lecteur Datastore dans la console de développement local, (URL :
http://localhost:8000/datastore
)Affichez le contenu du datastore local.
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 createLoginURL
et createLogoutURL
renvoient les URL de /_ah/login
et /_ah/logout
sur le serveur local.
Utiliser le service Mail
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 :
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 :
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 URL Fetch
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.
Déboguer en local avec XDebug
Si vous disposez d'un débogueur compatible avec le débogueur XDebug et que le module xdebug
est installé, vous pouvez utiliser XDebug avec le serveur de développement local.
Pour activer XDebug sur le serveur de développement sous Linux ou macOS, procédez comme suit :
Exportez la variable d'environnement
XDEBUG_CONFIG
avec une clé ide pour que votre IDE s'y connecte :export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
Appelez le serveur de développement avec l'option
--php_remote_debugging=yes