1. Einführung
In diesem Codelab erfahren Sie, wie Sie den GenAI Databases Retrieval Service bereitstellen und mit der bereitgestellten Umgebung eine interaktive Beispielanwendung erstellen.

Weitere Informationen zum GenAI-Abrufdienst und zur Beispielanwendung
Voraussetzungen
- Grundlegende Kenntnisse der Google Cloud Console
- Grundkenntnisse in der Befehlszeile und Google Cloud Shell
Lerninhalte
- Cloud SQL-Instanz erstellen
- Verbindung zur Instanz herstellen
- GenAI Databases Retrieval Service konfigurieren und bereitstellen
- Beispielanwendung mit dem bereitgestellten Dienst bereitstellen
Voraussetzungen
- Ein Google Cloud-Konto und ein Google Cloud-Projekt
- Ein Webbrowser wie Chrome
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.
3. Hinweis
API aktivieren
Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist:
Normalerweise wird die Projekt-ID in der Eingabeaufforderung in der Cloud Shell in Klammern angezeigt, wie im Bild zu sehen:

gcloud config set project [YOUR-PROJECT-ID]
Legen Sie dann die Umgebungsvariable PROJECT_ID auf Ihre Google Cloud-Projekt-ID fest:
PROJECT_ID=$(gcloud config get-value project)
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable sqladmin.googleapis.com \
compute.googleapis.com \
cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
vpcaccess.googleapis.com \
aiplatform.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
iam.googleapis.com
Erwartete Konsolenausgabe:
student@cloudshell:~ (gleb-test-short-004)$ gcloud services enable sqladmin.googleapis.com \
compute.googleapis.com \
cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
vpcaccess.googleapis.com \
aiplatform.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
run.googleapis.com \
iam.googleapis.com
Operation "operations/acf.p2-404051529011-664c71ad-cb2b-4ab4-86c1-1f3157d70ba1" finished successfully.
4. Cloud SQL-Instanz erstellen
Cloud SQL-Instanz mit aktivierter Vektorunterstützung erstellen
Passwort erstellen
Legen Sie ein Passwort für den Standarddatenbanknutzer fest. Sie können ein eigenes Passwort definieren oder eine Zufallsfunktion verwenden, um eines zu generieren.
export CLOUDSQL_PASSWORD=`openssl rand -hex 12`
Notieren Sie sich den generierten Wert für das Passwort.
echo $CLOUDSQL_PASSWORD
MySQL
Sie können das Flag cloudsql_vector beim Erstellen der Instanz aktivieren. Derzeit wird die Vektorunterstützung in MySQL 8.0.36 und 8.0.37 angeboten.
export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=MYSQL_8_0_36 --database-flags=cloudsql_vector=ON --root-password=$CLOUDSQL_PASSWORD
Erwartete Konsolenausgabe (IP-Adresse entfernt):
student@cloudshell:~ export region=us-central1 gcloud sql instances create my-cloudsql-instance --region=$region --database-version=MYSQL_8_0_36 --database-flags=cloudsql_vector=ON --root-password=$CLOUDSQL_PASSWORD Creating Cloud SQL instance for MYSQL_8_0_36...done. Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance]. NAME DATABASE_VERSION LOCATION TIER PRIMARY_ADDRESS PRIVATE_ADDRESS STATUS my-cloudsql-instance MYSQL_8_0_36 us-central1-a db-n1-standard-1 00.000.00.00 - RUNNABLE
PostgreSQL
Die pgvector-Erweiterung ist in Versionen >= 11 verfügbar.
export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small
Erwartete Konsolenausgabe (IP-Adresse entfernt):
student@cloudshell:~ export region=us-central1 gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small Creating Cloud SQL instance for POSTGRES_15...done. Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance]. NAME DATABASE_VERSION LOCATION TIER PRIMARY_ADDRESS PRIVATE_ADDRESS STATUS my-cloudsql-instance POSTGRES_15 us-central1-a db-g1-small 00.000.00.00 - RUNNABLE
Nachdem die Instanz erstellt wurde, müssen wir ein Passwort für den Standardnutzer in der Instanz definieren und prüfen, ob wir uns mit dem Passwort verbinden können. Geben Sie Ihr Passwort in den Prompt ein, wenn die Verbindung hergestellt werden soll.
gcloud sql users set-password postgres \
--instance=my-cloudsql-instance \
--password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-402417)$ gcloud sql users set-password postgres \
--instance=my-cloudsql-instance \
--password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres
Updating Cloud SQL user...done.
Allowlisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [postgres].Password:
psql (16.3 (Ubuntu 16.3-1.pgdg22.04+1), server 15.7)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
postgres=>
Beenden Sie die psql-Sitzung:
exit
5. GCE-VM vorbereiten
Dienstkonto erstellen
Da wir unsere VM zum Bereitstellen des GenAI Databases Retrieval Service und zum Hosten einer Beispielanwendung verwenden, müssen wir zuerst ein Google-Dienstkonto (Google Service Account, GSA) erstellen. Das GSA wird von der GCE-VM verwendet und wir müssen ihm die erforderlichen Berechtigungen für die Arbeit mit anderen Diensten erteilen.
Führen Sie in Cloud Shell Folgendes aus:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts create compute-aip --project $PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudbuild.builds.editor"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/artifactregistry.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/storage.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudsql.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudsql.client"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:compute-aip@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
GCE-VM bereitstellen
Erstellen Sie eine GCE-VM in derselben Region und VPC wie die Cloud SQL-Instanz.
Führen Sie in Cloud Shell Folgendes aus:
export ZONE=us-central1-a
gcloud compute instances create instance-1 \
--zone=$ZONE \
--create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--service-account=compute-aip@$PROJECT_ID.iam.gserviceaccount.com
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
gcloud compute instances create instance-1 \
--zone=$ZONE \
--create-disk=auto-delete=yes,boot=yes,image=projects/debian-cloud/global/images/$(gcloud compute images list --filter="family=debian-12 AND family!=debian-12-arm64" --format="value(name)") \
--scopes=https://www.googleapis.com/auth/cloud-platform
Created [https://www.googleapis.com/compute/v1/projects/test-project-402417/zones/us-central1-a/instances/instance-1].
NAME: instance-1
ZONE: us-central1-a
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
INTERNAL_IP: 10.128.0.2
EXTERNAL_IP: 34.71.192.233
STATUS: RUNNING
VM zum Herstellen einer Verbindung zu Cloud SQL autorisieren
Wir müssen die öffentliche IP-Adresse unserer VM der Liste der autorisierten Netzwerke für unsere Cloud SQL-Instanz hinzufügen. Führen Sie in Cloud Shell Folgendes aus:
VM_EXTERNAL_IP=$(gcloud compute instances describe instance-1 --zone=us-central1-a --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
gcloud sql instances patch my-cloudsql-instance --authorized-networks=$VM_EXTERNAL_IP
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-402417)$ export ZONE=us-central1-a
student@cloudshell:~ (test-project-402417)$ VM_EXTERNAL_IP=$(gcloud compute instances describe instance-1 --zone=us-central1-a --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
gcloud sql instances patch my-cloudsql-instance --authorized-networks=$VM_EXTERNAL_IP
When adding a new IP address to authorized networks, make sure to also include any IP addresses that have already been authorized. Otherwise, they will be overwritten and de-authorized.
Do you want to continue (Y/n)? Y
The following message will be used for the patch API method.
{"name": "my-cloudsql-instance", "project": "test-project-402417", "settings": {"ipConfiguration": {"authorizedNetworks": [{"value": "34.71.252.173"}]}}}
Patching Cloud SQL instance...done.
Updated [https://sqladmin.googleapis.com/sql/v1beta4/projects/test-project-402417/instances/my-cloudsql-instance].
Datenbankclient installieren
MySQL
Installieren Sie die MySQL-Clientsoftware auf der bereitgestellten VM.
Stellen Sie eine Verbindung zur VM her.
gcloud compute ssh instance-1 --zone=us-central1-a
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-402417)$ gcloud compute ssh instance-1 --zone=us-central1-a Updating project ssh metadata...working..Updated [https://www.googleapis.com/compute/v1/projects/test-project-402417]. Updating project ssh metadata...done. Waiting for SSH key to propagate. Warning: Permanently added 'compute.5110295539541121102' (ECDSA) to the list of known hosts. Linux instance-1 5.10.0-26-cloud-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. student@instance-1:~$
Installieren Sie den Befehl zum Ausführen der Software in der VM:
sudo apt-get update
sudo apt-get install --yes default-mysql-client
Erwartete Konsolenausgabe:
student@instance-1:~$ sudo apt-get update sudo apt-get install --yes mysql-client Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libgdbm-compat4 libperl5.32 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 perl perl-modules-5.32 Suggested packages: libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make libtap-harness-archive-perl The following NEW packages will be installed: default-mysql-client libconfig-inifiles-perl libdbd-mariadb-perl libdbi-perl libgdbm-compat4 libperl5.32 libterm-readkey-perl mariadb-client-10.5 mariadb-client-core-10.5 perl Perl-modules-5.32 ...redacted... Processing triggers for libc-bin (2.31-13+deb11u10) ...
PostgreSQL
Installieren Sie die PostgreSQL-Clientsoftware auf der bereitgestellten VM.
Stellen Sie eine Verbindung zur VM her.
gcloud compute ssh instance-1 --zone=us-central1-a
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-402417)$ gcloud compute ssh instance-1 --zone=us-central1-a Updating project ssh metadata...working..Updated [https://www.googleapis.com/compute/v1/projects/test-project-402417]. Updating project ssh metadata...done. Waiting for SSH key to propagate. Warning: Permanently added 'compute.5110295539541121102' (ECDSA) to the list of known hosts. Linux instance-1 5.10.0-26-cloud-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. student@instance-1:~$
Installieren Sie den Befehl zum Ausführen der Software in der VM:
sudo apt-get update
sudo apt-get install --yes postgresql-client
Erwartete Konsolenausgabe:
student@instance-1:~$ sudo apt-get update sudo apt-get install --yes postgresql-client Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B] Get:4 file:/etc/apt/mirrors/debian-security.list Mirrorlist [39 B] Hit:7 https://packages.cloud.google.com/apt google-compute-engine-bookworm-stable InRelease Get:8 https://packages.cloud.google.com/apt cloud-sdk-bookworm InRelease [1652 B] Get:2 https://deb.debian.org/debian bookworm InRelease [151 kB] Get:3 https://deb.debian.org/debian bookworm-updates InRelease [55.4 kB] ...redacted... update-alternatives: using /usr/share/postgresql/15/man/man1/psql.1.gz to provide /usr/share/man/man1/psql.1.gz (psql.1.gz) in auto mode Setting up postgresql-client (15+248) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+deb12u7) ...
Verbindung zur Instanz herstellen
MySQL
Stellen Sie mit MySQL eine Verbindung von der VM zur primären Instanz her.
Fahren Sie mit der geöffneten SSH-Sitzung zur VM fort. Wenn die Verbindung getrennt wurde, stellen Sie sie mit demselben Befehl wie oben wieder her.
Verwenden Sie das zuvor notierte $CLOUDSQL_PASSWORD und den Instanznamen, um von der GCE-VM aus eine Verbindung zu Cloud SQL herzustellen:
export CLOUDSQL_PASSWORD=<Noted password>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export INSTANCE_NAME=my-cloudsql-instance
export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD
Erwartete Konsolenausgabe:
student@instance-1:~$ export CLOUDSQL_PASSWORD=P9... student@instance-1:~$ export REGION=us-central1 student@instance-1:~$ export INSTANCE_NAME=my-cloud-sql-instance student@instance-1:~$ export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)") student@instance-1:~$ mysql –host=$INSTANCE_IP –user=root –password=$CLOUDSQL_PASSWORD –sslmode=require Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 2824706 Server version: 8.0.36-google (Google) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]>
Beenden Sie die MySQL-Sitzung, ohne die SSH-Verbindung zu schließen:
exit
Erwartete Konsolenausgabe:
MySQL [(none)]> exit Bye student@instance-1:~$
PostgreSQL
Stellen Sie mit psql eine Verbindung zur primären Instanz von der VM aus her.
Fahren Sie mit der geöffneten SSH-Sitzung zur VM fort. Wenn die Verbindung getrennt wurde, stellen Sie sie mit demselben Befehl wie oben wieder her.
Verwenden Sie das zuvor notierte $CLOUDSQL_PASSWORD und den Instanznamen, um von der GCE-VM aus eine Verbindung zu PostgreSQL herzustellen:
export PGPASSWORD=<Noted password (CLOUDSQL_PASSWORD)>
export CLOUDSQL_PASSWORD=$PGPASSWORD
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export INSTANCE_NAME=my-cloudsql-instance
export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
psql "host=$INSTANCE_IP user=postgres sslmode=require"
Erwartete Konsolenausgabe:
student@instance-1:~$ export CLOUDSQL_PASSWORD=P9...
student@instance-1:~$ export REGION=us-central1
student@instance-1:~$ export INSTANCE_IP=$(gcloud sql instances list --filter=name:$INSTANCE_NAME --format="value(PRIMARY_ADDRESS)")
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres sslmode=require"
psql (13.11 (Debian 13.11-0+deb11u1), server 14.7)
WARNING: psql major version 13, server major version 14.
Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=>
Beenden Sie die psql-Sitzung, ohne die SSH-Verbindung zu trennen:
exit
Erwartete Konsolenausgabe:
postgres=> exit student@instance-1:~$
6. Datenbank initialisieren
Wir verwenden unsere Client-VM als Plattform, um unsere Datenbank mit Daten zu füllen und unsere Anwendung zu hosten. Als Erstes müssen Sie eine Datenbank erstellen und mit Daten füllen.
Datenbank erstellen
MySQL
Erstellen Sie eine Datenbank mit dem Namen „assistantdemo“.
Führen Sie in der GCE-VM-Sitzung Folgendes aus:
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo"
Erwartete Konsolenausgabe (keine Ausgabe):
student@instance-1:~$ mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo" student@instance-1:~$
PostgreSQL
Erstellen Sie eine Datenbank mit dem Namen „assistantdemo“.
Führen Sie in der GCE-VM-Sitzung Folgendes aus:
psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo"
Erwartete Konsolenausgabe:
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo" CREATE DATABASE student@instance-1:~$
Aktivieren Sie die pgvector-Erweiterung.
psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector"
Erwartete Konsolenausgabe (keine Ausgabe):
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector" CREATE EXTENSION student@instance-1:~$
Python-Umgebung vorbereiten
Als Nächstes verwenden wir vorbereitete Python-Skripts aus dem GitHub-Repository. Dazu müssen wir aber zuerst die erforderliche Software installieren.
Führen Sie auf der GCE-VM Folgendes aus:
sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
Erwartete Konsolenausgabe:
student@instance-1:~$ sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
git-man liberror-perl patch python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools-whl
Suggested packages:
git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn ed diffutils-doc
The following NEW packages will be installed:
git git-man liberror-perl patch python3-distutils python3-lib2to3 python3-pip-whl python3-setuptools-whl python3.11-venv
0 upgraded, 9 newly installed, 0 to remove and 2 not upgraded.
Need to get 12.4 MB of archives.
After this operation, 52.2 MB of additional disk space will be used.
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
...redacted...
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 23.0.1
Uninstalling pip-23.0.1:
Successfully uninstalled pip-23.0.1
Successfully installed pip-24.0
(.venv) student@instance-1:~$
Prüfen Sie die Python-Version.
Führen Sie auf der GCE-VM Folgendes aus:
python -V
Erwartete Konsolenausgabe:
(.venv) student@instance-1:~$ python -V Python 3.11.2 (.venv) student@instance-1:~$
Konfigurationsdatei vorbereiten
Klonen Sie das GitHub-Repository mit dem Code für den Abrufdienst und die Beispielanwendung.
Führen Sie auf der GCE-VM Folgendes aus:
git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git
Erwartete Konsolenausgabe:
student@instance-1:~$ git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git Cloning into 'genai-databases-retrieval-app'... remote: Enumerating objects: 525, done. remote: Counting objects: 100% (336/336), done. remote: Compressing objects: 100% (201/201), done. remote: Total 525 (delta 224), reused 179 (delta 135), pack-reused 189 Receiving objects: 100% (525/525), 46.58 MiB | 16.16 MiB/s, done. Resolving deltas: 100% (289/289), done.
MySQL
Führen Sie auf der GCE-VM Folgendes aus:
cd ~/genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
cp example-config-cloudsql.yml config.yml
sed -i s/engine/mysql/g config.yml
sed -i s/my-project/$PROJECT_ID/g config.yml
sed -i s/my-region/$REGION/g config.yml
sed -i s/my-instance/$INSTANCE_NAME/g config.yml
sed -i s/my-password//g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/root/g config.yml
cat config.yml
Erwartete Konsolenausgabe:
student@instance-1:~$ cd genai-databases-retrieval-app/retrieval_service cp example-config-cloudsql.yml config.yml sed -i s/127.0.0.1/$INSTANCE_IP/g config.yml sed -i s/my-password/$CLOUDSQL_PASSWORD/g config.yml sed -i s/my_database/assistantdemo/g config.yml sed -i s/my-user/postgres/g config.yml cat config.yml host: 0.0.0.0 # port: 8080 datastore: # Example for MySQL kind: "cloudsql-mysql" host: 10.65.0.2 # port: 5432 database: "assistantdemo" user: "root" password: "P9..."
Postgres
Führen Sie auf der GCE-VM Folgendes aus:
cd ~/genai-databases-retrieval-app/retrieval_service
cp example-config-cloudsql.yml config.yml
sed -i s/engine/postgres/g config.yml
sed -i s/my-project/$PROJECT_ID/g config.yml
sed -i s/my-region/$REGION/g config.yml
sed -i s/my-instance/$INSTANCE_NAME/g config.yml
sed -i s/my-password/$PGPASSWORD/g config.yml
sed -i s/my_database/assistantdemo/g config.yml
sed -i s/my-user/postgres/g config.yml
cat config.yml
Erwartete Konsolenausgabe:
student@instance-1:~$ cd genai-databases-retrieval-app/retrieval_service cp example-config-cloudsql.yml config.yml sed -i s/engine/postgres/g config.yml sed -i s/my-project/$PROJECT_ID/g config.yml sed -i s/my-region/$REGION/g config.yml sed -i s/my-instance/$INSTANCE_NAME/g config.yml sed -i s/my-password/$CLOUDSQL_PASSWORD/g config.yml sed -i s/my_database/assistantdemo/g config.yml sed -i s/my-user/postgres/g config.yml cat config.yml host: 0.0.0.0 # port: 8080 datastore: # Example for Postgres kind: "cloudsql-postgres" host: 10.65.0.2 # port: 5432 database: "assistantdemo" user: "postgres" password: "P9..."
Datenbank füllen
Datenbank mit dem Beispiel-Dataset füllen Durch den ersten Befehl werden alle erforderlichen Pakete der virtuellen Python-Umgebung hinzugefügt. Der zweite Befehl füllt die Datenbank mit den Daten.
Führen Sie auf der GCE-VM Folgendes aus:
cd ~/genai-databases-retrieval-app/retrieval_service
pip install -r requirements.txt
python run_database_init.py
Erwartete Konsolenausgabe (redigiert):
student@instance-1:~/genai-databases-retrieval-app/retrieval_service$ pip install -r requirements.txt python run_database_init.py Collecting asyncpg==0.28.0 (from -r requirements.txt (line 1)) Obtaining dependency information for asyncpg==0.28.0 from https://files.pythonhosted.org/packages/77/a4/88069f7935b14c58534442a57be3299179eb46aace2d3c8716be199ff6a6/asyncpg-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata Downloading asyncpg-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.3 kB) Collecting fastapi==0.101.1 (from -r requirements.txt (line 2)) ... database init done. student@instance-1:~/genai-databases-retrieval-app/retrieval_service$
7. Abrufdienst in Cloud Run bereitstellen
Jetzt können wir den Abrufdienst in Cloud Run bereitstellen. Der Dienst ist für die Arbeit mit der Datenbank und das Extrahieren der erforderlichen Informationen aus der Datenbank basierend auf der Anfrage einer KI-Anwendung zuständig.
Dienstkonto erstellen
Erstellen Sie ein Dienstkonto für den Abrufdienst und gewähren Sie die erforderlichen Berechtigungen.
Öffnen Sie oben einen weiteren Cloud Shell-Tab, indem Sie auf das Pluszeichen (+) klicken.

Führen Sie im neuen Cloud Shell-Tab Folgendes aus:
export PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts create retrieval-identity
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudsql.client"
Erwartete Konsolenausgabe:
student@cloudshell:~ (gleb-test-short-003)$ gcloud iam service-accounts create retrieval-identity Created service account [retrieval-identity].
Schließen Sie den Tab, indem Sie entweder den Befehl „exit“ auf dem Tab ausführen:
exit
Abrufdienst bereitstellen
Fahren Sie auf dem ersten Tab fort, auf dem Sie über SSH mit der VM verbunden sind, indem Sie den Dienst bereitstellen.
Führen Sie in der VM-SSH-Sitzung den folgenden Befehl aus:
cd ~/genai-databases-retrieval-app
gcloud alpha run deploy retrieval-service \
--source=./retrieval_service/\
--no-allow-unauthenticated \
--service-account retrieval-identity \
--region us-central1 \
--network=default \
--quiet
Erwartete Konsolenausgabe:
student@instance-1:~/genai-databases-retrieval-app$ gcloud alpha run deploy retrieval-service \
--source=./retrieval_service/\
--no-allow-unauthenticated \
--service-account retrieval-identity \
--region us-central1 \
--network=default
This command is equivalent to running `gcloud builds submit --tag [IMAGE] ./retrieval_service/` and `gcloud run deploy retrieval-service --image [IMAGE]`
Building using Dockerfile and deploying container to Cloud Run service [retrieval-service] in project [gleb-test-short-003] region [us-central1]
X Building and deploying... Done.
✓ Uploading sources...
✓ Building Container... Logs are available at [https://console.cloud.google.com/cloud-build/builds/6ebe74bf-3039-4221-b2e9-7ca8fa8dad8e?project=1012713954588].
✓ Creating Revision...
✓ Routing traffic...
Setting IAM Policy...
Completed with warnings:
Setting IAM policy failed, try "gcloud beta run services remove-iam-policy-binding --region=us-central1 --member=allUsers --role=roles/run.invoker retrieval-service"
Service [retrieval-service] revision [retrieval-service-00002-4pl] has been deployed and is serving 100 percent of traffic.
Service URL: https://retrieval-service-onme64eorq-uc.a.run.app
student@instance-1:~/genai-databases-retrieval-app$
Dienst bestätigen
Jetzt können wir prüfen, ob der Dienst korrekt ausgeführt wird und die VM Zugriff auf den Endpunkt hat. Wir verwenden das gcloud-Tool, um den Endpunkt des Abrufdienstes abzurufen. Alternativ können Sie den Wert in der Cloud Console nachsehen und im curl-Befehl "$(gcloud run services list –filter="(retrieval-service)" durch den Wert aus der Cloud Console ersetzen.
Führen Sie in der VM-SSH-Sitzung den folgenden Befehl aus:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Erwartete Konsolenausgabe:
student@instance-1:~/genai-databases-retrieval-app$ curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
{"message":"Hello World"}student@instance-1:~/genai-databases-retrieval-app$
Wenn wir die Nachricht „Hello World“ sehen, bedeutet das, dass unser Dienst verfügbar ist und Anfragen verarbeitet.
8. Beispielanwendung bereitstellen
Nachdem der Abrufdienst nun ausgeführt wird, können wir eine Beispielanwendung bereitstellen, die den Dienst verwendet. Die Anwendung kann auf der VM oder einem anderen Dienst wie Cloud Run, Kubernetes oder sogar lokal auf einem Laptop bereitgestellt werden. Hier zeigen wir, wie Sie die Anwendung auf der VM bereitstellen.
Umgebung vorbereiten
Wir arbeiten weiterhin an unserer VM und verwenden dazu dieselbe SSH-Sitzung. Damit wir unsere Anwendung ausführen können, müssen wir einige Python-Module hinzufügen. Der Befehl wird im Anwendungsverzeichnis in derselben virtuellen Python-Umgebung ausgeführt.
Führen Sie in der VM-SSH-Sitzung den folgenden Befehl aus:
cd ~/genai-databases-retrieval-app/llm_demo
pip install -r requirements.txt
Erwartete Ausgabe (redigiert):
student@instance-1:~$ cd ~/genai-databases-retrieval-app/llm_demo pip install -r requirements.txt Collecting fastapi==0.104.0 (from -r requirements.txt (line 1)) Obtaining dependency information for fastapi==0.104.0 from https://files.pythonhosted.org/packages/db/30/b8d323119c37e15b7fa639e65e0eb7d81eb675ba166ac83e695aad3bd321/fastapi-0.104.0-py3-none-any.whl.metadata Downloading fastapi-0.104.0-py3-none-any.whl.metadata (24 kB) ...
Client-ID vorbereiten
Um die Buchungsfunktionen der Anwendung nutzen zu können, müssen wir eine OAuth 2.0-Client-ID mit der Cloud Console vorbereiten. Das ist der Fall, wenn wir uns in der Anwendung anmelden, da bei der Buchung die Anmeldedaten des Kunden verwendet werden, um die Buchungsdaten in der Datenbank zu speichern.
Rufen Sie in der Cloud Console „APIs und Dienste“ auf, klicken Sie auf „OAuth-Zustimmungsbildschirm“ und wählen Sie „Interner Nutzer“ aus.

Klicken Sie dann auf „Erstellen“ und folgen Sie der Anleitung auf dem nächsten Bildschirm.

Sie müssen Pflichtfelder wie „App-Name“ und „E‑Mail-Adresse für den Nutzer-Support“ ausfüllen. Außerdem können Sie eine Domain hinzufügen, die auf dem Zustimmungsbildschirm angezeigt werden soll, und schließlich die „Kontaktdaten des Entwicklers“.

Klicken Sie dann unten auf der Seite auf die Schaltfläche „Speichern und fortfahren“, um zur nächsten Seite zu gelangen.

Sie müssen dort nichts ändern, es sei denn, Sie möchten die Bereiche angeben. Bestätigen Sie die Änderungen abschließend noch einmal, indem Sie auf „Speichern und fortfahren“ klicken. Dadurch wird der Zustimmungsbildschirm für die Anwendung eingerichtet.
Im nächsten Schritt erstellen Sie die Client-ID. Klicken Sie im linken Bereich auf „Anmeldedaten“, um zu den Anmeldedaten für OAuth2 zu gelangen.

Klicken Sie oben auf „Anmeldedaten erstellen“ und wählen Sie „OAuth-Client-ID“ aus. Daraufhin wird ein weiterer Bildschirm geöffnet.

Wählen Sie in der Drop-down-Liste für den Anwendungstyp „Webanwendung“ aus und geben Sie den URI Ihrer Anwendung (und optional den Port) als „Autorisierte JavaScript-Quellen“ ein. Außerdem müssen Sie den Host Ihrer Anwendung mit „/login/google“ am Ende zu den „Authorized redirect URIs“ hinzufügen, damit Sie das Autorisierungs-Pop-up-Fenster verwenden können. Im Bild oben sehen Sie, dass ich http://localhost als Basis-URI der Anwendung verwendet habe.
Nachdem Sie auf die Schaltfläche „Erstellen“ geklickt haben, wird ein Pop-up-Fenster mit den Anmeldedaten Ihres Kunden angezeigt.

Wir benötigen die Client-ID (und optional den Clientschlüssel) später für unsere Anwendung.
Assistant-Anwendung ausführen
Bevor wir die Anwendung starten, müssen wir einige Umgebungsvariablen einrichten. Für die grundlegende Funktionalität der Anwendung, z. B. die Abfrage von Flügen und Flughafeneinrichtungen, ist nur BASE_URL erforderlich, die die Anwendung auf den Abrufdienst verweist. Wir können sie mit dem gcloud-Befehl abrufen .
Führen Sie in der VM-SSH-Sitzung den folgenden Befehl aus:
export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Erwartete Ausgabe (redigiert):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Wenn Sie erweiterte Funktionen der Anwendung wie das Buchen und Ändern von Flügen nutzen möchten, müssen Sie sich mit Ihrem Google-Konto in der Anwendung anmelden. Dazu müssen Sie die Umgebungsvariable CLIENT_ID mit der OAuth-Client-ID aus dem Abschnitt „Client-ID vorbereiten“ angeben:
export CLIENT_ID=215....apps.googleusercontent.com
Erwartete Ausgabe (redigiert):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export CLIENT_ID=215....apps.googleusercontent.com
Jetzt können wir unsere Anwendung ausführen:
python run_app.py
Erwartete Ausgabe:
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ python main.py INFO: Started server process [28565] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8081 (Press CTRL+C to quit)
Verbindung zur Anwendung herstellen
Es gibt verschiedene Möglichkeiten, eine Verbindung zu der Anwendung herzustellen, die auf der VM ausgeführt wird. Sie können beispielsweise Port 8081 auf der VM mithilfe von Firewallregeln in der VPC öffnen oder einen Load Balancer mit einer öffentlichen IP-Adresse erstellen. Hier wird ein SSH-Tunnel zur VM verwendet, der den lokalen Port 8080 in den VM-Port 8081 übersetzt.
Verbindung von einem lokalen Computer herstellen
Wenn wir eine Verbindung von einem lokalen Computer aus herstellen möchten, müssen wir einen SSH-Tunnel ausführen. Dies kann mit gcloud compute ssh erfolgen:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8081:localhost:8081
Erwartete Ausgabe:
student-macbookpro:~ student$ gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081 Warning: Permanently added 'compute.7064281075337367021' (ED25519) to the list of known hosts. Linux instance-1.us-central1-c.c.gleb-test-001.internal 6.1.0-21-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. student@instance-1:~$
Jetzt können wir den Browser öffnen und http://localhost:8081 verwenden, um eine Verbindung zu unserer Anwendung herzustellen. Der Anwendungsbildschirm sollte angezeigt werden.

Verbindung über Cloud Shell herstellen
Alternativ können wir Cloud Shell verwenden, um eine Verbindung herzustellen. Öffnen Sie oben einen weiteren Cloud Shell-Tab, indem Sie auf das Pluszeichen (+) klicken.

Starten Sie im neuen Cloud Shell-Tab den Tunnel zu Ihrer VM, indem Sie den gcloud-Befehl ausführen:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081
Es wird die Fehlermeldung „Cannot assign requested address“ (Angeforderte Adresse kann nicht zugewiesen werden) angezeigt. Ignorieren Sie diese.
Das ist die erwartete Ausgabe:
student@cloudshell:~ gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081 bind [::1]:8081: Cannot assign requested address inux instance-1.us-central1-a.c.gleb-codelive-01.internal 6.1.0-21-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat May 25 19:15:46 2024 from 35.243.235.73 student@instance-1:~$
Dadurch wird Port 8080 in Ihrer Cloud Shell geöffnet, der für die „Webvorschau“ verwendet werden kann.
Klicken Sie in Cloud Shell oben rechts auf die Schaltfläche „Webvorschau“ und wählen Sie im Drop-down-Menü „Vorschau auf Port 8080“ aus.

Daraufhin wird in Ihrem Webbrowser ein neuer Tab mit der Anwendungsoberfläche geöffnet. Sie sollten die Seite „Cymbal Air Customer Service Assistant“ sehen. In der Adressleiste der Seite sehen wir den URI zur Vorschauseite. Wir müssen den Teil „/?authuser=0&redirectedPreviously=true“ am Ende entfernen.

Der erste Teil des URI, z. B. „https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/“, muss im Browserfenster verbleiben und als Autorisierte JavaScript-Quellen und Autorisierte Weiterleitungs-URIs für die Anmeldedaten angegeben werden, die im Kapitel „Client-ID vorbereiten“ erstellt wurden. Dabei werden die ursprünglich angegebenen http://localhost:8080-Werte ersetzt oder ergänzt. Der obere Wert sieht so aus: https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev. Der untere Wert sieht so aus: https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/login/google.

In der Anwendung anmelden
Wenn alles eingerichtet ist und Ihre Anwendung geöffnet ist, können Sie oben rechts auf dem Anwendungsbildschirm auf die Schaltfläche „Anmelden“ klicken, um Ihre Anmeldedaten anzugeben. Das ist optional und nur erforderlich, wenn Sie die Buchungsfunktionen der Anwendung testen möchten.

Daraufhin wird ein Pop-up-Fenster geöffnet, in dem wir unsere Anmeldedaten auswählen können.
Nach der Anmeldung ist die Anwendung bereit und Sie können Ihre Anfragen in das Feld unten im Fenster eingeben.
In dieser Demo wird der Kundenservice-Assistent von Cymbal Air vorgestellt. Cymbal Air ist eine fiktive Fluggesellschaft. Der Assistent ist ein KI‑Chatbot, der Reisenden hilft, Flüge zu verwalten und Informationen zum Drehkreuz von Cymbal Air am internationalen Flughafen San Francisco (SFO) zu finden.
Ohne Anmeldung (ohne CLIENT_ID) kann sie Nutzerfragen wie die folgenden beantworten:
Wann ist der nächste Flug nach Denver?
Gibt es in der Nähe von Gate C28 Luxusgeschäfte?
Wo kann ich in der Nähe von Gate A6 einen Kaffee bekommen?
Wo kann ich ein Geschenk kaufen?
Bitte buche einen Flug nach Denver, der um 10:35 Uhr abfliegt.
Wenn Sie in der App angemeldet sind, können Sie andere Funktionen ausprobieren, z. B. Flüge buchen oder prüfen, ob der Ihnen zugewiesene Sitzplatz ein Fenster- oder Gangplatz ist.

Die Anwendung nutzt die neuesten Foundation Models von Google, um Antworten zu generieren und sie mit Informationen zu Flügen und Flughafeneinrichtungen aus der operativen Cloud SQL-Datenbank zu ergänzen. Weitere Informationen zu dieser Demoanwendung finden Sie auf der GitHub-Seite des Projekts.
9. Umgebung bereinigen
Wenn alle Aufgaben erledigt sind, können wir unsere Umgebung bereinigen.
Cloud Run-Dienst löschen
Führen Sie in Cloud Shell Folgendes aus:
gcloud run services delete retrieval-service --region us-central1
Erwartete Konsolenausgabe:
student@cloudshell:~ (gleb-test-short-004)$ gcloud run services delete retrieval-service --region us-central1 Service [retrieval-service] will be deleted. Do you want to continue (Y/n)? Y Deleting [retrieval-service]...done. Deleted service [retrieval-service].
Dienstkonto für Cloud Run-Dienst löschen
Führen Sie in Cloud Shell Folgendes aus:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet
Erwartete Konsolenausgabe:
student@cloudshell:~ (gleb-test-short-004)$ PROJECT_ID=$(gcloud config get-value project) Your active configuration is: [cloudshell-222] student@cloudshell:~ (gleb-test-short-004)$ gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet deleted service account [retrieval-identity@gleb-test-short-004.iam.gserviceaccount.com] student@cloudshell:~ (gleb-test-short-004)$
Cloud SQL-Instanz löschen
Cloud SQL-Instanz löschen, wenn Sie das Lab abgeschlossen haben
Definieren Sie in Cloud Shell die Projekt- und Umgebungsvariablen, wenn die Verbindung getrennt wurde und alle vorherigen Einstellungen verloren gegangen sind:
export INSTANCE_NAME=my-cloudsql-instance
export PROJECT_ID=$(gcloud config get-value project)
Löschen Sie die Instanz:
gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID
Erwartete Konsolenausgabe:
student@cloudshell:~$ gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID All of the instance data will be lost when the instance is deleted. Do you want to continue (Y/n)? y Deleting Cloud SQL instance...done. Deleted [https://sandbox.googleapis.com/v1beta4/projects/test-project-001-402417/instances/my-cloudsql-instance].
Jetzt können wir unsere VM löschen.
GCE-VM löschen
Führen Sie in Cloud Shell Folgendes aus:
export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
--zone=$ZONE \
--quiet
Erwartete Konsolenausgabe:
student@cloudshell:~ (test-project-001-402417)$ export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
--zone=$ZONE \
--quiet
Deleted
Dienstkonto für GCE-VM und Abrufdienst löschen
Führen Sie in Cloud Shell Folgendes aus:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet
Erwartete Konsolenausgabe:
student@cloudshell:~ (gleb-test-short-004)$ PROJECT_ID=$(gcloud config get-value project) gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet Your active configuration is: [cloudshell-222] deleted service account [compute-aip@gleb-test-short-004.iam.gserviceaccount.com] student@cloudshell:~ (gleb-test-short-004)$
10. Glückwunsch
Herzlichen Glückwunsch zum Abschluss des Codelabs.
Behandelte Themen
- Cloud SQL-Instanz erstellen
- Verbindung zur Cloud SQL-Instanz herstellen
- GenAI Databases Retrieval Service konfigurieren und bereitstellen
- Beispielanwendung mit dem bereitgestellten Dienst bereitstellen