1. Giriş
Bu codelab'de, GenAI Veritabanları Retrieval Hizmeti'ni dağıtmayı ve dağıtılan ortamı kullanarak örnek bir etkileşimli uygulama oluşturmayı öğreneceksiniz.
GenAI Retrieval Service ve örnek uygulama hakkında daha fazla bilgiyi burada bulabilirsiniz.
Ön koşullar
- Google Cloud Console hakkında temel bilgiler
- Komut satırı arayüzü ve Google Cloud kabuğuyla ilgili temel beceriler
Neler öğreneceksiniz?
- Cloud SQL örneği oluşturma
- Örneğe bağlanma
- GenAI Databases Retrieval Service'i yapılandırma ve dağıtma
- Dağıtılan hizmeti kullanarak örnek bir uygulama dağıtma
Gerekenler
- Bir Google Cloud Hesabı ve Google Cloud Projesi
- Chrome gibi bir web tarayıcısı
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.
- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğinizi (genellikle
PROJECT_ID
olarak tanımlanır) belirtmeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmanın tekrarlanmasını önlemek amacıyla kaynakları kapatmak için oluşturduğunuz kaynakları silebilir veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell'i başlatma
Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Google Cloud Console'da, sağ üstteki araç çubuğunda bulunan Cloud Shell simgesini tıklayın:
Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki tüm çalışmalarınız tarayıcıda yapılabilir. Herhangi bir şey yüklemeniz gerekmez.
3. Başlamadan önce
API'yi etkinleştirme
Cloud Shell'de proje kimliğinizin ayarlandığından emin olun:
Proje kimliği genellikle resimde gösterildiği gibi, Cloud Shell'deki komut isteminde parantez içinde gösterilir:
gcloud config set project [YOUR-PROJECT-ID]
Ardından PROJECT_ID ortam değişkenini Google Cloud projesi kimliğiniz olarak ayarlayın:
PROJECT_ID=$(gcloud config get-value project)
Gerekli tüm hizmetleri etkinleştirin:
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
Beklenen konsol çıkışı:
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 örneği oluşturma
Vektör desteğinin etkin olduğu bir Cloud SQL örneği oluşturun.
Şifre oluşturma
Varsayılan veritabanı kullanıcısının şifresini tanımlayın. Kendi şifrenizi tanımlayabilir veya rastgele bir işlev kullanarak şifre oluşturabilirsiniz
export CLOUDSQL_PASSWORD=`openssl rand -hex 12`
Şifre için oluşturulan değeri not edin
echo $CLOUDSQL_PASSWORD
MySQL
cloudsql_vector
işaretini, örnek oluştururken etkinleştirebilirsiniz. Şu anda, MySQL 8.0.36 ve 8.0.37.
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
Beklenen konsol çıkışı (IP adresi çıkartıldı):
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
pgvector uzantısı 11 ve daha büyük sürümlerde sunulmaktadır.
export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small
Beklenen konsol çıkışı (IP adresi çıkartıldı):
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
Örneği oluşturduktan sonra, örnekteki varsayılan kullanıcı için bir şifre tanımlamamız ve şifreyle bağlanıp bağlanamayacağımızı kontrol etmemiz gerekir. Bağlanmaya hazır olduğunda, istemde şifrenizi yazın.
gcloud sql users set-password postgres \
--instance=my-cloudsql-instance \
--password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres
Beklenen konsol çıkışı:
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=>
psql oturumundan çıkın:
exit
5. GCE Sanal Makinesi'ni Hazırlama
Hizmet Hesabı Oluştur
Üretken Yapay Zeka Veritabanları Alma hizmetimizi dağıtmak ve örnek bir uygulama barındırmak için sanal makinemizi kullanacağımızdan, atacağımız ilk adım bir Google Hizmet Hesabı (GSA) oluşturmak. GSA, GCE sanal makinesi tarafından kullanılacak ve diğer hizmetlerle çalışması için gerekli ayrıcalıkları vermemiz gerekecektir.
Cloud Shell'de şunu yürütün:
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 sanal makinesini dağıtma
Cloud SQL örneğiyle aynı bölgede ve VPC'de bir GCE sanal makinesi oluşturun.
Cloud Shell'de şunu yürütün:
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
Beklenen konsol çıkışı:
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
Sanal makineyi Cloud SQL'e bağlanacak şekilde yetkilendirme
Sanal makine genel IP'mizi Cloud SQL örneğimizin yetkili ağlar listesine eklememiz gerekiyor. Cloud Shell'de şunu yürütün:
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
Beklenen konsol çıkışı:
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].
Veritabanı istemcisini yükleme
MySQL
Dağıtılan sanal makineye MySQL istemci yazılımını yükleyin.
Sanal makineye bağlanın:
gcloud compute ssh instance-1 --zone=us-central1-a
Beklenen konsol çıkışı:
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:~$
Sanal makine içinde çalışan yazılımı yükleyin:
sudo apt-get update
sudo apt-get install --yes default-mysql-client
Beklenen konsol çıkışı:
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
Dağıtılan sanal makineye PostgreSQL istemci yazılımını yükleyin.
Sanal makineye bağlanın:
gcloud compute ssh instance-1 --zone=us-central1-a
Beklenen konsol çıkışı:
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:~$
Sanal makine içinde çalışan yazılımı yükleyin:
sudo apt-get update
sudo apt-get install --yes postgresql-client
Beklenen konsol çıkışı:
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) ...
Örneğe bağlanma
MySQL
MySQL kullanarak sanal makineden birincil örneğe bağlanın.
Sanal makinenize açılan SSH oturumuyla devam edin. Bağlantınız kesildiyse yukarıdaki komutu kullanarak tekrar bağlanın.
GCE sanal makinesinden Cloud SQL'e bağlanmak için daha önce not ettiğiniz $CLOUDSQL_password'ü ve örnek adını kullanın:
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
Beklenen konsol çıkışı:
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)]>
SSH bağlantısını açık tutarak MySQL oturumundan çıkın:
exit
Beklenen konsol çıkışı:
MySQL [(none)]> exit Bye student@instance-1:~$
PostgreSQL
psql kullanarak sanal makineden birincil örneğe bağlanın.
Sanal makinenize açılan SSH oturumuyla devam edin. Bağlantınız kesildiyse yukarıdaki komutu kullanarak tekrar bağlanın.
GCE sanal makinesinden PostgreSQL'e bağlanmak için daha önce not ettiğiniz $CLOUDSQL_password'ü ve örnek adını kullanın:
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"
Beklenen konsol çıkışı:
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=>
SSH bağlantısını açık tutarak psql oturumundan çıkın:
exit
Beklenen konsol çıkışı:
postgres=> exit student@instance-1:~$
6. Veritabanını ilk kullanıma hazırlama
Platform olarak veritabanımızı verilerle doldurmak ve uygulamamızı barındırmak için istemci sanal makinemizi kullanacağız. İlk adım bir veritabanı oluşturmak ve bu veritabanını verilerle doldurmaktır.
Veritabanı Oluştur
MySQL
"assistantdemo" adında bir veritabanı oluşturun.
GCE sanal makine oturumunda:
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo"
Beklenen konsol çıkışı (çıktı yok):
student@instance-1:~$ mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo" student@instance-1:~$
PostgreSQL
"assistantdemo" adında bir veritabanı oluşturun.
GCE sanal makine oturumunda:
psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo"
Beklenen konsol çıkışı:
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo" CREATE DATABASE student@instance-1:~$
pgvector uzantısını etkinleştirin.
psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector"
Beklenen konsol çıkışı (çıktı yok):
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector" CREATE EXTENSION student@instance-1:~$
Python Ortamını Hazırlama
Devam etmek için GitHub deposunda hazırladığımız Python komut dosyalarını kullanacağız ancak bundan önce gerekli yazılımı yüklememiz gerekiyor.
GCE sanal makinesinde yürütme:
sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
Beklenen konsol çıkışı:
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:~$
Python sürümünü doğrulayın.
GCE sanal makinesinde yürütme:
python -V
Beklenen konsol çıkışı:
(.venv) student@instance-1:~$ python -V Python 3.11.2 (.venv) student@instance-1:~$
Yapılandırma dosyasını hazırlama
Alma hizmeti ve örnek uygulamanın koduyla GitHub deposunu klonlayın.
GCE sanal makinesinde yürütme:
git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git
Beklenen konsol çıkışı:
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
GCE sanal makinesinde yürütme:
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
Beklenen konsol çıkışı:
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
GCE sanal makinesinde yürütme:
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
Beklenen konsol çıkışı:
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..."
Veritabanını doldur
Veritabanını örnek veri kümesiyle doldurun. İlk komut, gerekli tüm paketleri Python sanal ortamımıza eklemek, ikinci komut ise veritabanımızı verilerle doldurmaktır.
GCE sanal makinesinde yürütme:
cd ~/genai-databases-retrieval-app/retrieval_service
pip install -r requirements.txt
python run_database_init.py
Beklenen konsol çıkışı (çıkartılmış):
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. Retrieval Service'i Cloud Run'a Dağıtma
Artık alma hizmetini Cloud Run'a dağıtabiliriz. Hizmet, veritabanıyla çalışmaktan ve bir AI uygulamasından gelen isteğe bağlı olarak veritabanından gerekli bilgileri çıkarmaktan sorumludur.
Hizmet Hesabı Oluştur
Alma hizmeti için bir hizmet hesabı oluşturun ve gerekli ayrıcalıkları verin.
"+" işaretini kullanarak başka bir Cloud Shell sekmesi açın dokunun.
Yeni Cloud Shell sekmesinde şu komutu yürütün:
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"
Beklenen konsol çıkışı:
student@cloudshell:~ (gleb-test-short-003)$ gcloud iam service-accounts create retrieval-identity Created service account [retrieval-identity].
"exit" yürütme komutunun biriyle sekmeyi kapatın tıklayın:
exit
Retrieval Service'i dağıtma
Hizmeti dağıtarak SSH üzerinden sanal makineye bağlandığınız ilk sekmede devam edin.
Sanal makine SSH oturumunda:
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
Beklenen konsol çıkışı:
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$
Hizmeti Doğrulama
Artık hizmetin düzgün şekilde çalışıp çalışmadığını ve sanal makinenin uç noktaya erişimi olup olmadığını kontrol edebiliriz. Alma hizmeti uç noktasını almak için gcloud yardımcı programını kullanırız. Alternatif olarak, bunu Cloud konsolunda kontrol edebilir ve curl komutunda "$(gcloud run services list –filter="(retrieval-service)") değerini oradaki değerle değiştirebilirsiniz.
Sanal makine SSH oturumunda:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Beklenen konsol çıkışı:
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$
"Hello World"ü mesajı görürseniz, hizmetimizin çalışır durumda olduğu ve istekleri yerine getirdiğiniz anlamına gelir.
8. Örnek Uygulamayı Dağıtma
Artık alma hizmeti etkin ve çalışır durumda olduğunda hizmeti kullanacak örnek bir uygulama dağıtabiliriz. Uygulama, sanal makineye veya Cloud Run ya da Kubernetes gibi diğer herhangi bir hizmete, hatta dizüstü bilgisayarda yerel olarak dağıtılabilir. Şimdi de sanal makine üzerinde nasıl dağıtılacağını göstereceğiz.
Ortamı hazırlama
Aynı SSH oturumunu kullanarak sanal makinemiz üzerinde çalışmaya devam ediyoruz. Uygulamamızı çalıştırmak için bazı Python modülleri eklememiz gerekiyor. Bu komut, aynı Python sanal ortamındaki uygulama dizininden yürütülür.
Sanal makine SSH oturumunda:
cd ~/genai-databases-retrieval-app/llm_demo
pip install -r requirements.txt
Beklenen çıkış (çıkartılmış):
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) ...
İstemci Kimliğini Hazırlama
Uygulamanın rezervasyon işlevini kullanmak için Cloud Console'u kullanarak OAuth 2.0 İstemci Kimliği'ni hazırlamamız gerekir. Rezervasyon, rezervasyon verilerini veritabanına kaydetmek için müşterinin kimlik bilgilerini kullandığından bu aşamadan sonra uygulamada oturum açacağız.
Cloud Console'da API'ler ve Hizmetler'e gidin ve "OAuth izin ekranı"nı tıklayın ve "Dahili"yi seçin belirtir.
Ardından, "Oluştur" düğmesine basın. ve bir sonraki ekranda izleyin.
"Uygulama adı" gibi zorunlu alanları doldurmanız gerekir ve "Kullanıcı desteği e-postası". Ayrıca, izin ekranında göstermek istediğiniz bir alan adını ve son olarak da "Geliştirici iletişim bilgileri"ni ekleyebilirsiniz.
Ardından "Kaydet ve Devam Et" düğmesini tıkladığınızda bir sonraki sayfaya yönlendirilirsiniz.
Kapsamları belirtmek istemediğiniz sürece burada herhangi bir değişiklik yapmanız gerekmez. Son olarak "Kaydet ve Devam Et" düğmesine basarak işlemi onaylayın. tekrar. Bu işlem, uygulama izin ekranını ayarlar.
Bir sonraki adım, istemci kimliğini oluşturmaktır. Sol panelde "Credentials" (Kimlik bilgileri) seçeneğini tıklayın. sizi OAuth2 kimlik bilgilerine yönlendirir.
Burada "Create Credentials"' (Kimlik Bilgisi Oluştur) seçeneğini tıklayın. tıklayın ve "OAuth ClientID" (OAuth ClientID) seçeneğini belirleyin. Ardından başka bir ekran açılır.
"Web uygulaması"nı seçin açılır listesinden uygulama URI'nizi (ve isteğe bağlı bağlantı noktasını) "Yetkilendirilmiş JavaScript kaynakları" olarak girin. Ayrıca, "Yetkili yönlendirme URI'leri" "/login/google" ile uygulama ana makineniz . Yukarıdaki resimde, temel uygulama URI'm olarak http://localhost'u kullandığımı görebilirsiniz.
"Create" (Oluştur) düğmesine aktardıktan sonra düğmesini tıkladığınızda müşterilerinizin kimlik bilgilerinin bulunduğu bir pop-up pencere açılır.
Uygulamamızda kullanmak için daha sonra İstemci Kimliği'ne (ve isteğe bağlı olarak İstemci sırrı) ihtiyacımız olacaktır.
Asistan Uygulamasını Çalıştırın
Uygulamayı başlatmadan önce bazı ortam değişkenlerini ayarlamamız gerekiyor. Uçuşları ve havaalanı imkanlarını sorgulamak gibi temel uygulama işlevleri için yalnızca BASE_URL gereklidir. Bu URL, uygulamayı alma hizmetine yönlendirir. gcloud komutunu kullanarak alabiliriz .
Sanal makine SSH oturumunda:
export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Beklenen çıkış (çıkartılmış):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
Uygulamanın uçuş rezervasyonu ve değiştirme gibi daha gelişmiş özelliklerini kullanmak için Google Hesabımızı kullanarak uygulamada oturum açmamız gerekir. Bu amaçla, İstemci Kimliğini Hazırlama bölümündeki OAuth istemci kimliğini kullanarak CLIENT_ID ortam değişkeni sağlamamız gerekir:
export CLIENT_ID=215....apps.googleusercontent.com
Beklenen çıkış (çıkartılmış):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export CLIENT_ID=215....apps.googleusercontent.com
Şimdi uygulamamızı çalıştırabiliriz:
python run_app.py
Beklenen çıkış:
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)
Uygulamaya Bağlanın
Sanal makine üzerinde çalışan uygulamaya birkaç şekilde bağlanabilirsiniz. Örneğin VPC'deki güvenlik duvarı kurallarını kullanarak sanal makine üzerinde 8081 numaralı bağlantı noktasını açabilir veya genel IP'ye sahip bir yük dengeleyici oluşturabilirsiniz. Burada, 8080 numaralı yerel bağlantı noktasını 8081 sanal makine bağlantı noktasına çeviren sanal makineye giden bir SSH tüneli kullanacağız.
Yerel Makineden Bağlanma
Yerel bir makineden bağlanmak istediğimizde SSH tüneli çalıştırmamız gerekir. Bu işlem gcloud compute ssh kullanılarak yapılabilir:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8081:localhost:8081
Beklenen çıkış:
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:~$
Artık tarayıcıyı açıp uygulamamıza bağlanmak için http://localhost:8081 adresini kullanabiliriz. Uygulama ekranını görürüz.
Cloud Shell'den Bağlanma
Alternatif olarak, bağlanmak için Cloud Shell'i de kullanabiliriz. "+" işaretini kullanarak başka bir Cloud Shell sekmesi açın dokunun.
Yeni Cloud Shell sekmesinde şu gcloud komutunu çalıştırarak sanal makinenize tünel başlatın:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081
"İstenen adres atanamıyor" hatası gösterilir. - lütfen dikkate alma.
Beklenen çıkış şudur:
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:~$
Cloud Shell'inizde "Web önizlemesi" için kullanılabilecek 8080 numaralı bağlantı noktasını açar.
"Web önizlemesi"ni tıklayın düğmesini tıklayın ve açılır menüden "8080 bağlantı noktasında önizle"yi seçin.
Bu işlem, web tarayıcınızda uygulama arayüzüyle yeni bir sekme açar. "Cymbal Air Müşteri Hizmetleri Asistanı"nı görebilirsiniz. sayfasını ziyaret edin. Sayfanın adres çubuğunda, önizleme sayfasının URI'sini görürüz. "/?authuser=0&redirectedPreviously=true" bölümünü kaldırmamız gerekir. sonda
"https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/" gibi ilk URI bölümünü kullanın. tarayıcı penceresinde bırakılmalıdır ve "Yetkili JavaScript kaynakları" olarak sağlanmalıdır. ve "Yetkili yönlendirme URI'leri" "Prepare Client ID" (İstemci Kimliğini Hazırlama) alanında oluşturulan kimlik bilgilerimiz için orijinal http://localhost:8080 değerlerinin değiştirilmesi veya eklenmesi ile ilgili bölümü içerir. Üst değer şu şekilde görünür: "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev" En düşük değer "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/login/google" olacaktır
Uygulamada oturum açın
Her şey ayarlanıp uygulamanız açıkken "Oturum aç" düğmesini kullanabiliriz uygulama ekranımızın sağ üst kısmındaki düğmeyi kullanarak kimlik bilgilerimizi girin. Bu, yalnızca uygulamanın rezervasyon işlevini denemek istiyorsanız isteğe bağlıdır ve gereklidir.
Kimlik bilgilerimizi seçebileceğimiz bir pop-up pencere açılır.
Oturum açtıktan sonra uygulama hazır olur ve isteklerinizi pencerenin altındaki alanda yayınlamaya başlayabilirsiniz.
Bu demoda, Cymbal Air müşteri hizmetleri asistanı gösterilmektedir. Cymbal Air, hayali bir yolcu havayoludur. Asistan, gezginlerin uçuşları yönetmesine ve Cymbal Air'in San Francisco Uluslararası Havalimanı'ndaki (SFO) merkezi hakkında bilgi aramasına yardımcı olan bir yapay zeka chatbot'tur.
Oturum açmazsanız (CLIENT_ID olmadan), kullanıcıların aşağıdaki gibi sorularını yanıtlamanıza yardımcı olabilir:
Bir sonraki Ankara uçuşu ne zaman?
C28 kapısının yakınında lüks mağaza var mı?
A6 kapısının yakınında nereden kahve alabilirim?
Nereden hediye satın alabilirim?
Lütfen 10:35'te kalkacak Denver uçuşu için rezervasyon yap
Uygulamada oturum açtığınızda uçuş rezervasyonu yapma veya size atanan koltuğun pencere ya da koridor koltuğu olup olmadığını kontrol etme gibi diğer özellikleri deneyebilirsiniz.
Uygulama, yanıt oluşturmak ve operasyonel Cloud SQL veritabanından alınan uçuşlar ve imkanlarla ilgili bilgilerle yanıt oluşturmak için en yeni Google temel modellerini kullanıyor. Bu demo uygulaması hakkında daha fazla bilgiyi projenin GitHub sayfasında bulabilirsiniz.
9. Ortamı temizle
Tüm görevler tamamlandığında ortamımızı temizleyebiliriz.
Cloud Run Hizmeti'ni silme
Cloud Shell'de şunu yürütün:
gcloud run services delete retrieval-service --region us-central1
Beklenen konsol çıkışı:
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].
Cloud Run hizmetinin Hizmet Hesabını silme
Cloud Shell'de şunu yürütün:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet
Beklenen konsol çıkışı:
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 örneğini silme
Laboratuvarı tamamladıktan sonra Cloud SQL örneğini yok etme
Bağlantınız kesildiğinde ve önceki tüm ayarlarınız kaybolduysa Cloud Shell'de proje ve ortam değişkenlerini tanımlayın:
export INSTANCE_NAME=my-cloudsql-instance
export PROJECT_ID=$(gcloud config get-value project)
Örneği silin:
gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID
Beklenen konsol çıkışı:
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].
Artık sanal makinemizi kaldırabiliriz
GCE sanal makinesini silin
Cloud Shell'de şunu yürütün:
export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
--zone=$ZONE \
--quiet
Beklenen konsol çıkışı:
student@cloudshell:~ (test-project-001-402417)$ export GCEVM=instance-1 export ZONE=us-central1-a gcloud compute instances delete $GCEVM \ --zone=$ZONE \ --quiet Deleted
GCE Sanal Makinesi ve Alma hizmetinin Hizmet Hesabını silin
Cloud Shell'de şunu yürütün:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet
Beklenen konsol çıkışı:
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. Tebrikler
Codelab'i tamamladığınız için tebrikler.
İşlediklerimiz
- Cloud SQL örneği oluşturma
- Cloud SQL örneğine bağlanma
- GenAI Veritabanları Alma Hizmeti'ni yapılandırma ve dağıtma
- Dağıtılan hizmeti kullanarak örnek bir uygulama dağıtma