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 :
Préparez le code source de votre application. Votre code source doit être stocké dans un dépôt tel que GitHub ou Bitbucket.
Pour exécuter les commandes
gcloudsur cette page, installez Google Cloud CLI.
Autorisations requises pour la gestion de l'authentification et des accès
-
Dans la console Google Cloud , accédez à la page Autorisations settings Cloud Build :
Pour le compte de service Cloud Build spécifié ou le compte de service Cloud Build par défaut, définissez l'état des rôles suivants sur Activé :
- Administrateur App Engine (
roles/appengine.appAdmin) : permet à Cloud Build de déployer de nouvelles versions sur App Engine.- Dans le panneau "Attribuer le rôle Utilisateur du compte de service", choisissez un compte de service à emprunter, puis cliquez sur Accorder l'autorisation.
- Administrateur de l'espace de stockage (
roles/storage.admin) : permet de lire et d'écrire des données dans Cloud Storage. - Rédacteur Artifact Registry (
roles/artifactregistry.writer) : permet d'extraire des images d'Artifact Registry et d'y écrire des données. - Rédacteur de journaux (
roles/logging.logWriter) : permet d'écrire des entrées de journal dans Cloud Logging. - Éditeur Cloud Build (
roles/cloudbuild.builds.editor) : permet à votre compte de service d'exécuter des builds.
- Administrateur App Engine (
Configurer le déploiement
Cloud Build vous 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 l'image cloud-sdk en tant qu'étape de compilation dans votre fichier de configuration pour appeler des commandes gcloud dans cette image.
Les arguments transmis à cette étape de compilation sont directement transmis à gcloud CLI, 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.yamloucloudbuild.json.Dans le fichier de configuration :
- Ajoutez un champ
namepour spécifier l'étape de compilationcloud-sdk. - Ajoutez un champ
entrypointpour utiliser l'outilbashlorsquecloud-sdkest appelé. Dans le champ
args, appelez la commandegcloud app deployet définissez un champtimeoutqu'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 deploydure 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_DIRECTORYcorrespond au chemin d'accès ou à l'URL du code source etREGIONà l'une des régions de compilation compatibles :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 sur les fonctions Cloud Run.
- Apprenez à déployer sur Firebase
- Découvrez comment résoudre les erreurs de compilation.