Google Cloud CLI pour Java contient un serveur de développement local permettant de tester votre application sur votre ordinateur. Ce serveur émule l'environnement d'exécution Java d'App Engine et tous ses services, y compris Datastore.
Exécuter le serveur Web de développement
Pour en savoir plus sur la définition des propriétés système et des variables d'environnement de votre application, consultez la page Mode de traitement des requêtes.
Vous pouvez également exécuter le serveur Web de développement à partir d'une invite de commande. La commande à exécuter se trouve dans le répertoire google-cloud-sdk/bin/
du SDK.
Syntaxe de la commande Windows :
google-cloud-sdk\bin\java_dev_appserver.cmd [options] [WAR_DIRECTORY_LOCATION]
Syntaxe de la commande Linux ou macOS :
google-cloud-sdk/bin/java_dev_appserver.sh [options] [WAR_DIRECTORY_LOCATION]
Cette commande utilise l'emplacement du répertoire WAR de votre application en tant qu'argument.
Arrêter le serveur de développement
Pour arrêter le serveur Web, appuyez sur les touches Ctrl-C.
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 méthode SystemProperty.environment.value()
. Exemple :
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// Production
} else {
// Local development server
// which is: SystemProperty.Environment.Value.Development
}
Utiliser l'émulateur Datastore local
Le serveur Web de développement simule Datastore à l'aide d'un datastore local sauvegardé sur fichier sur votre ordinateur. Le datastore est nommé local_db.bin
. Il est créé dans le répertoire WAR de votre application, sous WEB-INF /appengine-generated/
. (il n'est pas transféré avec l'application).
Ce datastore persiste entre les appels du serveur Web. Les données que vous stockez seront donc toujours disponibles lors de la prochaine exécution du serveur Web. Pour effacer le contenu du datastore, arrêtez le serveur, puis supprimez ce fichier.
Comme décrit dans la section Configurer les index Datastore, le serveur de développement peut générer une configuration pour les index Datastore nécessaires à votre application, déterminée à partir des requêtes effectuées lors du test. Un fichier nommé datastore-indexes-auto.xml
est alors généré dans le répertoire WEB-INF/appengine-generated/
du fichier d'archives WAR. Pour désactiver la configuration automatique des index, créez ou modifiez le fichier datastore-indexes.xml
dans le répertoire WEB-INF/
à l'aide de l'attribut autoGenerate="false"
pour l'élément <datastore-indexes>
.
Parcourir Datastore dans le serveur de développement
Pour parcourir votre datastore local à l'aide du serveur Web de développement, procédez comme suit :
- Démarrez le serveur de développement comme indiqué précédemment.
- Accédez à la console de développement.
- Cliquez sur Lecteur Datastore dans le volet de navigation de gauche pour afficher les contenus de votre datastore local.
Modèle de cohérence Cloud Datastore
Par défaut, le datastore local est configuré de sorte que le pourcentage d'écritures Datastore qui ne sont pas immédiatement visibles dans les requêtes globales soit défini sur 10 %.
Pour ajuster ce niveau de cohérence, définissez la propriété système datastore.default_high_rep_job_policy_unapplied_job_pct
sur une valeur correspondant au degré de cohérence à terme que vous souhaitez pour votre application.
-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
Si vous définissez cette propriété à l'aide de l'invite de commande java_dev_appserver.sh
, vous devez utiliser --jvm_flag=...
pour définir la propriété :
google_cloud_sdk/bin/java-dev_appserver.sh --jvm_flag=-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
La plage valide pour datastore.default_high_rep_job_policy_unapplied_job_pct
est comprise entre 0 et 100. Si vous utilisez des nombres situés en dehors de cette plage, vous recevrez un message d'erreur.
Spécifier la stratégie d'allocation automatique d'ID
Vous pouvez configurer la manière dont le datastore local attribue les ID d'entité automatiques (notez que ces informations s'appliquent à l'environnement d'exécution Java 11 ainsi qu'à l'environnement d'exécution Java 8).
Les stratégies suivantes d'allocation automatique d'ID sont disponibles sur le serveur de développement :
sequential
- Les ID sont attribués à partir de la séquence d'entiers consécutifs.
scattered
- Les ID sont attribués à partir d'une séquence non répétitive d'entiers distribués de manière quasiment uniforme.
La règle par défaut dans le datastore local est scattered
.
Pour spécifier la règle d'identification automatique, définissez la propriété système datastore.auto_id_allocation_policy
sur sequential
ou scattered
.
-Ddatastore.auto_id_allocation_policy=scattered
Pour définir cette propriété système via un indicateur transmis à la macro dev_appserver, procédez comme suit :
java_dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered
Simuler des comptes utilisateur
Le serveur Web de développement simule le service Google Accounts à l'aide de ses propres pages de connexion et de déconnexion. Lorsqu'elles s'exécutent sur le serveur Web de développement, les méthodes générant des URL de connexion et de déconnexion renvoient des URL pour /_ah/login
et /_ah/logout
sur le serveur local.
La page de connexion de développement contient un formulaire dans lequel vous pouvez entrer une adresse e-mail. Au cours de la session, l'adresse que vous avez entrée en tant qu'utilisateur actif est utilisée.
Pour que l'application considère que l'utilisateur connecté est un administrateur, cochez la case "Se connecter en tant qu'administrateur" du formulaire.
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 Web de développement exécute cette requête directement à partir de votre ordinateur. Lorsque l'application s'exécute sous App Engine et si vous utilisez un serveur proxy pour accéder aux sites Web, le comportement de ce serveur peut être différent.
Console de développement
Le serveur Web de développement contient une application de console Web. Elle vous permet de parcourir le datastore local.
Pour accéder à la console, utilisez l'URL /_ah/admin
sur votre serveur : http://localhost:8080/_ah/admin.
Arguments de ligne de commande
Pour connaître les options de commande du serveur de développement local, cliquez ici.