1. Einführung

Hallo, Ich heiße Bello! Schön, dass du dabei bist. Ich bin mit dem Reißverschluss von einem GKE-Cluster in us-central1 hierher gekommen. Willkommen zu diesem Codelab.
Ich habe mein ganzes Leben damit verbracht, durch die Datenströme von Google Cloud zu huschen, und ich habe schon alles gesehen. Ich habe gesehen, wie Sie, die Architekten und Ingenieure, erstaunliche Dinge geschaffen haben. Aber ich habe dich auch schon in den Brombeeren stecken gesehen. Du weißt, was ich meine! Das Gefühl des Kontextwechsels beim Debuggen eines Pods in GKE. Sie wechseln zwischen kubectl logs, der GCP Console, um den Status des Knotens zu prüfen, Ihrer IDE, um den bereitgestellten Quellcode anzusehen, und einem Browser-Tab mit der offiziellen Kubernetes-Dokumentation zu Pod-Lifecycle-Hooks. Jeder Sprung ist eine Unterbrechung des Fokus.
Und die komplexen Tools! gcloud, kubectl, terraform … mit jeweils eigener DSL und einer Menge Flags. Das führt zu einer ständigen Suche nach Dokumentation. Sie suchen dann nach dem einen perfekten gcloud-Befehl mit der richtigen Kombination aus --filter- und --format-Flags, um die benötigten Daten zu erhalten. Es ist, als würde man versuchen, eine bestimmte Nuss in einem Wald mit Millionen von Nüssen zu finden. Und fang bloß nicht mit den sich wiederholenden Aufgaben an. Ich habe gesehen, dass du die gleichen Dockerfile- und cloudbuild.yaml-Befehle für einen neuen Python-Dienst so oft geschrieben hast, dass der Code wahrscheinlich ein Déjà-vu hat.
Ich möchte Ihnen eine bessere Lösung zeigen. Ein geheimer Pfad durch den Wald. Genau darum geht es bei der Gemini CLI.
Was ist die Gemini CLI?
Was ist also diese magische Tastenkombination, die mich so begeistert?
Gemini CLI ist wie ein persönlicher Cloud-Begleiter direkt in Ihrem Terminal. Es ist ein Gespräch, eine Partnerschaft! Es ist kontextbezogen. Das bedeutet, dass es nicht nur zuhört, sondern auch versteht. Es kann Ihre Dateien lesen, die Konventionen Ihres Projekts lernen, z. B. ob Sie Tabulatoren oder Leerzeichen verwenden, und herausfinden, was Sie tun möchten. Es ist, als könnte ich die Eicheln riechen, die Sie sammeln möchten.
Gesamtarchitektur (Blick hinter die Kulissen)
Wie funktioniert das alles? Das ist eine Mischung aus einigen coolen Dingen, die harmonisch zusammenwirken:
- Leistungsstarkes Sprachmodell:Das ist das Gehirn! Es handelt sich um ein großes, multimodales Modell, das von Google trainiert wurde. Multimodal bedeutet, dass das Modell nicht nur Text, sondern auch die Struktur und Bedeutung von Code versteht. So kann Gemini über Ihre Software nachdenken, anstatt sie nur zu lesen.
- Ihr lokaler Kontext:Das ist entscheidend. Die Gemini CLI wird als Prozess auf Ihrem lokalen Computer mit denselben Berechtigungen wie Ihr Nutzerkonto ausgeführt. Das bedeutet, dass es auf Ihr Dateisystem zugreifen kann, um projektspezifische Hilfe zu leisten. Es handelt sich nicht um einen weit entfernten Cloud-Dienst, der Ihren Code errät, sondern um eine Funktion, die direkt auf Ihrem Gerät ausgeführt wird.
- Tooling-Ökosystem:So interagiert das Modell mit der Welt. Es verfügt über einen genau definierten Satz von Funktionen, die es aufrufen kann, z. B.
read_fileoderrun_shell_command. Stellen Sie sich das wie eine sichere API vor. Das Modell entscheidet, was zu tun ist und welches Tool verwendet werden soll. Anschließend wird eintool_code-Block generiert, um die Aktion auszuführen. Dadurch sind die Aktionen vorhersehbar und zuverlässig. - Ausführung von Shell-Befehlen:Das ist das eigentliche Highlight! Damit kann jeder Befehl in einer
bash -c <command>-Subshell ausgeführt werden. Sie erfasst diestdout, diestderrund dieexit code. Das ist ein enormer Anstieg. Das bedeutet, dass die Gemini-Befehlszeile einen Befehl ausführen, prüfen kann, ob er fehlgeschlagen ist, und dann versuchen kann, ihn anhand der Fehlermeldung zu korrigieren. - Das Sicherheitsnetz:Das ist mein Lieblingsteil! Bevor der
tool_code-Block ausgeführt wird, zeigt der CLI-Client Ihnen den exact Befehl oder Code an und bittet Sie um Bestätigung. Da es sich um eine clientseitige Prüfung handelt, haben Sie das letzte Wort, bevor etwas auf Ihr System zugreift. Sie haben immer die Kontrolle.
Es ist nicht nur ein Chatbot, sondern ein Tool, das Aufgaben für Sie erledigt. Ein aktiver Helfer bei Ihren Programmierprojekten.
Das Schlüsselkonzept: deklarativ vs. imperativ
Die größte und wichtigste Änderung ist, dass Sie dem Computer nicht mehr sagen müssen, wie er etwas tun soll, sondern was Sie möchten.
- Imperativ (der alte, dornige Weg): Sie müssen jeden einzelnen Schritt angeben. Sie müssen ein Experte für die spezifische Domänensprache des Tools sein. Zum Beispiel so:
Oh je! Sieh dir das an! Sie müssen die Syntax für Maschinentyp, Imagefamilie, Metadaten und Tags kennen. Wenn Sie einen Teil vergessen, erhalten Sie eine kryptische Fehlermeldung.gcloud compute instances create my-vm --project=my-project --zone=us-central1-a --machine-type=e2-medium --image-family=debian-11 --image-project=debian-cloud --metadata-from-file startup-script=./startup.sh --tags=http-server,dev - Deklarativ (die Sparky-Abkürzung): Sie müssen nur in einfachem Deutsch sagen, was Sie möchten.
Create a new e2-medium VM for my web server in us-central1, run the startup.sh script, and tag it for http traffic.
Geschafft! Gemini analysiert Ihre Anfrage, ordnet sie den Parametern des Tools gcloud zu, ermittelt die richtige Syntax für jedes Flag und erstellt den entsprechenden Befehl für Sie. Sie wird Ihnen dann zur Genehmigung präsentiert. Sie sollen sich auf das große Ganze konzentrieren können und nicht auf das Auswendiglernen von Befehlszeilen-Flags.
Die Leistungsfähigkeit von Gemini erweitern: Einführung in CLI-Erweiterungen
Die Gemini CLI ist zwar schon von Haus aus ein leistungsstarkes Tool, ihr volles Potenzial wird aber erst durch Erweiterungen ausgeschöpft. Erweiterungen sind Bündel von Prompts, Tools und benutzerdefinierten Befehlen, die die Funktionalität der CLI verbessern und es Ihnen ermöglichen, sie an Ihre spezifischen Anforderungen und Workflows anzupassen.
Erweiterungen finden und installieren
Für die Gemini CLI gibt es ein wachsendes Ökosystem von Erweiterungen, die sowohl von Google als auch von Drittanbietern entwickelt werden. Das offizielle Verzeichnis der Erweiterungen finden Sie unter geminicli.com/extensions.
Um eine Erweiterung zu installieren, können Sie den Befehl „gemini extensions install“ mit der URL des Git-Repositorys der Erweiterung verwenden. Wenn Sie beispielsweise die offizielle Cloud SQL for PostgreSQL-Erweiterung installieren möchten, führen Sie folgenden Befehl aus:
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgresql
Okay, genug geredet! Lass uns die Pfoten schmutzig machen und es ausprobieren!
2. Hinweis

Hallo zukünftige Cloud-Experten! Sparky ist für Sie da. Bevor wir mit unserem großen Abenteuer beginnen können, müssen wir dafür sorgen, dass deine Workshop-Umgebung bereit ist. Das ist so, als würden wir unsere Taschen mit allen richtigen Werkzeugen und magischen Eicheln packen, bevor wir in den Wald gehen. Folge mir!
Wenn Sie bereits ein Google Cloud-Projekt haben, können Sie die Gemini-CLI in Google Cloud Shell verwenden, da sie dort vorinstalliert ist. Alternativ können Sie die folgenden Schritte ausführen, um die Funktion auf Ihrem lokalen Computer einzurichten.
Schritt 1: Das Wichtigste (Voraussetzungen)
Jeder gute Abenteurer braucht eine solide Grundlage. Bevor wir die Gemini CLI installieren können, müssen einige Dinge auf Ihrem lokalen Computer eingerichtet sein.
- Google Cloud SDK (
gcloud): Dies ist das Haupt-Toolkit für Google Cloud. Die Gemini CLI ist Teil dieser Familie.
- Prüfen, ob es installiert ist: Führen Sie
gcloud --versionaus. Wenn eine Versionsnummer angezeigt wird, ist alles in Ordnung. - Falls nicht installiert: Folgen Sie der offiziellen Anleitung unter cloud.google.com/sdk/docs/install.
- Git: Wir benötigen Git, um das Repository für das praktische Lab zu klonen.
- Prüfen, ob es installiert ist: Führen Sie
git --versionaus. - Falls nicht installiert: Sie können es unter git-scm.com/downloads herunterladen.
- GCP-Projekt und Authentifizierung:
- Sie benötigen ein Google Cloud-Projekt mit aktivierter Abrechnung. Das ist sehr wichtig.
- Melden Sie sich in Ihrem Google-Konto an, indem Sie Folgendes ausführen:
gcloud auth login
- Legen Sie Ihr Projekt für die Sitzung fest. Suchen Sie in der GCP Console nach Ihrer Projekt-ID und führen Sie folgenden Befehl aus:
gcloud config set project YOUR_PROJECT_ID
Ersetzen Sie YOUR_PROJECT_ID durch Ihre tatsächliche Projekt-ID.
- Node.js-Version 20 oder höher
Schritt 2: Magic nutzen (Gemini CLI installieren)
Nachdem wir die Grundlagen geklärt haben, ist es Zeit für das Hauptereignis. Wir installieren die Gemini CLI.
Sofort mit npx ausführen
# Using npx (no installation required)
npx https://github.com/google-gemini/gemini-cli
Global mit npm installieren
npm install -g @google/gemini-cli
Global mit Homebrew installieren (macOS/Linux)
brew install gemini-cli
Gemini-Version prüfen
gemini --version
Sie sollten eine Versionsnummer sehen. Das bestätigt, dass die Installation erfolgreich war.
Schritt 3: Einschalten (Konfiguration)
Nachdem die Gemini CLI installiert ist, müssen wir ihr die Schlüssel zum Königreich geben. Starten Sie sie zuerst, indem Sie den Befehl gemini im Terminal ausführen. Sie sollten diesen Bildschirm sehen:

Zur Vereinfachung können Sie sich mit Ihrem Google-Konto authentifizieren. So erhalten Sie Zugriff auf Gemini 2.5 Pro mit einem Kontextfenster von 1 Million Tokens und bis zu 60 Anfragen pro Minute und 1.000 Anfragen pro Tag, ohne einen API-Schlüssel verwalten zu müssen.
Wenn Sie Zugriff auf bestimmte Gemini-Modelle benötigen oder bei Bedarf ein Upgrade auf höhere Limits durchführen möchten, verwenden Sie den Gemini API-Schlüssel als Authentifizierungsmethode.
Für Enterprise-Teams und Produktionsarbeitslasten, die bereits ein Google-Projekt und ein Abrechnungskonto eingerichtet haben, bietet Vertex AI erweiterte Sicherheits- und Compliance-Funktionen.
Je nach ausgewählter Option werden Sie aufgefordert, die nächsten Schritte zur Konfiguration der Authentifizierung auszuführen. Weitere Informationen zu diesen Optionen finden Sie in der Dokumentation zur Gemini-Befehlszeile.
Wenn Sie die Vertex AI-Plattform von Google Cloud verwenden möchten, beenden Sie zuerst die Gemini CLI, indem Sie zweimal Strg+C drücken, und legen Sie die erforderlichen Umgebungsvariablen fest.
Unabhängig von der Authentifizierungsmethode müssen Sie in der Regel die folgenden Variablen festlegen: GOOGLE_CLOUD_PROJECT und GOOGLE_CLOUD_LOCATION.
So legen Sie diese Variablen fest:
# Replace with your project ID and desired location (e.g., us-central1)
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"
Melden Sie sich jetzt in Google Cloud an:
gcloud auth application-default login
Nachdem Sie sich mit der vorherigen Methode authentifiziert haben, starten Sie Gemini CLI noch einmal, indem Sie den Befehl gemini im Terminal ausführen. Wählen Sie in den Authentifizierungsoptionen Vertex AI aus.
Schritt 4: Der Spark-Test Einrichtung überprüfen
Das ist die Stunde der Wahrheit! Sehen wir uns an, ob alles funktioniert. Führen Sie diese Befehle aus, um sicherzustellen, dass alle LEDs grün leuchten.
- Geben Sie den folgenden Prompt ein:
What is my current directory?
Gemini CLI sollte Ihnen Ihr aktuelles Arbeitsverzeichnis mitteilen. Damit werden das Kernsprachmodell und die Shell-Integration getestet.

- GCP-Verbindung testen:
list my gcs buckets
Wenn Sie GCS-Buckets haben, sollten diese aufgelistet werden. Andernfalls wird angezeigt, dass keine vorhanden sind. So wird bestätigt, dass die Verbindung zu Ihrem GCP-Projekt korrekt ist.
Schritt 5: Noch mehr Superkräfte! (Erweiterungen installieren)
Als Nächstes installieren wir einige Erweiterungen, die später im Lab nützlich sein werden, um die Funktionen der Gemini CLI zu verbessern.
Cloud Run
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Sicherheit der Gemini-Befehlszeile
gemini extensions install https://github.com/gemini-cli-extensions/security
gcloud
gemini extensions install https://github.com/gemini-cli-extensions/gcloud
Cloud SQL for PostgreSQL
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgresql
Wenn alle diese Befehle funktioniert haben, sind Sie offiziell bereit für den Workshop. Ihre Umgebung ist eingerichtet und Sie können mit der Arbeit beginnen. Wir sehen uns im ersten Lab!
3. Wichtige Konzepte und Interaktion mit dem lokalen Arbeitsbereich

Okay, bist du bereit, dir die Pfoten schmutzig zu machen? Sehen wir uns nun die eigentlichen Tools in Ihrem neuen Gemini-Toolbelt an. Ich betrachte sie als meine Superkräfte für die Erkundung und Entwicklung in der Cloud. Sehen wir uns an, wie sie funktionieren.
Hauptfunktionen
Ich teile meine Fähigkeiten in zwei Kategorien ein: sehen, was es gibt, und dann tatsächlich etwas tun.
Informationen zur Umgebung (Meine Superkräfte!)
Bevor du ein neues Nest baust, musst du dir den Baum ansehen, oder? Mit diesen Tools können Sie sich einen Überblick verschaffen.
list_directory: Das ist mein grundlegendes Tool zum „Herumschnüffeln“. Es handelt sich um einen einfachen Wrapper für die Standardverzeichnisauflistung auf Betriebssystemebene. Das Modell kann diese strukturierte Ausgabe jedoch parsen, um Entscheidungen zu treffen, z. B. ein Unterverzeichnis namenssrczu durchsuchen.glob: Das ist mein „Eichelfinder“! Es werden Standard-Glob-Muster wie*,**,?und[]verwendet, die Sie bereits aus.gitignorekennen. Sie können also mit dem Musterapp/**/*.pyfragen: „Finde alle*.py-Dateien im Verzeichnisapp“. So können Sie eine bestimmte Gruppe von Dateien für die Analyse durch das Modell zusammenstellen.search_file_content: Das ist mein Röntgenblick! Für die Suche werden vollständige reguläre Ausdrücke (Regex) verwendet, nicht nur einfache String-Abgleiche. Das ist unglaublich leistungsstark. Sie können Gemini fragen, ob es komplexe Muster finden soll, z. B. „Finde alle Flask-Routen, die eine POST-Methode verwenden“. Daraufhin wird möglicherweise ein regulärer Ausdruck wieapp\.route\(.*methods=\['POST'\].*\)generiert. Es werden der Dateipfad, die Zeilennummer und die übereinstimmende Zeile zurückgegeben, sodass das Modell den gesamten erforderlichen Kontext erhält.read_file: Wenn Sie eine interessante Datei gefunden haben, sollten Sie sie öffnen.read_fileist dafür optimiert. Sie können eine ganze Datei lesen oder bei großen Dateien die Parameteroffsetundlimitverwenden, um sie in Blöcken zu lesen. Das Modell kann also auch sehr große Logdateien effizient scannen, ohne dass es zu einem Zeitüberschreitungsfehler kommt.
Vom Verständnis zum Handeln (Zeit zum Entwickeln!)
Okay, du hast das Gelände erkundet. Jetzt ist es an der Zeit, dein Nest zu bauen. Mit diesen Tools können Sie Änderungen vornehmen und Dinge erledigen.
**write_file**: Sie müssen eine neue Datei von Grund auf erstellen?write_fileist ein atomarer Vorgang, bei dem der gesamte von Ihnen angegebene Inhalt in einen bestimmten Pfad geschrieben wird. Sie eignet sich hervorragend, um neue Module zu erstellen oder eineDockerfilevon Grund auf zu erstellen, die auf die Anforderungen Ihres Projekts zugeschnitten ist.**replace**: Dieses Tool ist für chirurgische Änderungen vorgesehen. Es geht nicht nur um einfaches Suchen und Ersetzen. Sie geben eineold_stringund einnew_stringan. Damit das sicher funktioniert, mussold_stringein eindeutiger Ausschnitt aus der Datei sein, in der Regel mit mehreren Kontextzeilen vor und nach dem Teil, den Sie ändern. So wird sichergestellt, dass nur der exact Codeabschnitt geändert wird, den Sie beabsichtigen.**run_shell_command**: Das ist das ultimative Power-up! Der Befehl wird in einerbash -c <command>-Subshell ausgeführt. Das Modell gibtstdout,stderrundexit codezurück. Das ist entscheidend für die Erstellung von Workflows. Das Modell kannterraform planausführen, die Ausgabe lesen und Sie fragen, ob es den Plan anwenden soll, wenn er erfolgreich ist (Exitcode 0).
Das Sicherheitsnetz (Mein Versprechen an Sie!)
Das Ausführen von Befehlen kann beängstigend sein. Ich verstehe. Deshalb ist das Sicherheitsnetz so wichtig. Wenn das Modell einen tool_code-Block mit einem Aufruf von run_shell_command oder write_file generiert, wird er vom Gemini CLI-Client abgefangen. Es wird der genaue Befehl oder der vollständige Inhalt der zu schreibenden Datei angezeigt und Sie werden aufgefordert, mit [y/n] zu bestätigen. Ohne Ihre ausdrückliche Genehmigung passiert nichts. Sie haben immer die Kontrolle.
4. Projekt erkunden

Ziel:Mit Gemini CLI eine unbekannte Codebasis verstehen, ohne das Terminal zu verlassen.
Szenario:Sie sind ein neuer Entwickler und müssen sich schnell in dieses Projekt einarbeiten.
Aufgabe 0: Einrichtung – Projekt klonen
Zuerst müssen wir den Code abrufen. Es befindet sich in einem öffentlichen Repository auf GitHub in einem „Baum“ namens quickpoll. Bitten wir Gemini CLI, das Repository für uns zu klonen. Bevor wir das tun, erstellen wir ein Arbeitsverzeichnis und starten Gemini CLI aus diesem Verzeichnis:
mkdir workdir
cd workdir
gemini
Geben Sie nun diesen Prompt ein:
clone the github repository from the URL: https://github.com/gauravkakad-google/quickpoll.git

Gemini versteht, dass mit „klonen“ der Befehl git clone gemeint ist. Dadurch wird ein run_shell_command-Toolaufruf mit etwa git clone https://github.com/gauravkakad-google/quickpoll.git generiert. Sobald Sie die Genehmigung erteilen, wird das Repository für Sie heruntergeladen.
Beenden Sie nun die Gemini CLI, indem Sie zweimal ctrl+c drücken, rufen Sie das Beispiel-Repository auf und starten Sie die Gemini CLI noch einmal:
cd quickpoll
gemini
Sehr gut! Jetzt, da wir uns im Projektbaum befinden, können wir loslegen.
Aufgabe 1: Alle Dateien im Projekt auflisten
Jetzt, da wir drin sind, wollen wir den ganzen Wald kartieren. Wir möchten jede einzelne Datei sehen. Fragen Sie Gemini:
List all the files in the project.
Gemini verwendet wahrscheinlich das Tool glob mit dem Muster **/*. Dadurch wird jede Datei rekursiv aufgelistet, sodass Sie ein vollständiges Manifest des Quellcodes erhalten. Das ist ein guter erster Schritt, um die Struktur des Projekts zu verstehen.
Aufgabe 2: Alle Dateien suchen, in denen „google.cloud.sql.connector“ importiert wird
Okay, ich bin neugierig. Wo kommuniziert dieses Projekt mit Google Cloud Storage? Lassen Sie uns ein wenig detektivische Arbeit leisten. Frage Folgendes:
Find all files that import the 'google.cloud.sql.connector' library.

Mithilfe von search_file_content findet Gemini die genauen Dateien, die diese Importanweisung enthalten. Dadurch wird der Fokus sofort auf die Teile des Codes gerichtet, die die Cloud SQL-Interaktion verarbeiten. In diesem Projekt sollte backend/main.py gefunden werden.
Aufgabe 3: Zeige mir den Inhalt des Haupt-Dockerfiles
Ich sehe ein Dockerfile. Das ist der Bauplan für unseren Container. Sehen wir uns das mal an. Fragen Sie einfach:
Show me the contents of the main Dockerfile.

Gemini verwendet read_file, um die Dockerfile anzuzeigen. Sie können das Basis-Image (FROM), die installierten Abhängigkeiten (RUN pip install...) und den endgültigen Befehl (CMD) analysieren. So erhalten Sie Informationen zur Laufzeitumgebung der Anwendung.
Aufgabe 4: Was ist der Zweck der Datei main.py?
Sehen wir uns nun den Kern des Codes an. Lassen Sie uns Gemini fragen. Sag Folgendes:
What's the purpose of the `main.py` file?

Hier kann die Gemini CLI wirklich glänzen. Zuerst wird read_file am backend/main.py aufgerufen. Anschließend analysiert das multimodale Sprachmodell den Python-Code. Es wird erkannt, dass es sich um eine FastAPI-Anwendung handelt, die eine REST API für eine Umfrageanwendung bereitstellt. Anschließend werden die API-Endpunkte und ihre Funktionen erläutert. So sparen Sie sich die Zeit, alles selbst lesen und entschlüsseln zu müssen. Sie können auch weiterführende Fragen stellen, um einige dieser Funktionen im Detail zu erläutern. Ziemlich praktisch, oder? Probieren Sie es aus!
5. Von lokal zu live! Bereitstellung mit Cloud Run und Cloud SQL

Okay, Cloud-Abenteurer, du hast das Gebiet erkundet. Jetzt ist es an der Zeit, Ihr eigenes Baumhaus in der Cloud zu bauen. Wir werden unsere Quickpoll-Anwendung in eine echte, aktive Web-App umwandeln, die jeder besuchen kann.
Ziel: Die Quickpoll-Anwendung mit einem Cloud SQL for PostgreSQL-Backend in Cloud Run bereitstellen.
Aufgabe 1: Einen stabilen Zweig für unsere Daten schaffen (Cloud SQL einrichten)
Jede gute Anwendung braucht einen Ort, an dem sie ihre wertvollen Eicheln aufbewahren kann… Ich meine Daten! Wir verwenden Cloud SQL for PostgreSQL. Es ist wie ein magischer, sich selbst pflegender Garten für unsere Datenbank, damit wir uns auf die schönen Dinge konzentrieren können.
Wir bitten die Gemini-Befehlszeile, die Grundlage für unsere Datenbank zu schaffen.
Please create a new Cloud SQL for PostgreSQL instance for me in project <myproject>. Call it quickpoll-db and put it in us-central1. Lets use the Development preset for now, and make the root password a-very-secure-password!.

Die Gemini CLI mit der Cloud SQL-Erweiterung wird aktiv. Dort wird der Tool-Aufruf „create_instance“ angezeigt. Genehmige es einfach.
Nachdem die Instanz erstellt wurde, sollte die Ausgabe in etwa so aussehen:

Sie können eine .env-Datei mit der oben genannten Umgebungsvariable erstellen und sie vor dem Neustart von Gemini CLI einlesen, damit die CLI auf diese Variablen zugreifen kann.
Während unsere Instanz wächst, bereiten wir den Boden vor. Wir benötigen eine Datenbank und einen Nutzer für unsere App.
In the quickpoll-db instance, create a new database named quickpolldb.
Gemini CLI verwendet das Tool create_database in der Cloud SQL for PostgreSQL-Erweiterung, um die Datenbank für Sie zu erstellen.

Fügen wir nun einen Nutzer hinzu, der sich darum kümmert:
In the quickpoll-db instance, create a built in user named quickpoll-user with the password another-secure-password!.
Dieses Mal wird in der Gemini CLI das Tool create_user verwendet.

Aufgabe 2: Der Secret-Pfad (Backend verbinden)
Unser Backend muss den geheimen Pfad zu unserer neuen Datenbank kennen. Sehen wir uns an, wie das funktioniert.
show me how would the backend/main.py connect to the database

Aha! Seht ihr das? Dabei wird der Cloud SQL Python-Connector verwendet und nach Umgebungsvariablen wie CLOUD_SQL_POSTGRES_INSTANCE, CLOUD_SQL_POSTGRES_USER, CLOUD_SQL_POSTGRES_PASSWORD und CLOUD_SQL_POSTGRES_DATABASE gesucht. Wir müssen sie unserem Cloud Run-Dienst zur Verfügung stellen.
Zuerst benötigen wir die CLOUD_SQL_POSTGRES_INSTANCE. Das ist wie ein geheimer Händedruck.
What are the details for the Cloud SQL instance quickpoll-db in us-central1?

Es werden viele Details angezeigt. Suchen Sie nach dem Verbindungsnamen und kopieren Sie den Wert. Sie sollte etwa so your-project-id:us-central1:quickpoll-db aussehen:
Bevor wir die Anwendung in Cloud Run bereitstellen, instanziieren wir die Datenbank mit den erforderlichen Tabellen. Da wir eine separate Datenbank und einen Nutzer erstellt haben, beenden wir Gemini CLI und aktualisieren die .env-Datei, die wir zuvor erstellt haben, mit den neuen Werten:
export CLOUD_SQL_POSTGRES_USER=quickpoll-user
export CLOUD_SQL_POSTGRES_PASSWORD=password-you-provided
export CLOUD_SQL_POSTGRES_DATABASE=quickpolldb
Starten Sie die Gemini CLI neu und geben Sie Folgendes ein:
execute backend/database.sql file on quickpolldb database as quickpolluser in quickpoll-db instance

Das Tool hat automatisch erkannt, dass execute_sql die Ausführung mehrerer SQL-Befehle in einem einzigen Aufruf nicht unterstützt. Daher wurde jeder SQL-Befehl separat ausgeführt.
Aufgabe 3: Backend, Take Flight! (In Cloud Run bereitstellen)
Es ist Zeit, dass unser Backend das Nest verlässt. Wir weisen Gemini an, den Backend-Ordner in Cloud Run bereitzustellen und den geheimen Pfad zur Datenbank anzugeben.
Deploy the backend folder to a new Cloud Run service called quickpoll-be in us-central1. Here are the secrets (environment variables):
CLOUD_SQL_POSTGRES_INSTANCE=your-project-id:us-central1:quickpoll-db
CLOUD_SQL_POSTGRES_USER=quickpoll-user
CLOUD_SQL_POSTGRES_PASSWORD=password-you-provided
CLOUD_SQL_POSTGRES_DATABASE=quickpolldb
Gemini verpackt Ihren Code, erstellt ein Container-Image und stellt es in Cloud Run bereit. Wenn das erledigt ist, was einige Minuten dauern kann, erhalten Sie eine URL für Ihren neuen Backend-Dienst. Bewahren Sie diese URL sorgfältig auf.

Aufgabe 4: Feinschliff (Front-End konfigurieren und bereitstellen)
Unser Frontend ist wie das freundliche Gesicht unserer Anwendung. Es muss wissen, wo das Backend zu finden ist. Sagen wir ihm, wohin es gehen soll.
Deploy the frontend folder to a new Cloud Run service called quickpoll-fe in us-central1. Here are the secrets (environment variables):
BACKEND_URL=backend-url

Aufgabe 5: Die große Enthüllung!
Das war’s! Die Stunde der Wahrheit! Rufen Sie die URL für Ihren Dienst „quickpoll-fe“ ab und öffnen Sie sie in Ihrem Webbrowser.
Ihre QuickPoll-Anwendung sollte jetzt live und einsatzbereit sein. Erstelle eine Umfrage, gib eine Stimme ab und sieh dir an, wie die Ergebnisse in Echtzeit aktualisiert werden.
Geschafft! Sie haben ein Projekt von Ihrem lokalen Computer in die Google Cloud übertragen und dort zum Leben erweckt. Und das alles bequem von Ihrem Terminal aus mit Ihrem treuen Assistenten, Gemini CLI.
Das nenne ich Produktivität!
6. Für Entwickler: Beschleunigung des Entwicklungszyklus

So, liebe Entwickler, jetzt wird es richtig spannend. Wir haben uns ein Projekt angesehen, aber jetzt ist es an der Zeit, es zu erstellen. Ich zeige Ihnen, wie Gemini Ihr ultimativer Coding-Partner sein kann und Ihnen hilft, schneller als ein Eichhörnchen eine Nuss findet, aus einer einfachen Idee produktionsreifen Code zu erstellen.
Von der Idee zum Code
Denken Sie an den typischen Entwicklungszyklus. Es geht nicht nur darum, Code zu schreiben, oder? Es geht um das Erstellen von Gerüsten, das Hinzufügen der Fehlerbehandlung, das Refactoring und das Schreiben von Tests. Gemini kann dir dabei helfen.
Standardtexte und sich wiederholende Aufgaben: Schluss mit dem Kopieren und Einfügen!
Sie haben jetzt die grundlegende Anwendungsfunktionalität. Jetzt müssen Sie Logging hinzufügen und potenzielle Fehler behandeln, oder? Das sind in der Regel viele sich wiederholende try...except-Blöcke. Das ist nicht mehr der Fall. Wir beginnen damit, die Gemini-Befehlszeile zu bitten, den Code zu analysieren und Best Practices für die Fehlerprotokollierung und Ausnahmebehandlung vorzuschlagen:
What are the best practices for error handling and logging that should also be included in this application?

Gemini CLI analysiert die vorhandene Datei und gibt einige Empfehlungen für Best Practices. Es ist wie ein Experte, der Ihnen die Recherche abnimmt.
Lassen Sie die Empfehlungen nun umsetzen:
please go ahead and implement these in the existing app
Die tatsächliche Ausgabe kann in Ihrem Fall abweichen, aber am Ende sollten Sie die Details der vorgenommenen Änderungen sehen. Im Screenshot unten sehen Sie beispielsweise, dass structlog hinzugefügt wurde, um JSON-formatierte Logs zu erstellen, eine zentrale Ausnahmebehandlung implementiert wurde und die Art und Weise, wie Anforderungsantworten protokolliert werden, verbessert wurde. Stellen Sie sich vor, wie viel Tipparbeit Sie sich gerade gespart haben!

Refactoring: Ihr persönlicher Code-Reviewer
Wir alle möchten sauberen, effizienten Code schreiben. Manchmal haben wir es aber eilig. Gemini kann als persönlicher Code-Reviewer fungieren. Sie können beispielsweise Folgendes fragen:
please perform a comprehensive code review for best practices and security


Gemini versteht sprachspezifische Best Practices. Die tatsächliche Ausgabe kann sich in Ihrem Fall von den Screenshots oben unterscheiden. Wenn Sie sich die Ausgabe jedoch ansehen, werden Sie feststellen, wie detailliert Gemini CLI den Code analysiert hat. So können Sie gleichzeitig lernen und Ihren Code verbessern.
Testgenerierung: Das Beste!
Das ist mein Lieblingstrick! Wir wissen alle, dass wir Tests schreiben sollten, aber das kann mühsam sein, insbesondere wenn Sie Dinge simulieren müssen. Seht euch das hier an. Sie können einfach fragen:
Add a test suite to this application



Gemini analysiert Ihre Funktion, ermittelt die Ein- und Ausgaben und findet heraus, welche Abhängigkeiten bestehen. Anschließend wird eine vollständige test_main.py-Datei mit mehreren Testläufen generiert, darunter ein „Happy Path“ und möglicherweise eine Fehlerbedingung. Das ist ein enormer Produktivitätsschub.
Führen Sie die Tests aus. (Eine Challenge-Aufgabe für dich)
Jetzt wird es richtig spannend. Ich überlasse es Ihnen, diesen Teil selbst zu erkunden. Sie können Gemini CLI auffordern, die generierten Testläufe auszuführen. Lehnen Sie sich dann einfach zurück und beobachten Sie, wie die Magie geschieht.
7. Über den Localhost hinaus: Integration mit GitHub

Wir haben auf unserem lokalen Computer, unserer eigenen kleinen Ecke des Waldes, großartige Arbeit geleistet. Die eigentliche Stärke der Cloud liegt jedoch in der Zusammenarbeit und Vernetzung. Es ist an der Zeit, abzuheben und zu sehen, wie Gemini mit der Welt interagieren kann. Wir beginnen mit dem größten Baum im Entwicklerwald: GitHub.
Konzept: Ihr integrierter DevOps-Assistent
Bisher haben wir Gemini als lokalen Coding-Partner verwendet. Wir werden ihn jetzt zu einem vollwertigen integrierten DevOps-Assistenten weiterentwickeln. Das ist alles dank der MCP-Integration (Model Context Protocol) möglich. Das ist ein schicker Name, aber er bedeutet nur, dass Gemini in Ihrem Namen sicher mit anderen Diensten kommunizieren kann. Der erste Dienst, den wir beherrschen werden, ist GitHub.
Überlegen Sie einmal: Wie oft müssen Sie Ihr Terminal verlassen, um eine Pull-Anfrage zu prüfen, ein Problem zu erstellen oder ein Repository auf GitHub zu durchsuchen? Das ist noch mehr Kontextwechsel! Mit dem github-Toolset können Sie all das direkt hier erledigen. Dadurch wird Gemini zu einer nativen Schnittstelle für GitHub.
Die offizielle GitHub-Dokumentation zum MCP-Server bietet umfassende Informationen zu den bereitgestellten Tools und Konfigurationsoptionen. Sie können zwischen lokalem und Remote-Betrieb wählen, da die Gemini-Befehlszeile beide Remote-MCP-Server vollständig unterstützt.
In dieser Anleitung wird beschrieben, wie Sie die Option „Remote-MCP-Server für GitHub“ einrichten. Zuerst benötigen Sie ein persönliches Zugriffstoken (Personal Access Token, PAT) von GitHub.
Sobald Sie Ihr PAT haben, können Sie das MCP-Serverobjekt in Ihre Datei „settings.json“ einfügen. Meine vollständige Datei „settings.json“ ist unten zu sehen. Sie können aber einfach dafür sorgen, dass Ihr „mcpServers“-Objekt mit dem übereinstimmt, was Sie hier sehen:
{
"security": {
"auth": {
"selectedType": "vertex-ai"
}
},
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
Nachdem Sie die Datei „settings.json“ mit der GitHub-MCP-Serverkonfiguration aktualisiert haben, starten Sie die Gemini CLI einfach neu oder führen Sie den Befehl „/mcp refresh“ aus. Der Screenshot unten zeigt den GitHub-MCP-Server, der jetzt auf meinem System eingerichtet ist. Er veranschaulicht die Vielzahl leistungsstarker Tools, die Gemini CLI jetzt mit dem Model Context Protocol nutzen kann.

Tastenkombinationen
Gemini bietet eine Reihe neuer Funktionen speziell für GitHub. Hier sind einige meiner Favoriten:
github.list_repositories: Sie möchten alle Repositories in Ihrer Organisation sehen, ohne einen Browser zu öffnen? Das ist Ihr Tool. Fragen Sie einfach: „List all the repositories in my org.“ (Liste alle Repositories in meiner Organisation auf).github.create_issue: Du hast einen Fehler gefunden? Sie müssen nicht das Fenster wechseln, um ein Problem zu erstellen. Sie können Gemini einfach auffordern, ein Problem imsample-flask-app-Repository mit dem Titel „Fix the login bug“ (Anmeldefehler beheben) und der folgenden Beschreibung zu erstellen. Schwupps wird das Problem erstellt.github.get_pull_request: Möchten Sie den Status einer PR prüfen? Sie können fragen: „Zeige mir die Details von PR-Nummer 42 imsample-flask-app-Repository.“ Gemini ruft den Titel, die Beschreibung, den Status und die Namen der Rezensenten ab.github.get_file_contents: Diese Funktion ist wirklich cool. Sie können eine Datei aus einem Remote-Repository lesen, ohne sie zuerst klonen zu müssen. Das ist ideal, um schnell eine Konfigurationsdatei oder die README-Datei eines Projekts zu prüfen, das Sie nicht lokal haben.
8. GitHub-Erkundung

Genug geredet, lass uns fliegen! Wir werden unsere neuen GitHub-Funktionen nutzen, um eine Organisation und ein Projekt zu erkunden – alles bequem über unser Terminal.
Ziel: Mit Gemini ein auf GitHub gehostetes Projekt untersuchen und verstehen.
Szenario: Sie müssen sich mit einem Projekt auf GitHub vertraut machen, an dem Sie noch nicht gearbeitet haben.
Aufgabe 1: Repositories in einer Organisation auflisten
Sehen wir uns zuerst alle Projekte in einer GitHub-Organisation an. Für dieses Lab können Sie Ihren eigenen GitHub-Nutzernamen oder eine Organisation verwenden, der Sie angehören. Bitten wir Gemini, sie aufzulisten.
List the repositories in the `[your-org-or-username]` GitHub organization.
Denken Sie daran, [your-org-or-username] durch Ihre tatsächlichen Informationen zu ersetzen. Gemini verwendet das Tool github.list_repositories und zeigt Ihnen eine Liste aller Projekte an. Sehr gut!
Aufgabe 2: Ein bestimmtes Repository finden
Okay, du siehst eine Liste der Repositories. Jetzt müssen Sie wie ein echter Entwickler diese Liste durchsuchen und das gewünschte Projekt finden. Für unser Lab nehmen wir an, dass wir nach dem Repository quickpoll suchen, das wir zuvor geklont haben. Für diesen Teil benötigen Sie keinen Befehl. Lesen Sie einfach die Ausgabe des letzten Schritts und suchen Sie das Repository.
Aufgabe 3: Offene Pull-Anfragen auflisten
Nachdem wir das Ziel-Repository identifiziert haben, sehen wir uns an, was damit passiert. Gibt es offene Pull-Anfragen? Wir fragen:
List the open pull requests for the `quickpoll` repository in the `[your-org-or-username]` organization.
Gemini verwendet das Tool github.list_pull_requests und filtert nach dem Status open. Anschließend werden alle offenen PRs mit der PR-Nummer, dem Titel und dem Ersteller aufgelistet. Hier sehen Sie auf einen Blick, wie das Projekt gerade entwickelt wird. Sie können dies mit einem Repository ausprobieren, zu dem Sie aktiv beitragen, und die Ergebnisse prüfen.

Aufgabe 4: Pull-Anfrage untersuchen
Angenommen, in dieser Liste gibt es einen interessanten PR. Wir möchten mehr darüber erfahren! Wir möchten die Beschreibung und die geänderten Dateien sehen. Wähle eine PR-Nummer aus der Liste aus (wenn keine vorhanden ist, kannst du diesen Schritt überspringen).
Show me the details and files changed in PR number 1 in the `quickpoll` repo.
Das ist ein tolles Beispiel für eine mehrstufige Aufgabe für Gemini. Zuerst wird wahrscheinlich github.get_pull_request verwendet, um die wichtigsten Details abzurufen, z. B. Titel, Text und Autor. Anschließend wird mit einem zweiten Tool, github.get_pull_request_files, nach den Dateiänderungen gesucht. Anschließend werden alle diese Informationen in einer übersichtlichen Zusammenfassung für Sie zusammengefasst. Sie haben gerade einen Pull-Request überprüft, ohne das Terminal zu verlassen. Das ist doch unglaublich!
9. Vom PRD zum ersten Commit

Sie haben gelernt, wie Sie die Funktionen von Gemini erkunden, nutzen und testen können. Sehen wir uns nun ein Beispiel aus der Praxis an. In dieser Phase wird aus einem Plan ein Produkt. Wir beginnen mit einem Dokument mit den Produktanforderungen (Product Requirements Document, PRD) und arbeiten uns bis zum ersten Commit vor. Lassen Sie uns etwas Erstaunliches schaffen!
Ziel: Eine Entwicklungsaufgabe aus der Praxis von Anfang bis Ende simulieren, wobei lokaler und Remote-Kontext kombiniert werden.
Szenario: Ihnen wurde eine neue Funktion zugewiesen. Die Anforderungen finden Sie in einer PRD-Datei im GitHub-Repository des Projekts.
Aufgabe 1: PRD lesen und verstehen
Das ist der wichtigste Schritt. Bevor Sie auch nur eine einzige Zeile Code schreiben, müssen Sie den Plan unbedingt verstehen. Die Anforderungen an unsere neue Funktion sind in der Datei „prd/NEW_FEATURE.md“ enthalten. Lass uns es aufbrechen und sehen, was drin ist.
explain the requirements mentioned in prd/NEW_FEATURE.md
Gemini CLI verwendet „read_file“, um den Inhalt des PRD zu präsentieren. Eintauchen Darin wird die neue Funktion beschrieben: eine Schaltfläche zum Aktualisieren, mit der Nutzer die Liste der aktiven Umfragen manuell aktualisieren können. Sehen Sie immer zuerst im Blueprint nach.

Aufgabe 2: Code – Anforderungen in die Realität umsetzen
Das ist der magische Moment! Wir übernehmen die Anforderungen aus dem PRD und bitten Gemini, den Code für uns zu schreiben. Wir müssen genau angeben, was wir möchten.
Implement the changes as per the PRD
Die Gemini CLI wird aktiviert und nach kurzer Zeit sehen Sie eine Ausgabe, die in etwa so aussieht. Unser neuer Code hat jetzt ein gemütliches Zuhause!

Aufgabe 3: Änderungen überprüfen
Wir haben eine neue Datei mit neuem Code erstellt. Im letzten Schritt dieses Labs stellen Sie die Änderung in Cloud Run bereit und bestätigen sie.
let's deploy the changes made to frontend to Cloud Run. The existing service on Cloud Run is quickpoll-fe in us-central1.
Beachten Sie, dass der Prompt zusätzliche Details wie den Namen des vorhandenen Cloud Run-Dienstes und die Bereitstellungsregion enthält. Wenn Sie spezifisch sind, sparen Sie Zeit. Gemini CLI fordert Sie jedoch immer auf, fehlende Details anzugeben, wenn Sie sie weglassen.
Sollte bei Ihrem aktualisierten Cloud Run-Dienst ein Fehler auftreten, bitten Sie Gemini CLI einfach, den Code zu debuggen und zu korrigieren. Denken Sie daran, dass es Ihr leistungsstarker Begleiter ist.
10. Glückwunsch

Das war's auch schon! Sie haben gerade einen vollständigen Entwicklungszyklus abgeschlossen. Sie haben aus einem Anforderungsdokument eine neue Funktion entwickelt, die bereit ist, committet und gepusht zu werden. Sie haben lokalen Kontext, Remote-Kontext, Dateisystemvorgänge und Codegenerierung kombiniert. Sie sind nicht nur Entwickler, sondern auch ein äußerst produktiver Cloud Architect. Glückwunsch!