Tester et déployer votre application

ID de la région

Le REGION_ID est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.

En savoir plus sur les ID de région

Découvrez comment exécuter votre application en local, et la déployer et la tester sur App Engine.

Exécuter l'application en local

Pour tester la fonctionnalité de l'application avant le déploiement, exécutez-la dans l'environnement local avec les outils de développement que vous utilisez habituellement.

Pour en savoir plus, y compris sur les commandes spécifiques aux différents plug-ins, consultez la section Tester en local consacrée à l'environnement d'exécution Java 8/Jetty 9 ou la section Tester en local consacrée à l'environnement d'exécution Java 8.

Déployer votre application

Avant de commencer

Pour que vous puissiez déployer votre application, les conditions suivantes doivent être remplies :

Déployer un service

Vous pouvez utiliser n'importe quel outil pris en charge pour déployer votre application Java dans l'environnement flexible App Engine. Pour le déploiement en ligne de commande, utilisez gcloud app deploy à partir de gcloud CLI ou utilisez les plug-ins Maven ou Gradle. Pour effectuer le déploiement à l'aide d'un IDE, utilisez les plug-ins IntelliJ ou Eclipse. Pour déployer vos applications par programmation, utilisez l'API Admin.

Ignorer des fichiers

Vous pouvez utiliser un fichier .gcloudignore pour spécifier les fichiers et les répertoires à ne pas importer dans Google Cloud lorsque vous déployez vos services. Cette opération est utile pour ignorer les artefacts de compilation et d'autres fichiers qui n'ont pas besoin d'être importés lors du déploiement.

.

Pour en savoir plus sur la syntaxe du fichier .gcloudignore, consultez la documentation de référence gcloud.

Compiler manuellement un conteneur pour le déploiement

Si vous souhaitez créer vos images de conteneur en dehors de Google Cloud Platform, vous devez d'abord importer vos images dans un dépôt d'images de conteneur avant de déployer vos images dans App Engine à l'aide de la commande gcloud app deploy.

Par exemple, si vous créez vos images de conteneur en local avec Docker, vous pouvez les importer dans Google Container Registry, puis spécifier l'URL de l'image que vous souhaitez utiliser dans l'option --image-url de la commande :

gcloud app deploy src/main/appengine/app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE

Utiliser des pipelines de déploiement continu automatisé

Vous pouvez utiliser Cloud Build pour automatiser les déploiements dans des pipelines de déploiement continu. Pour en savoir plus, consultez la section Déployer des artefacts et la page Automatiser les compilations avec des déclencheurs de compilation dans la documentation Cloud Build.

Images de base Docker pour Java

Si vous souhaitez compiler entièrement une application d'exécution personnalisée Java, utilisez une image de base fournie dans le fichier Docker :

Exécution Commande Docker
Java 8 FROM gcr.io/google_appengine/openjdk
Java 8/Jetty 9 FROM gcr.io/google-appengine/jetty

Afficher votre application

Après avoir déployé votre application dans App Engine, vous pouvez exécuter la commande suivante pour lancer votre navigateur et l'afficher à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com :

gcloud app browse

Tester votre application sur App Engine

Avant de configurer une nouvelle version pour recevoir du trafic, vous pouvez la tester sur App Engine. Par exemple, pour tester une nouvelle version de votre service default :

  1. Déployez votre nouvelle version avec le paramètre promote défini sur false :

  2. Affichez la nouvelle version en accédant à l'URL suivante :

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    Vous pouvez maintenant tester la nouvelle version dans l'environnement d'exécution App Engine. Vous pouvez déboguer votre application en affichant ses journaux dans l'explorateur de journaux de Google Cloud Console. Pour en savoir plus, consultez la page Écrire des journaux d'application.

    Les requêtes envoyées à l'adresse https://PROJECT_ID.REGION_ID.r.appspot.com sont toujours acheminées vers la version précédemment configurée pour recevoir du trafic.

  3. Lorsque vous souhaitez envoyer du trafic vers la nouvelle version, utilisez la console Google Cloud pour migrer le trafic :

    Gérer les versions

    Sélectionnez la version que vous venez de déployer et cliquez sur Migrer le trafic.

Vous pouvez utiliser le même processus pour tester de nouvelles versions d'autres services en remplaçant default dans l'URL par le nom de votre service :

Pour en savoir plus sur le ciblage de services et de versions spécifiques, consultez la page Mode de routage des requêtes.

Dépannage

Voici des messages d'erreur courants que vous pouvez rencontrer lorsque vous déployez des applications :

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Si le projet Cloud n'inclut pas l'application App Engine requise, la commande gcloud app deploy risque d'échouer lorsqu'elle tente d'exécuter la commande gcloud app create. Seuls les comptes dotés du rôle Propriétaire disposent des autorisations nécessaires pour créer des applications App Engine.
502 Bad Gateway
Le projet Cloud risque de ne pas démarrer si app.yaml est mal configuré. Consultez les journaux de l'application pour obtenir des messages d'erreur plus détaillés.
[13] An internal error occurred while creating a Cloud Storage bucket.

App Engine crée un bucket multirégional Cloud Storage par défaut en votre nom, dans la même région que votre application. Ce bucket est nécessaire pour stocker le contenu de votre application. Cette erreur est renvoyée lorsque ce bucket ne peut pas être créé, dans les scénarios suivants :

[13] An internal error occurred.

Cette erreur peut se produire si vous déployez votre service avec une configuration réseau utilisant une configuration de VPC partagé. Assurez-vous que votre environnement flexible App Engine répond à toutes les exigences pour cette configuration. Assurez-vous ensuite que les comptes de service configurés pour cette configuration sont bien présents dans votre projet. Si ce n'est pas le cas, vous devrez restaurer les comptes. Notez que la région du sous-réseau du projet hôte de VPC partagé doit correspondre à l'emplacement dans lequel votre environnement App Engine a été créé.

Si le problème persiste bien que la configuration de app.yaml soit valide, utilisez le SDK Google Cloud pour redéployer votre service, en ajoutant l'option --verbosity=debug, puis contactez l'assistance GCP en fournissant le résultat de la commande.

IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.

Si le déploiement échoue avec ce message d'erreur, cela signifie que le réseau configuré pour le service App Engine n'a plus d'adresses à allouer pour les nouvelles instances du service. Vous pouvez résoudre le problème en étendant les plages VPC sur le sous-réseau configuré pour votre service d'environnement flexible App Engine.