Cette page explique comment déployer des applications sur App Engine à l'aide de Cloud Build. Si vous débutez avec Cloud Build, commencez par lire les Guides de démarrage rapide et la Présentation de la configuration des compilations.
App Engine est une plate-forme sans serveur entièrement gérée pour le développement et l'hébergement d'applications Web à grande échelle. Pour plus d'informations, consultez la documentation sur App Engine.
Avant de commencer
Activez l'API App Engine :
Pour exécuter les commandes
gcloud
sur cette page, installez la Google Cloud CLI ;Gardez à portée de main le code source de votre application que vous souhaitez créer et déployer sur App Engine. Votre code source doit être stocké dans un dépôt, tel que Cloud Source Repositories, GitHub ou Bitbucket.
Autorisations IAM requises
Dans la console Google Cloud, sélectionnez votre projet.
Attribuez le rôle Compte de service Cloud Build au compte de service par défaut d'App Engine. Si le compte de service ne s'affiche pas dans la liste, recherchez-le sur la page Comptes de service.
Attribuez le rôle Administrateur App Engine et Utilisateur du compte de service à la compilation. compte de service:
Accédez à la page Paramètres de Cloud Build :
Définissez les rôles Administrateur App Engine et Utilisateur du compte de service sur l'état Activé.
Configurer le déploiement
Cloud Build permet d'exécuter vos tâches à l'aide de n'importe quelle image de conteneur
disponible publiquement. Pour ce faire, spécifiez l'image dans une version step
du fichier de configuration de Cloud Build.
App Engine fournit la commande gcloud app deploy
, qui crée une image avec votre code source, puis la déploie sur App Engine. Vous pouvez utiliser le cloud-sdk
image
en tant qu'étape de compilation dans votre fichier de configuration pour appeler des commandes gcloud
dans l'image.
Les arguments transmis à cette étape de compilation sont directement transmis à la CLI gcloud, ce qui vous permet d'exécuter n'importe quelle commande gcloud
dans cette image.
Pour déployer une application sur App Engine, procédez comme suit :
Créez un fichier de configuration Cloud Build nommé
cloudbuild.yaml
oucloudbuild.json
.Dans le fichier de configuration :
- Ajoutez un champ
name
pour spécifier l'étape de compilationcloud-sdk
. - Ajoutez un champ
entrypoint
pour utiliser l'outilbash
lorsquecloud-sdk
est appelé. Dans le champ
args
, appelez la commandegcloud app deploy
et définissez un champtimeout
qu'utilisera App Engine lorsqu'il appellera Cloud Build. Cela est nécessaire, car les étapes de compilation et les builds Cloud Build possèdent un délai avant expiration par défaut de 10 minutes, et celui des déploiements App Engine peut être plus long. Spécifiez un délai avant expiration plus long pour vous assurer que le build n'expire pas si la commandegcloud app deploy
dure plus de 10 minutes.Erreurs d'expiration de délai lors de l'utilisation de l'environnement standard App Engine : vous pouvez configurer des délais avant expiration comme décrit ici uniquement lorsque vous utilisez l'environnement flexible App Engine. L'environnement standard App Engine ne permet pas de configurer le délai avant expiration de la compilation. Si vous utilisez Cloud Build pour le déploiement dans l'environnement standard App Engine et que votre compilation échoue avec une erreur de délai avant expiration, envisagez d'utiliser l'environnement flexible App Engine ou Cloud Run au lieu de l'environnement standard App Engine.
Ajoutez un délai avant expiration de plus de 10 minutes pour votre build
timeout
.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
- Ajoutez un champ
Démarrez la compilation, où
SOURCE_DIRECTORY
est le chemin ou l'URL de la source. code, etREGION
est l'une des régions de compilation compatibles pour démarrer la compilation:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Déploiement continu
Vous pouvez automatiser le déploiement de votre logiciel dans App Engine en créant des déclencheurs Cloud Build. Vous pouvez configurer vos déclencheurs pour créer et déployer des images chaque fois que vous mettez à jour votre code source.
Pour automatiser votre déploiement dans App Engine, procédez comme suit :
Dans votre dépôt, ajoutez un fichier de configuration contenant des étapes permettant d'appeler la commande
gcloud app deploy
:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
Créez un déclencheur de compilation à l'aide du fichier de configuration créé à l'étape précédente :
Ouvrez la page Déclencheurs dans la console Google Cloud:
Sélectionnez votre projet dans le menu déroulant du sélecteur de projet, en haut de la page.
Cliquez sur Ouvrir.
Cliquez sur Créer un déclencheur.
Sur la page Créer un déclencheur, saisissez les paramètres suivants :
Nommez votre déclencheur.
Sélectionnez l'événement de dépôt pour démarrer le déclencheur.
Sélectionnez le dépôt contenant le code source et le fichier de configuration de compilation.
Indiquez l'expression régulière correspondant au nom de la branche ou du tag qui démarrera votre déclencheur.
Configuration : sélectionnez le fichier de configuration de compilation créé précédemment.
Cliquez sur Créer pour enregistrer le déclencheur de compilation.
Chaque fois que vous transmettez du nouveau code dans votre dépôt, vous démarrez automatiquement une compilation et un déploiement sur App Engine.
Pour en savoir plus sur la création de déclencheurs Cloud Build, consultez la page Créer et gérer des déclencheurs de compilation.
Étape suivante
- Apprenez à déployer sur Cloud Run
- Découvrez comment effectuer des déploiements bleu-vert sur Compute Engine.
- Apprenez à déployer sur GKE
- Découvrez comment déployer des fonctions Cloud Run.
- Apprenez à déployer sur Firebase
- Découvrez comment résoudre les erreurs de compilation.