Développer une application Python avec l'aide de Gemini pour Google Cloud

Ce tutoriel explique comment utiliser Gemini pour Google Cloud dans Google Cloud, un collaborateur alimenté par l'IA dans Google Cloud, pour explorer, créer, modifier, tester et déployer un exemple d'application Python.

Pour l'exemple suivant, considérez que vous êtes un développeur et que vous faites partie d'une équipe qui développe une application d'inventaire. Vous êtes responsable du prototypage d'un service de base contenant quelques méthodes d'API à utiliser dans l'application d'inventaire. Vous souhaitez développer l'application dans votre environnement VS Code local, puis la déployer sur Google Cloud. Toutefois, vous ne savez pas quel service Google Cloud correspond le mieux à votre cas d'utilisation.

Dans ce tutoriel, vous allez utiliser Gemini avec Visual Studio Code comme IDE pour créer un exemple d'application d'inventaire comportant deux méthodes d'API.

Ce tutoriel est destiné aux développeurs de tous niveaux d'expérience qui ont contribué à la création d'applications, mais qui ne connaissent peut-être pas les technologies cloud. Nous partons du principe que vous avez déjà utilisé VS Code comme IDE, et que vous connaissez Python et le framework Flask.

Objectifs

  • Explorez les différents services Google que vous pouvez utiliser pour déployer une application en posant des questions contextuelles Gemini.

  • Demandez à Gemini de fournir des modèles que vous pouvez utiliser pour développer une application Python de base dans Cloud Run.

  • Créez, explorez et modifiez l'application en utilisant Gemini pour expliquer et générer le code.

  • Exécutez et testez l'application localement, puis déployez-la sur Google Cloud à l'aide de Gemini pour générer les étapes.

Produits Google Cloud utilisés

Ce tutoriel utilise les produits Google Cloud facturables suivants. Utilisez le simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue.

  • Cloud Run. Cloud Run est une plate-forme de calcul gérée qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google. Vous pouvez déployer du code écrit dans n'importe quel langage de programmation sur Cloud Run si vous pouvez créer une image de conteneur à partir de celui-ci. Pour obtenir des informations sur les tarifs, consultez la page Cloud Run.

Outre le produit mentionné précédemment, ce tutoriel utilise les produits suivants:

  • Gemini. Gemini est un collaborateur permanent de Google Cloud qui propose une assistance basée sur l'IA générative à un large éventail d'utilisateurs, y compris des développeurs et des data scientists. Pour offrir une expérience d'assistance intégrée, Gemini est intégré à de nombreux produits Google Cloud.

  • Extension Cloud Code pour VS Code. Cette extension est un plug-in IDE compatible avec le cycle de développement des applications Kubernetes et Cloud Run. Pour en savoir plus sur l'extension Cloud Code, consultez la page Fonctionnalités Cloud Code pour VS Code.

Avant de commencer

  1. Installez une copie locale de VS Code, si ce n'est pas déjà fait.

  2. Installez l'extension Cloud Code pour VS Code.

    Suivez les instructions du guide d'installation pour installer Python, Git et le client Docker. Suivez également la procédure pour créer un projet Google Cloud.

  3. Assurez-vous que Gemini est configuré pour votre compte utilisateur et votre projet Google Cloud.
  4. Activez Gemini pour votre IDE.

    Suivez les étapes pour vous connecter à Google Cloud dans votre IDE et sélectionner un projet configuré pour Google Cloud.

Découvrir les services Google Cloud

Si vous débutez sur Google Cloud, Gemini peut vous aider à choisir les services Google Cloud qui répondent aux exigences de l'architecture de votre application.

Dans votre IDE, vous pouvez discuter avec Gemini pour obtenir de l'aide. Dans le volet Gemini, vous saisissez des invites (questions ou affirmations décrivant l'aide que vous souhaitez obtenir), et Gemini renvoie des réponses. Les requêtes peuvent inclure du contexte issu d'un code existant que Google Cloud analyse pour fournir des réponses plus utiles ou plus complètes. Pour en savoir plus sur la rédaction de requêtes permettant de générer de bonnes réponses, consultez Rédiger de meilleures requêtes pour Gemini.

Pour envoyer une requête à Gemini sur les services Google Cloud, procédez comme suit:

  1. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

    Pour localiser la barre d'activité de VS Code, consultez la page Interface utilisateur.

  2. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Envoyer:

    I am new to Google Cloud and I want to use the Cloud Code extension.
    Give me some examples of Google services that I can use to build and deploy a
    sample app using containers.
    

    Gemini répond avec une liste de services Google Cloud et une description.

    Dans cet exemple, supposons que Gemini suggère à la fois Cloud Run et Cloud Functions comme deux services Google Cloud pouvant vous aider à créer et à déployer un exemple d'application, mais que vous avez besoin d'informations supplémentaires sur ces services.

    Découvrez comment et quand Gemini pour Google Cloud utilise vos données.

  3. Saisissez une question complémentaire telle que celle-ci:

    What is the difference between Cloud Run and Cloud Functions? Explain to me
    in simple terms as I am new to Google Cloud.
    

    Gemini répond en précisant les différences entre les deux services Google Cloud.

  4. Facultatif: Pour réinitialiser l'historique de vos discussions, dans le volet Gemini, cliquez sur supprimer Réinitialiser la discussion.

Créer une application Python Hello World

Supposons que vous souhaitiez utiliser Cloud Run pour créer et déployer une application Python de base. Comme vous débutez avec Cloud Run et Cloud Code, vous avez besoin d'aide pour les étapes de création de l'application. Dans cette section, vous demandez de l'aide à Gemini pour créer une application Python Hello World dans Cloud Run.

  1. Lancez votre IDE, si ce n'est pas déjà fait.

  2. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

  3. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Envoyer:

    How to create a new Cloud Run app in Cloud Code using the command palette?
    What languages are supported?
    

    La palette de commandes de VS Code fournit la liste de toutes les commandes, y compris celles de Cloud Code.

    Le résultat ressemble à ce qui suit :

    To create a new Cloud Run app in Cloud Code using the command palette,
    follow these steps:
    1. Open the command palette (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    2. Run the "Cloud Code: New Cloud Run App" command.
    ...
    

    Gemini affiche également les langues compatibles avec l'application Cloud Run.

    Dans cet exemple, vous choisissez d'utiliser un modèle Cloud Run basé sur Python pour créer l'exemple d'application.

  4. Pour apprendre à créer une application Python à partir d'un modèle Cloud Run, saisissez la requête suivante:

    How do I create a Python app from a Cloud Run template using the
    command palette? I am using Cloud Code.
    

    Le résultat ressemble à ce qui suit :

    To create a Python app from a Cloud Run template using the command palette,
    follow these steps:
    
    1. Open Cloud Code.
    
    2. Click the Command Palette
       (press Ctrl/Cmd+Shift+P or click View > Command Palette).
    
    3. Run the "Cloud Code: New Application" command.
    
    ...
    

    Suivez la procédure fournie par Gemini dans sa réponse pour créer une application Python Hello World de base dans Cloud Run. Vous pouvez également vous reporter à la section suivante pour créer l'application Python Hello World.

Étapes alternatives pour créer une application Python Hello World

  1. Lancez votre IDE, si ce n'est pas déjà fait.

  2. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  3. Dans le champ de la palette de commandes, saisissez Cloud Code: New Application, puis cliquez sur le résultat.

  4. Dans la liste des exemples disponibles, sélectionnez Cloud Run application (Application Cloud Run).

  5. Dans la liste des modèles disponibles, sélectionnez Python (Flask): Cloud Run.

  6. Enregistrez la nouvelle application à l'emplacement de votre choix.

Une notification confirme que votre application a été créée. Un aperçu du fichier README du service sélectionné s'ouvre dans votre IDE, comme illustré dans la figure 1:

capture d'écran
Figure 1 : fichier README affiché pour une application Python Hello World créée dans Cloud Run.

Explorer l'application Python Hello World

Maintenant que vous avez créé votre application Hello World dans Cloud Run, vous pouvez utiliser Gemini pour expliquer les fichiers et les extraits de code déployés dans votre IDE. Pour explorer le code de l'exemple d'application que vous avez créé, procédez comme suit:

  1. Lancez votre IDE.

  2. Ouvrez l'explorateur: appuyez sur Commande+Maj+E (pour macOS) ou Ctrl+Maj+E (pour Windows et Linux).

    Vous pouvez voir les fichiers associés à votre application exemple.

  3. Dans la liste des fichiers, cliquez sur Dockerfile pour afficher son contenu.

  4. Sélectionnez l'intégralité du contenu de Dockerfile, cliquez sur l'icône représentant une ampoule, puis sur Expliquer ceci, comme illustré dans la figure 2:

    capture d'écran de dockerfile
    Figure 2. La fonctionnalité d'explication du code est disponible lorsque vous sélectionnez du code.

    Gemini génère une explication en langage naturel sur le contenu et la fonction de Dockerfile. Si vous n'êtes pas sûr de certains points de la réponse, vous pouvez poser des questions de suivi.

  5. Pour en savoir plus sur le fichier app.py mentionné dans Dockerfile, saisissez la requête suivante dans le volet Gemini:

    What is the function of the app.py file in Dockerfile?
    

    Gemini génère une réponse semblable à la suivante:

    The app.py file is the entrypoint for the container. It is the file that
    will be executed when the container is launched. In this case, the app.py
    file will run the Python code that is contained within it.
    

    Vous pouvez également sélectionner le texte app.py dans Dockerfile, cliquer sur l'icône représentant une ampoule, puis sur Expliquer ceci.

  6. Ouvrez l'explorateur: appuyez sur Commande+Maj+E (pour macOS) ou Ctrl+Maj+E (pour Windows et Linux).

  7. Ouvrez le fichier app.py. Vous voyez deux variables : K_SERVICE et K_REVISION.

  8. Pour en savoir plus sur les variables du fichier app.py, saisissez la requête suivante dans le volet Gemini:

    What is the function of `K_SERVICE` and `K_REVISION` in the `app.py` file?
    

    Vous pouvez également sélectionner le texte suivant dans le fichier Dockerfile, cliquer sur l'icône représentant une ampoule, puis sur Expliquer ceci:

    service = os.environ.get('K_SERVICE', 'Unknown service')
    revision = os.environ.get('K_REVISION', 'Unknown revision')
    

    La réponse est semblable à ce qui suit :

    The code above is using the os.environ module to get the values of the
    K_SERVICE and K_REVISION environment variables. These variables are set by
    Cloud Run when it deploys the service, and they contain the name of the
    service and the revision number, respectively.
    ...
    

Générer des exemples de données pour l'application

Vous disposez d'une application Flask de base créée dans Cloud Run. Avant de pouvoir ajouter une fonctionnalité permettant de créer l'application d'inventaire, vous devez disposer d'un fichier contenant une liste d'exemples d'éléments d'inventaire. Pour utiliser Gemini afin de générer les exemples de données pertinents, procédez comme suit:

  1. Pour afficher les fichiers associés à votre exemple d'application, dans votre IDE, cliquez sur l'icône Explorateur.

  2. Cliquez sur l'icône New file (Nouveau fichier) et créez un fichier appelé inventory.py.

  3. Pour autoriser Gemini à générer les exemples de données, saisissez la requête suivante dans le volet Gemini:

    Create a variable called inventory which is a list of 3 JSON objects.
    Each JSON object has 2 attributes: productid and onhandqty.
    Both attributes are strings.
    

    Gemini génère un exemple de code pour trois objets JSON.

  4. Dans la réponse, cliquez sur addInsert in current file (Insérer dans le fichier actuel) pour insérer l'exemple de code dans le fichier inventory.py, comme illustré dans la figure 3:

    insérer du code
    Figure 3. Vous pouvez insérer du code à partir d'une réponse de Gemini.

    Le fichier inventory.py se présente comme suit:

    inventory = [
       {
          "productid": "12345",
          "onhandqty": "10"
       },
       {
          "productid": "23456",
          "onhandqty": "20"
       },
       {
          "productid": "34567",
          "onhandqty": "30"
       }
    ]
    

    Vous avez créé le fichier inventory.py, qui inclut une liste d'articles d'inventaire.

Modifier l'application Python Hello World

Après avoir créé le fichier inventory.py, vous allez introduire dans le fichier app.py certaines méthodes d'API pouvant agir sur les données d'inventaire. Pour atteindre cet objectif, vous pouvez utiliser la fonctionnalité de génération de code de Gemini.

  1. Pour afficher les fichiers associés à votre exemple d'application, cliquez sur l'icône Explorateur dans votre IDE.

  2. Pour afficher le contenu, cliquez sur le fichier app.py.

  3. Modifiez les instructions d'importation afin que le fichier app.py inclue le fichier inventory.py:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Pour permettre à Gemini de générer le code de la première méthode API, dans le fichier app.py, saisissez le commentaire suivant, puis appuyez sur Ctrl+Entrée:

     # Generate an app route to display a list of inventory
     # items in the JSON format from the
     # inventory.py file. Use the GET method.
    
    

    Gemini génère une réponse dans le fichier app.py.

    Selon la configuration système, le raccourci clavier permettant de générer du code à l'aide de Gemini peut être différent de la combinaison Ctrl+Entrée utilisée par ce tutoriel.

  5. Maintenez le pointeur sur n'importe quelle partie de la réponse.

    Une barre d'outils Gemini s'affiche.

    Gemini peut générer plusieurs réponses. Dans la barre d'outils, vous pouvez faire défiler chaque réponse à l'aide des touches < et >. Dans l'exemple suivant, Gemini ne génère qu'une seule réponse, comme illustré dans la figure 4:

    accepter le code
    Figure 4. Vous pouvez accepter une suggestion de code de Gemini.
  6. Pour accepter l'exemple de code suggéré, cliquez sur Accept (Accepter) dans la barre d'outils.

    Le résultat ressemble à ceci :

    # Generate an App route to display a list of inventory
    # items in the JSON format from the
    # inventory.py file. Use the GET method.
    @app.route('/inventory', methods=['GET'])
    def get_inventory():
        """Return a list of inventory items."""
        return jsonify(inventory)
    
  7. Facultatif: Pour en savoir plus sur la fonction jsonify(inventory), mettez le terme en surbrillance et demandez à Gemini de vous expliquer le code.

  8. Modifiez les instructions d'importation afin que le fichier app.py inclue la fonction jsonify:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Pour ajouter une autre méthode API, dans le fichier app.py, saisissez l'invite suivante, puis appuyez sur Ctrl+Entrée:

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    

    Gemini génère une réponse dans le fichier app.py.

  10. Maintenez le pointeur sur n'importe quelle partie de la réponse.

    Une barre d'outils Gemini s'affiche.

  11. Pour accepter l'un des exemples de code suggérés, cliquez sur Accepter dans la barre d'outils.

    Le résultat ressemble à ceci :

    # Generate an App route to get an inventory item
    # given the productid. Use the GET method.
    # If there is an invalid productid,
    # display a 404 error.
    @app.route('/inventory/<productid>', methods=['GET'])
    def get_inventory_item(productid):
        """Return an inventory item given the productid."""
        for item in inventory:
            if item["productid"] == productid:
               return jsonify(item)
        return jsonify({"error": "Item not found"}), 404
    

    Vous venez d'ajouter deux méthodes d'API pour créer votre application d'inventaire.

Exécuter l'application localement depuis votre IDE

Vous êtes prêt à déployer l'application localement à partir de VS Code. Pour déployer l'application, procédez comme suit:

  1. Lancez votre IDE, si ce n'est pas déjà fait.

  2. Dans la barre d'activité de votre IDE, cliquez sur spark Gemini.

  3. Dans le volet Gemini, saisissez la requête suivante, puis cliquez sur Envoyer:

    How do I run a Cloud Run app locally within Cloud Code?
    Is there an emulator?
    

    Suivez les étapes de la réponse de Gemini pour exécuter l'application en local depuis VS Code. Vous pouvez également vous reporter à la section suivante pour déployer un exemple d'application Cloud Run localement à partir de VS Code.

Étapes alternatives pour exécuter l'application localement depuis votre IDE

Si vous n'avez pas suivi les étapes de la réponse de Gemini de la section précédente, vous pouvez suivre ces étapes pour déployer votre exemple d'application:

  1. Lancez votre IDE.

  2. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  3. Dans le champ de la palette de commandes, saisissez Run on Cloud Run Emulator, puis cliquez sur le résultat.

  4. Dans le fichier d'environnement Build, conservez les valeurs par défaut, puis cliquez sur Exécuter.

    Ce tutoriel utilise Docker comme option de compilation.

    Dans le volet Output (Résultat) de votre IDE, vous pouvez suivre la progression de la compilation. Le processus de déploiement réel peut prendre un certain temps.

    Starting to run the app using configuration 'Cloud Run:
    Run/Debug Locally' from .vscode/launch.json...
    To view more detailed logs, go to Output channel : "Cloud Run: Run/Debug Locally - Detailed"
    Dependency check started
    Dependency check succeeded
    Starting minikube, this may take a while......
    ...
    

Pour afficher votre application en ligne, une fois le déploiement terminé, cliquez sur l'URL dans le volet Output (Résultat). Pour une copie locale de VS Code, si vous avez spécifié localhost 8080, votre exemple d'application est disponible à l'URL http://localhost:8080.

Tester les deux méthodes d'API

Si votre application exemple est en ligne, vous pouvez également vérifier si les routes de vos deux applications fonctionnent. Dans cet exemple, supposons que l'URL de l'application est http://localhost:8080.

  1. Pour afficher l'exemple de page de destination pour votre application, accédez à http://localhost:8080.

  2. Pour obtenir la liste de tous les articles d'inventaire, accédez à http://localhost:8080/inventory.

    Dans le fichier app.py, la fonction @app.route('/inventory', methods=['GET']) est utilisée pour répertorier tous les articles d'inventaire.

  3. Pour afficher un élément d'inventaire spécifique filtré par l'attribut productid, cliquez sur http://localhost:8080/inventory/productid.

    Par exemple, http://localhost:8080/inventory/1, où productid est égal à 1.

    Dans le fichier app.py, la fonction @app.route('/inventory/<productid>', methods=['GET']) est utilisée pour afficher un article d'inventaire spécifique à l'aide de l'attribut productid.

Déployer une application Cloud Run dans Google Cloud

Vous pouvez maintenant déployer l'application Cloud Run sur Google Cloud. Vous pouvez demander à Gemini de vous indiquer la procédure à suivre ou procéder comme suit:

  1. Ouvrez la palette de commandes: appuyez sur Commande+Maj+P (pour macOS) ou Ctrl+Maj+P (pour Windows et Linux).

  2. Dans le champ de la palette de commandes, saisissez Cloud Code: Deploy to Cloud Run, puis cliquez sur le résultat.

  3. Dans le volet des paramètres du service, définissez votre projet Google Cloud.

  4. Acceptez les autres paramètres par défaut, puis cliquez sur Déployer.

  5. Cloud Code crée votre image, la transfère dans le registre et déploie votre service sur Cloud Run.

  6. Pour afficher votre service en cours d'exécution, ouvrez l'URL affichée dans la boîte de dialogue Déployer sur Cloud Run.

    Vous pouvez également suivre la procédure décrite dans la section Tester les deux méthodes d'API pour afficher l'exemple d'application dans Google Cloud. Modifiez vos URL en conséquence.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, vous pouvez supprimer le projet Google Cloud que vous avez créé pour ce tutoriel. Vous pouvez également supprimer les ressources individuelles.

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes