Automatiser les déploiements App Engine avec Cloud Build

Ce guide de démarrage rapide montre comment déployer automatiquement vers App Engine une application stockée dans Cloud Source Repositories après un nouveau commit.

Avant de commencer

  1. Suivez les étapes de la section Créer un dépôt de code dans Cloud Source Repositories.

    Une fois le guide de démarrage rapide terminé, vous disposez d'une application que vous pouvez déployer sur App Engine.

  2. Enable the App Engine Admin, Cloud Build APIs.

    Enable the APIs

Accorder au compte de service Cloud Build l'accès à App Engine

Cloud Build utilise un compte de service pour déployer votre code. Les autorisations par défaut pour ce compte ne comprennent pas certaines actions, telles que le déploiement sur App Engine.

Autorisez votre compte de service à effectuer des déploiements sur App Engine en attribuant les rôles IAM (Identity and Access Management) supplémentaires au compte :

  1. Dans la console Google Cloud, accédez à la page "Paramètres" de Cloud Build :

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

    La page "Autorisations de compte de service" s'affiche alors :

    Page "Autorisations de compte de service"

  2. Définissez le rôle App Engine Admin (Administrateur App Engine) sur l'état Activé.

Déployer l'application

  1. Dans une fenêtre de terminal, accédez au répertoire contenant le dépôt :

    cd hello-world
    
  2. Déployez l'exemple d'application :

    gcloud app deploy app.yaml
    
  3. Vérifiez que votre application est en cours d'exécution :

    gcloud app browse
    

    Si votre application est en cours d'exécution, le navigateur affiche le message Hello, World!.

Créer un fichier cloudbuild.yaml

  1. Dans une fenêtre de terminal, accédez au répertoire contenant le dépôt :

    cd hello-world
    
  2. À l'aide d'un éditeur de texte, créez un fichier nommé cloudbuild.yaml, puis collez les informations de configuration suivantes :

    steps:
    - name: "gcr.io/cloud-builders/gcloud"
      args: ["app", "deploy"]
    timeout: "1600s"
    

Ajouter le fichier cloudbuild.yaml au dépôt

  1. Ajoutez cloudbuild.yaml au dépôt :

    git add .
    
  2. Procédez au commit des fichiers en ajoutant un commentaire décrivant l'historique de cette action :

    git commit -m "Add cloudbuild.yaml file"
    
  3. À l'aide de la commande git push, ajoutez le contenu du dépôt Git local dans Cloud Source Repositories :

    git push origin master
    

Créer un déclencheur de compilation

  1. Dans la console Google Cloud, ouvrez la page Déclencheurs de Cloud Build.

    Ouvrir la page Déclencheurs

  2. Si votre projet Google Cloud n'est pas sélectionné, cliquez sur Sélectionner un projet, puis sur le nom de votre projet Google Cloud.

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

    La page Créer un déclencheur s'affiche.

  4. Indiquez les options suivantes :

    • Dans le champ Nom, saisissez app-engine-test.
    • Sous Événement, sélectionnez Déployer sur une branche.
    • Sous Source, sélectionnez le dépôt hello-world et la branche ^master$.
    • Dans Configuration : sélectionnez Fichier de configuration Cloud Build (yaml ou json).
    • Dans le champ Emplacement du fichier de configuration Cloud Build, saisissez cloudbuild.yaml après la barre oblique (/).
  5. Cliquez sur Créer pour enregistrer le déclencheur de compilation.

Exécuter une modification dans une application

  1. Dans une fenêtre de terminal, utilisez un éditeur de texte pour mettre à jour le fichier main.py en collant le code suivant :

    #!/usr/bin/env python
    
    import webapp2
    
    class MainHandler(webapp2.RequestHandler):
        def get(self):
            self.response.write('I update automatically!')
    
    app = webapp2.WSGIApplication([
        ('/', MainHandler)
    ], debug=True)
    
  2. Ajoutez le fichier à Git :

    git add .
    
  3. Procédez au commit des fichiers en ajoutant un commentaire décrivant l'historique de cette action :

    git commit -m "Update app to demonstrate build triggers"
    
  4. À l'aide de la commande git push, ajoutez le contenu du dépôt Git local dans Cloud Source Repositories :

    git push origin master
    

Afficher la compilation en cours

  1. Dans la console Google Cloud, ouvrez la page Déclencheurs de Cloud Build.

    Ouvrir la page Déclencheurs

  2. Si votre projet Google Cloud n'est pas sélectionné, cliquez sur Sélectionner un projet, puis sur le nom de votre projet Google Cloud.

  3. Cliquez sur Historique.

    Une liste de toutes les compilations s'affiche. En première position se trouve une nouvelle entrée représentant la compilation qui a commencé après avoir transféré la modification à Cloud Source Repositories. Une coche verte apparaît en regard de l'entrée de compilation lorsque celle-ci est prête.

Tester de nouveau votre application

Dans une fenêtre de terminal, ouvrez votre application :

gcloud app browse

Le navigateur affiche désormais le message I update automatically!.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

Supprimer le déclencheur de compilation

  1. Dans la console Google Cloud, ouvrez la page Déclencheurs de Cloud Build.

    Ouvrir la page Déclencheurs

  2. Si votre projet Google Cloud n'est pas sélectionné, cliquez sur Sélectionner un projet, puis sur le nom de votre projet Google Cloud.

  3. Sur la même ligne que le déclencheur à supprimer, cliquez sur Autres (), puis sur Supprimer

Supprimer le dépôt

  1. Dans la console Google Cloud, ouvrez la page Tous les dépôts pour Cloud Source Repositories.

    Ouvrir Cloud Source Repositories

  2. Maintenez le pointeur de la souris sur le dépôt que vous souhaitez supprimer et cliquez sur Paramètres .

    La page Paramètres généraux s'affiche.

  3. Cliquez sur Supprimer ce dépôt .

    La boîte de dialogue Supprimer le dépôt s'ouvre.

  4. Saisissez le nom du dépôt à supprimer.

  5. Cliquez sur Supprimer.

Étapes suivantes