Déployer sur App Engine

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 page 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 :

    Activer l'API App Engine

  • Pour exécuter les commandes gcloud sur cette page, installez la CLI Google Cloud.

  • Gardez à portée de main le code source de votre application que vous souhaitez créer et déployer sur App Engine.

Autorisations IAM requises

Attribuez les rôles Administrateur App Engine et Utilisateur du compte de service au compte de service Cloud Build :

  1. Accédez à la page Paramètres de Cloud Build :

    Accéder à la page Paramètres de Cloud Build

  2. 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 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 transmis directement à la CLI gcloud, ce qui vous permet d'exécuter une commande gcloud dans cette image.

Pour déployer une application sur App Engine, procédez comme suit :

  1. Créez un fichier de configuration Cloud Build nommé cloudbuild.yaml ou cloudbuild.json.

  2. Dans le fichier de configuration :

    • Ajoutez un champ name pour spécifier l'étape de compilation cloud-sdk.
    • Ajoutez un champ entrypoint pour utiliser l'outil bash lorsque cloud-sdk est appelé.
    • Dans le champ args, appelez la commande gcloud app deploy et définissez un champ timeout 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 commande gcloud 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"
    }
    
  3. Démarrez la compilation, où SOURCE_DIRECTORY est le chemin d'accès ou l'URL du code source, et REGION 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 :

  1. 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"
    }
    
  2. Créez un déclencheur de compilation à l'aide du fichier de configuration créé à l'étape précédente :

    1. Ouvrez la page Déclencheurs dans Google Cloud Console:

      Ouvrir la page Déclencheurs

    2. Sélectionnez votre projet dans le menu déroulant du sélecteur de projet, en haut de la page.

    3. Cliquez sur Ouvrir.

    4. Cliquez sur Créer un déclencheur.

      Sur la page Créer un déclencheur, saisissez les paramètres suivants :

      1. Nommez votre déclencheur.

      2. Sélectionnez l'événement de dépôt pour démarrer le déclencheur.

      3. Sélectionnez le dépôt contenant le code source et le fichier de configuration de compilation.

      4. Indiquez l'expression régulière correspondant au nom de la branche ou du tag qui démarrera votre déclencheur.

      5. Configuration : sélectionnez le fichier de configuration de compilation créé précédemment.

    5. 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.

Étapes suivantes