Python-Anwendung mit Gemini für Google Cloud-Unterstützung entwickeln

In dieser Anleitung erfahren Sie, wie Sie Gemini für Google Cloud in Google Cloud, einem KI-gestützten Zusammenarbeitsdienst in Google Cloud, verwenden, um eine Python-Beispielanwendung zu erkunden, zu erstellen, zu ändern, zu testen und bereitzustellen.

Nehmen wir für das folgende Beispiel an, dass Sie ein Entwickler sind, der Teil eines Teams ist, das eine Inventaranwendung entwickelt. Sie sind für das Prototyping eines Basisdienstes verantwortlich, der einige API-Methoden für die Inventaranwendung enthält. Sie möchten die Anwendung in Ihrer lokalen VS Code-Umgebung entwickeln und dann in Google Cloud bereitstellen. Sie sind sich jedoch nicht sicher, welcher Google Cloud-Dienst am besten zu Ihrem Anwendungsfall passt.

In dieser Anleitung verwenden Sie Gemini zusammen mit Visual Studio Code als IDE, um eine Beispiel-Inventaranwendung mit zwei API-Methoden zu erstellen.

Diese Anleitung richtet sich an Entwickler mit unterschiedlicher Erfahrung, die zum Erstellen von Anwendungen beigetragen haben, aber möglicherweise nicht mit Cloudtechnologien vertraut sind. Dabei wird davon ausgegangen, dass Sie bereits Erfahrung mit der Verwendung von VS Code als IDE und mit Python und dem Flask-Framework vertraut sind.

Lernziele

  • Entdecken Sie verschiedene Google-Dienste, mit denen Sie eine App bereitstellen können, indem Sie Gemini kontextbasierte Fragen stellen.

  • Bitten Sie Gemini, Vorlagen zur Verfügung zu stellen, mit denen Sie eine einfache Python-Anwendung in Cloud Run entwickeln können.

  • App mithilfe von Gemini erstellen, untersuchen und ändern, um den Code zu erklären und zu generieren.

  • Führen Sie die Anwendung lokal aus und testen Sie sie und stellen Sie sie dann mit Gemini in Google Cloud bereit, um die Schritte zu generieren.

Verwendete Google Cloud-Produkte

In dieser Anleitung werden die folgenden kostenpflichtigen Google Cloud-Produkte verwendet. Mithilfe des Preisrechners können Sie anhand Ihrer voraussichtlichen Nutzung eine Kostenschätzung vornehmen.

  • Cloud Run: Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie Container direkt auf der skalierbaren Google-Infrastruktur ausführen können. Sie können in Cloud Run Code in einer beliebigen Programmiersprache bereitstellen, wenn Sie damit ein Container-Image erstellen können. Preisinformationen finden Sie unter Cloud Run.

Neben dem zuvor erwähnten Produkt werden in dieser Anleitung auch die folgenden Produkte verwendet:

  • Gemini Gemini ist ein immer aktiver Partner in Google Cloud, der einer Vielzahl von Nutzern, einschließlich Entwicklern und Data Scientists, Unterstützung durch generative KI bietet. Gemini ist in viele Google Cloud-Produkte eingebettet, um eine integrierte Unterstützung anbieten zu können.

  • Cloud Code for VS Code-Erweiterung Diese Erweiterung ist ein IDE-Plug-in, das Unterstützung für den Entwicklungszyklus von Kubernetes- und Cloud Run-Anwendungen bietet. Weitere Informationen zur Cloud Code-Erweiterung finden Sie unter Cloud Code für VS Code-Features.

Hinweise

  1. Installieren Sie eine lokale Kopie von VS Code, falls noch nicht geschehen.

  2. Cloud Code-Erweiterung für VS Code installieren

    Folgen Sie der Anleitung in der Installationsanleitung, um Python, Git und den Docker-Client zu installieren. Führen Sie außerdem die Schritte zum Erstellen eines Google Cloud-Projekts aus.

  3. Prüfen Sie, ob Gemini für Ihr Google Cloud-Nutzerkonto und -Projekt eingerichtet ist.
  4. Aktivieren Sie Gemini für Ihre IDE.

    Führen Sie die Schritte aus, um in Ihrer IDE eine Verbindung zu Google Cloud herzustellen und ein Projekt auszuwählen, das für Google Cloud eingerichtet ist.

Google Cloud-Dienste entdecken

Wenn Sie Google Cloud noch nicht kennen, kann Gemini Ihnen bei der Auswahl der Google Cloud-Dienste helfen, die den Anforderungen Ihrer Anwendungsarchitektur entsprechen.

In Ihrer IDE können Sie mit Gemini chatten, um Hilfe zu erhalten. Im Bereich Gemini geben Sie Prompts ein (Fragen oder Aussagen, die die von Ihnen gewünschte Hilfe beschreiben) und Gemini gibt Antworten zurück. Aufforderungen können Kontext aus vorhandenem Code enthalten, den Google Cloud analysiert, um nützlichere oder vollständigere Antworten zu liefern. Weitere Informationen zum Schreiben von Prompts, um gute Antworten zu generieren, finden Sie unter Bessere Prompts für Gemini schreiben.

So fragen Sie Gemini nach Google Cloud-Diensten:

  1. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

    Informationen zur Aktivitätsleiste von VS Code finden Sie unter Benutzeroberfläche.

  2. Geben Sie im Bereich Gemini den folgenden Prompt ein und klicken Sie dann auf Senden:

    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 antwortet mit einer Liste von Google Cloud-Diensten und ‐Beschreibungen.

    In diesem Beispiel wird davon ausgegangen, dass Gemini sowohl Cloud Run als auch Cloud Functions als zwei Google Cloud-Dienste vorschlägt, mit denen Sie eine Beispielanwendung erstellen und bereitstellen können. Sie benötigen jedoch weitere Informationen zu diesen Diensten.

    Informationen dazu, wie und wann Gemini für Google Cloud Ihre Daten verwendet

  3. Geben Sie eine Folgefrage wie die folgende ein:

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

    Gemini antwortet mit den detaillierten Unterschieden zwischen den beiden Google Cloud-Diensten.

  4. Optional: Wenn Sie Ihr Chatprotokoll zurücksetzen möchten, klicken Sie im Bereich Gemini auf Löschen Chat zurücksetzen.

Python-Anwendung „Hello World“ erstellen

Angenommen, Sie möchten Cloud Run zum Erstellen und Bereitstellen einer einfachen Python-Anwendung verwenden. Da Cloud Run und Cloud Code für Sie neu sind, benötigen Sie Hilfe bei den Schritten zum Erstellen der Anwendung. In diesem Abschnitt bitten Sie Gemini um Hilfe beim Erstellen einer Hello World Python-Anwendung in Cloud Run.

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

  3. Geben Sie im Bereich Gemini den folgenden Prompt ein und klicken Sie dann auf Senden:

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

    Die Befehlspalette in VS Code enthält eine Liste aller Befehle, einschließlich der Befehle für Cloud Code.

    Die Ausgabe sieht in etwa so aus:

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

    Außerdem zeigt Gemini die unterstützten Sprachen für die Cloud Run-Anwendung an.

    In diesem Beispiel verwenden Sie eine Python-basierte Cloud Run-Vorlage, um die Beispielanwendung zu erstellen.

  4. Geben Sie den folgenden Prompt ein, um zu erfahren, wie Sie eine Python-Anwendung aus einer Cloud Run-Vorlage erstellen:

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

    Die Ausgabe sieht in etwa so aus:

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

    Führen Sie die Schritte aus, die Gemini in der Antwort bereitstellt, um eine einfache Hello World Python-Anwendung in Cloud Run zu erstellen. Informationen zum Erstellen der Python-Anwendung „Hello World“ finden Sie im folgenden Abschnitt.

Alternative Schritte zum Erstellen einer Hello World Python-Anwendung

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Öffnen Sie die Befehlspalette: Drücken Sie Befehlstaste+Umschalttaste+P (MacOS) oder Strg+Umschalttaste+P (Windows und Linux).

  3. Geben Sie im Feld der Befehlspalette Cloud Code: New Application ein und klicken Sie dann auf das Ergebnis.

  4. Wählen Sie aus der Liste der verfügbaren Beispiele Cloud Run-Anwendung aus.

  5. Wählen Sie aus der Liste der verfügbaren Vorlagen Python (Flask): Cloud Run aus.

  6. Speichere die neue App an deinem bevorzugten Speicherort.

In einer Benachrichtigung wird bestätigt, dass Ihre Anwendung erstellt wurde. In Ihrer IDE wird eine Vorschau der README-Datei für den ausgewählten Dienst geöffnet, wie in Abbildung 1 gezeigt:

Screenshot
Abbildung 1: README-Datei für eine in Cloud Run erstellte Hello World Python-Anwendung

Python-Anwendung „Hello World“ entdecken

Nachdem Sie Ihre Hello World-Anwendung in Cloud Run erstellt haben, können Sie mit Gemini die Dateien und Code-Snippets erklären, die in Ihrer IDE bereitgestellt werden. So können Sie sich den Code der von Ihnen erstellten Beispielanwendung ansehen:

  1. Starten Sie Ihre IDE.

  2. Öffnen Sie den Explorer: Drücken Sie Befehlstaste + Umschalttaste + E (MacOS) oder Strg + Umschalttaste + E (Windows und Linux).

    Sie sehen die zu Ihrer Beispielanwendung gehörenden Dateien.

  3. Klicken Sie in der Liste der Dateien auf Dockerfile, um den Inhalt anzuzeigen.

  4. Wählen Sie den gesamten Inhalt von Dockerfile aus, klicken Sie auf das Glühbirnensymbol und dann auf Erklären, wie in Abbildung 2 gezeigt:

    Screenshot von Dockerfile
    Abbildung 2. Die Funktion „Codeerklärung“ ist verfügbar, wenn Sie „Code“ auswählen.

    Gemini generiert eine Erklärung des Inhalts und der Funktion von Dockerfile in natürlicher Sprache. Wenn Sie bei einigen Punkten der Antwort unsicher sind, können Sie Folgefragen stellen.

  5. Geben Sie im Bereich Gemini den folgenden Prompt ein, um mehr über die Datei app.py zu erfahren, die in Dockerfile erwähnt wird:

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

    Gemini generiert eine Antwort ähnlich der folgenden:

    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.
    

    Alternativ können Sie auch den Text app.py in Dockerfile auswählen, auf das Glühbirnensymbol und dann auf Erklären klicken.

  6. Öffnen Sie den Explorer: Drücken Sie Befehlstaste + Umschalttaste + E (MacOS) oder Strg + Umschalttaste + E (Windows und Linux).

  7. Öffnen Sie die Datei app.py. Sie sehen die beiden Variablen K_SERVICE und K_REVISION.

  8. Geben Sie im Bereich Gemini den folgenden Prompt ein, um mehr über die Variablen in der Datei app.py zu erfahren:

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

    Alternativ können Sie auch den folgenden Text im Dockerfile auswählen, auf das Glühbirnensymbol und dann auf Erklären klicken:

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

    Die Antwort ähnelt dem folgenden Beispiel:

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

Beispieldaten für die App generieren

Sie haben eine einfache Flask-Anwendung in Cloud Run erstellt. Bevor Sie Funktionen zum Erstellen der Inventaranwendung hinzufügen können, benötigen Sie eine Datei mit einer Liste von Beispielinventarelementen. So generieren Sie mit Gemini die relevanten Beispieldaten:

  1. Klicken Sie in Ihrer IDE auf das Symbol Explorer, um die Dateien für Ihre Beispiel-App aufzurufen.

  2. Klicken Sie auf das Symbol Neue Datei und erstellen Sie eine Datei namens inventory.py.

  3. Geben Sie im Bereich Gemini den folgenden Prompt ein, damit Gemini die Beispieldaten generieren kann:

    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 generiert Beispielcode für drei JSON-Objekte.

  4. Klicken Sie in der Antwort auf addInsert in current file (In aktuelle Datei einfügen), um das Codebeispiel in die Datei inventory.py einzufügen, wie in Abbildung 3 gezeigt:

    Code einfügen
    Abbildung 3: Du kannst Code aus einer Gemini-Antwort einfügen.

    Die Datei inventory.py sieht in etwa so aus:

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

    Sie haben nun die Datei inventory.py erstellt, die eine Liste mit Inventarelementen enthält.

Python-Anwendung „Hello World“ ändern

Nachdem Sie die Datei inventory.py erstellt haben, führen Sie nun einige API-Methoden in der Datei app.py ein, mit denen die Inventardaten verarbeitet werden können. Dazu können Sie die Funktion zur Codegenerierung in Gemini verwenden.

  1. Klicken Sie in Ihrer IDE auf das Symbol Explorer, um die Dateien aufzurufen, die sich auf Ihre Beispielanwendung beziehen.

  2. Klicken Sie auf die Datei app.py, um den Inhalt aufzurufen.

  3. Bearbeiten Sie die Importanweisungen so, dass die Datei app.py die Datei inventory.py enthält:

    import os
    from flask import Flask, render_template
    from inventory import inventory
    
  4. Damit Gemini den Code für die erste API-Methode generieren kann, geben Sie in der Datei app.py den folgenden Kommentar ein und drücken dann Strg + Eingabetaste:

     # 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 generiert eine Antwort in der Datei app.py.

    Je nach Systemkonfiguration kann sich die Tastenkombination zum Generieren von Code mit Gemini von der Tastenkombination Strg + Eingabetaste unterscheiden, die in dieser Anleitung verwendet wird.

  5. Halten Sie den Mauszeiger über einen beliebigen Teil der Antwort.

    Eine Gemini-Symbolleiste wird angezeigt.

    Gemini generiert möglicherweise mehr als eine Antwort. In der Symbolleiste können Sie mit den Tasten < und > zwischen den einzelnen Antworten wechseln. Im folgenden Beispiel generiert Gemini nur eine Antwort, wie in Abbildung 4 gezeigt:

    Code akzeptieren
    Abbildung 4: Sie können einen Codevorschlag von Gemini übernehmen.
  6. Wenn Sie das vorgeschlagene Codebeispiel akzeptieren möchten, klicken Sie in der Symbolleiste auf Akzeptieren.

    Die Ausgabe sieht dann ungefähr so aus:

    # 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. Optional: Wenn Sie mehr über die Funktion jsonify(inventory) erfahren möchten, markieren Sie den Begriff und bitten Sie Gemini, Ihnen den Code zu erklären.

  8. Bearbeiten Sie die Importanweisungen so, dass die Datei app.py die Funktion jsonify enthält:

    import os
    from flask import Flask, render_template, jsonify
    from inventory import inventory
    
  9. Wenn Sie eine weitere API-Methode hinzufügen möchten, geben Sie in der Datei app.py den folgenden Prompt ein und drücken Sie dann Strg + Eingabe:

    # 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 generiert eine Antwort in der Datei app.py.

  10. Halten Sie den Mauszeiger über einen beliebigen Teil der Antwort.

    Eine Gemini-Symbolleiste wird angezeigt.

  11. Wenn Sie eines der vorgeschlagenen Codebeispiele akzeptieren möchten, klicken Sie in der Symbolleiste auf Akzeptieren.

    Die Ausgabe sieht dann ungefähr so aus:

    # 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
    

    Sie haben erfolgreich zwei API-Methoden hinzugefügt, um Ihre Inventar-App zu erstellen.

Anwendung lokal über die IDE ausführen

Sie können die Anwendung jetzt lokal über VS Code bereitstellen. So stellen Sie die Anwendung bereit:

  1. Starten Sie Ihre IDE, falls Sie dies noch nicht getan haben.

  2. Klicken Sie in der Aktivitätsleiste Ihrer IDE auf spark Gemini.

  3. Geben Sie im Bereich Gemini den folgenden Prompt ein und klicken Sie dann auf Senden:

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

    Folge den Schritten in der Gemini-Antwort, um die App lokal über VS Code auszuführen. Wie Sie eine Cloud Run-Beispielanwendung lokal über VS Code bereitstellen, erfahren Sie im folgenden Abschnitt.

Alternative Schritte zum lokalen Ausführen der Anwendung über Ihre IDE

Wenn Sie die Schritte in der Gemini-Antwort im vorherigen Abschnitt nicht ausgeführt haben, können Sie die Beispiel-App so bereitstellen:

  1. Starten Sie Ihre IDE.

  2. Öffnen Sie die Befehlspalette. Drücken Sie dazu Befehlstaste + Umschalt + P (MacOS) oder Strg + Umschalt + P (Windows und Linux).

  3. Geben Sie im Feld der Befehlspalette Run on Cloud Run Emulator ein und klicken Sie dann auf das Ergebnis.

  4. Behalten Sie in der Umgebungsdatei Build die Standardwerte bei und klicken Sie auf Ausführen.

    In dieser Anleitung wird Docker als Builder-Option verwendet.

    Im Bereich Ausgabe Ihrer IDE können Sie den Build-Fortschritt anzeigen lassen. Der eigentliche Bereitstellungsprozess kann einige Zeit in Anspruch nehmen.

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

Klicken Sie nach Abschluss der Bereitstellung auf die URL im Bereich Ausgabe, um die Live-Anwendung aufzurufen. Wenn Sie für eine lokale Kopie von VS Code localhost 8080 angegeben haben, befindet sich Ihre Beispielanwendung unter der URL http://localhost:8080.

Zwei API-Methoden testen

Wenn die Beispielanwendung live ist, können Sie auch prüfen, ob die Routen der beiden Anwendungen funktionieren. In diesem Beispiel lautet die App-URL http://localhost:8080.

  1. Rufen Sie http://localhost:8080 auf, um die Beispiel-Landingpage für Ihre Anwendung anzusehen.

  2. Eine Liste aller Inventarelemente erhalten Sie unter http://localhost:8080/inventory.

    In der Datei app.py wird die Funktion @app.route('/inventory', methods=['GET']) verwendet, um alle Inventarelemente aufzulisten.

  3. Klicken Sie auf http://localhost:8080/inventory/productid, um ein bestimmtes Inventarelement aufzurufen, das nach dem Attribut productid gefiltert ist.

    Beispiel: http://localhost:8080/inventory/1, wobei productid gleich 1 ist.

    In der Datei app.py wird die Funktion @app.route('/inventory/<productid>', methods=['GET']) verwendet, um ein bestimmtes Inventarelement anhand des Attributs productid anzuzeigen.

Cloud Run-Anwendung in Google Cloud bereitstellen

Sie können jetzt die Cloud Run-Anwendung in Google Cloud bereitstellen. Sie können Gemini auffordern, Ihnen die Schritte zu nennen. Alternativ können Sie so vorgehen:

  1. Öffnen Sie die Befehlspalette. Drücken Sie dazu Befehlstaste + Umschalt + P (MacOS) oder Strg + Umschalt + P (Windows und Linux).

  2. Geben Sie im Feld der Befehlspalette Cloud Code: Deploy to Cloud Run ein und klicken Sie dann auf das Ergebnis.

  3. Legen Sie im Bereich Diensteinstellungen Ihr Google Cloud-Projekt fest.

  4. Übernehmen Sie die verbleibenden Standardeinstellungen und klicken Sie auf Bereitstellen.

  5. Cloud Code erstellt Ihr Image, überträgt es per Push in die Registry und stellt Ihren Dienst in Cloud Run bereit.

  6. Öffnen Sie die URL im Dialogfeld In Cloud Run bereitstellen, um den ausgeführten Dienst anzusehen.

    Sie können auch dieselben Schritte wie unter Zwei API-Methoden testen ausführen, um sich die Beispielanwendung in Google Cloud anzusehen. Passen Sie Ihre URLs entsprechend an.

Bereinigen

Wenn Sie vermeiden möchten, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, können Sie das dafür erstellte Google Cloud-Projekt löschen. Alternativ können Sie die einzelnen Ressourcen löschen.

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte