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. L'ajout de REGION_ID.r
dans les URL App Engine est facultatif pour les applications existantes. Il sera bientôt obligatoire pour toutes les applications nouvelles.
Pour assurer une transition en douceur, nous mettons lentement à jour App Engine afin d'utiliser les ID de région. Si nous n'avons pas encore mis à jour votre projet Google Cloud, vous ne verrez pas d'ID de région pour votre application. Étant donné que l'ID est facultatif pour les applications existantes, vous n'avez pas besoin de mettre à jour les URL ni d'effectuer d'autres modifications une fois l'ID de région disponible pour vos applications existantes.
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 vérifier que votre application fonctionne correctement avant de la déployer, exécutez-la dans l'environnement local avec les outils de développement que vous utilisez habituellement.
Déployer l'application
Déployez votre application sur App Engine à l'aide de la commande gcloud app deploy
.
Cette commande crée automatiquement une image du conteneur à l'aide du service Cloud Build, puis déploie cette image dans l'environnement flexible App Engine. Le conteneur inclura toutes les modifications locales que vous avez déjà apportées à l'image de l'environnement d'exécution.
Pour déployer vos applications par programmation, utilisez l'API Admin.
Avant de commencer
Avant de déployer votre application, les conditions suivantes doivent être remplies :
Le propriétaire du projet Cloud doit activer App Engine.
assurez-vous que votre compte utilisateur inclut les droits requis.
Garantir la réussite d'un déploiement
Si vous activez les vérifications de l'état mises à jour, les déploiements sont annulés si votre application n'atteint pas un état sain.
Lorsque vous déployez votre première application dans l'environnement flexible, un délai peut s'écouler lors de la configuration de votre machine virtuelle (VM) et des autres infrastructures.
Une fois la configuration initiale terminée, les vérifications de l'état s'assurent que votre instance est opérationnelle et prête à recevoir du trafic. Si votre application n'est pas prête dans le délai indiqué par le champ initial_delay_sec
de la section liveness_check
du fichier app.yaml, votre déploiement échoue et est annulé.
Votre application a peut-être besoin de davantage de temps pour être prête. Par exemple, vous devrez peut-être télécharger des fichiers volumineux ou pré-charger des caches pour initialiser votre application. Si vous utilisez les vérifications d'état mises à jour, vous pouvez augmenter ce délai en modifiant le paramètre de configuration app_start_timeout_sec
dans la section readiness_check
du fichier app.yaml
.
Si votre déploiement échoue, assurez-vous que l'API Cloud Build est activée dans votre projet. App Engine active automatiquement cette API la première fois que vous déployez une application, mais si quelqu'un l'a désactivée depuis, les déploiements échouent.
Déployer un service
Vous déployez votre application sur App Engine en mettant en œuvre des versions de ses services et de chacun de leurs fichiers de configuration.
Pour déployer une version du service de votre application, exécutez la commande suivante à partir du répertoire contenant le fichier app.yaml
de votre service :
gcloud app deploy
Le fait de ne spécifier aucun fichier avec la commande a pour effet de ne déployer que le fichier app.yaml
dans votre répertoire actuel. Par défaut, la commande deploy
génère un ID unique pour la version que vous déployez, déploie la version dans le projet Cloud pour lequel vous avez configuré l'outil gcloud
, et achemine l'ensemble du trafic vers la nouvelle version.
Vous pouvez modifier le comportement par défaut de la commande en ciblant des fichiers spécifiques ou en incluant des paramètres supplémentaires :
Pour déployer les autres fichiers de configuration de votre service, vous devez les cibler et les déployer chacun séparément. Exemple :
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
Pour spécifier un ID de version personnalisé, utilisez l'option
--version
.Pour empêcher que le trafic ne soit automatiquement acheminé vers la nouvelle version, utilisez l'option
--no-promote
.Pour effectuer un déploiement dans un projet Cloud spécifique, utilisez l'option
--project
.
Par exemple, pour déployer le service défini par le fichier app.yaml
dans un projet Cloud spécifique, attribuez-lui un ID de version personnalisé et empêchez que le trafic ne soit acheminé vers la nouvelle version :
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
Pour en savoir plus sur cette commande, consultez la documentation de référence sur gcloud app deploy
.
Déployer plusieurs services
La même commande de déploiement permet de déployer ou mettre à jour les différents services constituant votre application.
Pour déployer plusieurs services, vous devez déployer séparément le fichier app.yaml
de chaque service. Exemple :
gcloud app deploy service1/app.yaml
gcloud app deploy service2/app.yaml
Vous pouvez spécifier plusieurs fichiers à l'aide d'une seule commande de déploiement :
gcloud app deploy service1/app.yaml service2/app.yaml
Conditions requises pour déployer plusieurs services
Pour pouvoir créer et déployer des services supplémentaires, vous devez d'abord déployer une version de votre application sur le service
default
.L'ID de chacun de vos services doit être spécifié dans les fichiers de configuration
app.yaml
correspondants. Pour spécifier l'ID d'un service, incluez la définition de l'élémentservice
dans chaque fichier de configuration. Par défaut, le fait d'exclure cette définition d'élément de votre fichier de configuration entraîne le déploiement de la version sur le servicedefault
.
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
Pour 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 votre image dans l'indicateur --image-url
de la commande :
gcloud app deploy --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 PHP
Si vous souhaitez créer de toutes pièces une application d'exécution personnalisée PHP, utilisez une image de base fournie dans votre fichier Dockerfile :
Version | Commande Docker |
---|---|
PHP 5.6 | FROM gcr.io/google-appengine/php56 |
PHP 7.0 | FROM gcr.io/google-appengine/php70 |
PHP 7.1 | FROM gcr.io/google-appengine/php71 |
PHP 7.2 | FROM gcr.io/google-appengine/php72 |
PHP 7.3 | FROM gcr.io/google-appengine/php73 |
Le code source des images de base est disponible à l'adresse suivante : https://github.com/GoogleCloudPlatform/php-docker
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
:
Déployez votre nouvelle version et ajoutez l'indicateur
--no-promote
:gcloud app deploy --no-promote
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 la visionneuse 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.Lorsque vous souhaitez envoyer du trafic vers la nouvelle version, utilisez Cloud Console pour migrer le trafic :
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 :
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
peut échouer lorsqu'elle tente d'exécuter la commandegcloud 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.