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

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 directement transmis à l'outil 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 :

  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 la méthode cloud-sdk est appelée.
    • 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 du délai lors de l'utilisation de l'environnement standard App Engine : vous ne pouvez configurer les délais d'expiration que comme décrit ici lorsque vous utilisez l'environnement flexible App Engine. L'environnement standard App Engine ne permet pas de configurer le délai d'expiration de la compilation. Si vous utilisez Cloud Build pour effectuer un déploiement dans l'environnement standard App Engine et que votre compilation échoue avec une erreur de délai d'inactivité, 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 (timeout) de plus de 10 minutes pour votre build.

    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 correspond au chemin d'accès ou à l'URL du code source :

     gcloud builds submit 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 que vous avez 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.

Étape suivante