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, la déployer et la tester sur App Engine.
Exécuter localement
Pour tester votre application avant le déploiement, exécutez-la dans l'environnement local avec les outils de développement que vous utilisez habituellement.
Déployer votre application
Déployez votre application sur App Engine à l'aide de la commandegcloud app deploy
.
Le service Cloud Build compile automatiquement votre déploiement dans une image de conteneur, puis déploie cette image dans l'environnement flexible App Engine. Le conteneur inclut 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 Google Cloud doit configurer votre projet Google Cloud pour App Engine.
assurez-vous que votre compte utilisateur inclut les droits requis.
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.
Vous pouvez déployer les autres fichiers de configuration de votre service en ciblant et en déployant chaque fichier 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 Google Cloud spécifique, utilisez l'option
--project
.
Par exemple, pour déployer le service défini par le fichier app.yaml
dans un projet Google 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, consultez la documentation de référence sur gcloud app deploy
.
Vous pouvez définir des propriétés pour gcloud CLI, et créer et gérer des configurations de SDK. Ainsi, vous n'avez pas besoin de spécifier des options telles que --project
à chaque déploiement.
Ignorer les 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
.
Créer manuellement un conteneur pour le déploiement
Pour créer vos images de conteneur en dehors de Google Cloud, procédez comme suit :
- Importez vos images dans un dépôt Artifact Registry. Pour en savoir plus, consultez la page Transférer et extraire des images.
- Déployez sur 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 Artifact Registry, puis spécifier l'URL de l'image que vous souhaitez utiliser dans l'option --image-url
de la commande :
gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
Remplacez :
LOCATION par l'emplacement du dépôt où l'image est stockée.
PROJECT-ID par l'ID de votre projet Google Cloud.
REPOSITORY par le nom du dépôt où l'image est stockée.
IMAGE par le nom de votre image de conteneur
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 les pages Déployer sur App Engine et Créer et gérer des déclencheurs de compilation dans la documentation Cloud Build.
Images de base Docker
Si vous souhaitez créer une application d'exécution personnalisée, consultez la page Créer un fichier 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 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 versionet incluez l'option
--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 l'explorateur de journaux de la console Google Cloud. 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 la console Google Cloud 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 :
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Pour en savoir plus sur le ciblage de services et de versions spécifiques, consultez la page Mode de routage des requêtes.
Utiliser des variables d'environnement de compilation
Vous pouvez définir des variables d'environnement de compilation pour les environnements d'exécution compatibles avec les packs de création.
Les variables d'environnement de compilation sont des paires clé/valeur que vous pouvez spécifier pour configurer le buildpack à utiliser pour déployer votre application. Par exemple, vous voudrez peut-être spécifier des options de compilateur.
Avant de commencer :
- Les clés doivent commencer par une lettre ASCII en majuscule et peuvent inclure des lettres ASCII en majuscules, des chiffres et des traits de soulignement.
- Vous devez éviter de créer des variables avec un préfixe de clé
GOOGLE_*
. - Les clés suivantes sont réservées à l'usage de Google :
GOOGLE_RUNTIME
GOOGLE_RUNTIME_VERSION
GOOGLE_ENTRYPOINT
GOOGLE_DEVMODE
- Vous pouvez utiliser n'importe quelle clé compatible avec les packs de création.
Pour utiliser des variables d'environnement avec des packs de création, spécifiez le champ build_env_variables
dans votre fichier app.yaml
.
En savoir plus sur les packs de création.
Utiliser Cloud Trace
Cloud Trace est utile pour comprendre comment les requêtes se propagent dans votre application. Consultez des informations détaillées sur la latence d'une seule requête, ou affichez la latence totale de votre application.
Vous pouvez afficher les détails des traces. Vous pouvez filtrer la liste de traces en fonction de votre service et de votre version App Engine spécifiques.
Résoudre les problèmes
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 Google 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 Google Cloud peut 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. L'erreur apparaît lorsque ce bucket ne peut pas être créé, comme dans les scénarios suivants :
L'agent de service de l'environnement flexible App Engine n'est pas présent dans votre projet ou ne dispose pas du rôle
App Engine flexible environment Service Agent
. Vous pouvez rajouter le compte de service de l'agent dans votre projet en lui accordant les autorisations IAM appropriées. Consultez la section Restaurer un agent de service supprimé.Le compte de service App Engine par défaut n'est pas présent dans votre projet. Si le compte de service App Engine a été supprimé il y a moins de 30 jours, vous pouvez le restaurer.
Votre projet appartient à une organisation appliquant la règle
constraints/gcp.resourceLocations
et n'autorise pas la création de ressources dans la même région où votre application App Engine a été créée. Vous devez ignorer la règleconstraints/gcp.resourceLocations
appliquée pour votre projet et autoriser les emplacements multirégionaux dans la même région que votre application App Engine.
Par exemple, si votre application App Engine est créée dans la région
europe-west
, même si cette région est mappée aux emplacementseurope-west1
, vous devrez modifier la contrainte pour autoriser les ressources dansin:eu-locations
, qui inclut toutes les régionsEU
. Cette étape est nécessaire, car les buckets créés par App Engine sont multirégionaux. Si votre application App Engine est créée dans la régionUS
, vous devez autoriserin:us-locations
. Si votre application est créée dans les régionsASIA
, vous devez autoriserin:asia-locations
.[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é. Essayez d'exécuter les commandes suivantes :
- Assurez-vous que votre configuration
app.yaml
est valide. - Assurez-vous que votre environnement flexible App Engine répond à toutes les exigences de configuration d'un VPC partagé. Consultez la page Utiliser l'environnement flexible App Engine sur un réseau VPC partagé.
- Assurez-vous de disposer de comptes de service configurés dans votre projet. Si ce n'est pas le cas, vous devez restaurer les comptes. 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éé.
- Assurez-vous que votre configuration
Si le problème persiste, redéployez votre service à l'aide de Google Cloud SDK. Veillez à ajouter l'option
--verbosity=debug
. Contactez l'assistance Google Cloud et indiquez 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. Pour résoudre le problème, étendez les plages VPC sur le sous-réseau configuré pour votre service d'environnement flexible App Engine.