1. مقدمه
در این کد لبه شما نحوه استقرار سرویس بازیابی پایگاه داده GenAI و ایجاد یک نمونه برنامه تعاملی با استفاده از محیط مستقر شده را خواهید آموخت.
می توانید اطلاعات بیشتری در مورد سرویس بازیابی GenAI و نمونه برنامه از اینجا دریافت کنید.
پیش نیازها
- درک اولیه از Google Cloud Console
- مهارت های اولیه در رابط خط فرمان و پوسته Google Cloud
چیزی که یاد خواهید گرفت
- نحوه ایجاد یک نمونه Cloud SQL
- نحوه اتصال به نمونه
- نحوه پیکربندی و استقرار سرویس بازیابی پایگاه داده GenAI
- نحوه استقرار یک برنامه نمونه با استفاده از سرویس مستقر شده
آنچه شما نیاز دارید
- یک حساب Google Cloud و پروژه Google Cloud
- یک مرورگر وب مانند کروم
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
- شناسه پروژه در تمام پروژههای Google Cloud منحصربهفرد است و تغییرناپذیر است (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورتحساب فراتر از این آموزش، میتوانید منابعی را که ایجاد کردهاید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.
3. قبل از شروع
فعال کردن API
در داخل Cloud Shell، مطمئن شوید که ID پروژه شما تنظیم شده است:
معمولاً ID پروژه در داخل پرانتز در خط فرمان در پوسته ابری همانطور که در تصویر نشان داده شده است نشان داده می شود:
gcloud config set project [YOUR-PROJECT-ID]
سپس متغیر محیطی PROJECT_ID را روی شناسه پروژه Google Cloud خود تنظیم کنید:
PROJECT_ID=$(gcloud config get-value project)
فعال کردن تمام خدمات لازم:
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
خروجی کنسول مورد انتظار:
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 ایجاد کنید
با فعال بودن پشتیبانی برداری، یک نمونه Cloud SQL ایجاد کنید.
رمز عبور ایجاد کنید
تعریف رمز عبور برای کاربر پیش فرض پایگاه داده شما می توانید رمز عبور خود را تعریف کنید یا از یک تابع تصادفی برای ایجاد آن استفاده کنید
export CLOUDSQL_PASSWORD=`openssl rand -hex 12`
به مقدار ایجاد شده برای رمز عبور توجه کنید
echo $CLOUDSQL_PASSWORD
MySQL
شما می توانید پرچم cloudsql_vector
را در ایجاد نمونه فعال کنید. در حال حاضر، پشتیبانی برداری در MySQL 8.0.36 و 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
خروجی کنسول مورد انتظار (آدرس IP ویرایش شده):
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 در نسخه های >= 11 ارائه شده است.
export region=us-central1
gcloud sql instances create my-cloudsql-instance --region=$region --database-version=POSTGRES_15 --tier=db-g1-small
خروجی کنسول مورد انتظار (آدرس IP ویرایش شده):
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
پس از ایجاد نمونه، باید یک رمز عبور برای کاربر پیش فرض در نمونه تعریف کنیم و بررسی کنیم که آیا می توانیم با رمز عبور وصل شویم. پس از آماده شدن برای اتصال، رمز عبور خود را در اعلان قرار دهید.
gcloud sql users set-password postgres \
--instance=my-cloudsql-instance \
--password=$CLOUDSQL_PASSWORD
gcloud sql connect my-cloudsql-instance --user=postgres
خروجی کنسول مورد انتظار:
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 خارج شوید:
exit
5. ماشین مجازی GCE را آماده کنید
ایجاد حساب سرویس
از آنجایی که ما از VM خود برای استقرار سرویس بازیابی پایگاه داده GenAI خود و میزبانی یک برنامه نمونه استفاده خواهیم کرد، اولین قدم ایجاد یک حساب سرویس Google (GSA) است. GSA توسط GCE VM استفاده خواهد شد و ما باید امتیازات لازم را برای کار با سایر سرویس ها به آن اعطا کنیم.
در Cloud Shell اجرا کنید:
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 را مستقر کنید
یک GCE VM در همان منطقه و VPC به عنوان نمونه Cloud SQL ایجاد کنید.
در Cloud Shell اجرا کنید:
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
خروجی کنسول مورد انتظار:
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 برای اتصال به Cloud SQL
ما باید IP عمومی VM خود را به لیست شبکه های مجاز برای نمونه Cloud SQL خود اضافه کنیم. در پوسته ابری اجرا کنید:
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
خروجی کنسول مورد انتظار:
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].
کلاینت پایگاه داده را نصب کنید
MySQL
نرم افزار مشتری MySQL را روی VM مستقر نصب کنید.
اتصال به VM:
gcloud compute ssh instance-1 --zone=us-central1-a
خروجی کنسول مورد انتظار:
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:~$
دستور اجرای نرم افزار را در داخل ماشین مجازی نصب کنید:
sudo apt-get update
sudo apt-get install --yes default-mysql-client
خروجی کنسول مورد انتظار:
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
نرم افزار مشتری PostgreSQL را روی ماشین مجازی مستقر شده نصب کنید.
اتصال به VM:
gcloud compute ssh instance-1 --zone=us-central1-a
خروجی کنسول مورد انتظار:
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:~$
دستور اجرای نرم افزار را در داخل ماشین مجازی نصب کنید:
sudo apt-get update
sudo apt-get install --yes postgresql-client
خروجی کنسول مورد انتظار:
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) ...
به Instance متصل شوید
MySQL
با استفاده از MySQL از VM به نمونه اولیه متصل شوید.
با جلسه SSH باز شده در VM خود ادامه دهید. اگر اتصال شما قطع شده است، با استفاده از همان دستور بالا دوباره وصل شوید.
برای اتصال به Cloud SQL از GCE VM از $CLOUDSQL_PASSWORD قبلاً ذکر شده و نام نمونه استفاده کنید:
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
خروجی کنسول مورد انتظار:
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 از جلسه MySQL خارج شوید:
exit
خروجی کنسول مورد انتظار:
MySQL [(none)]> exit Bye student@instance-1:~$
PostgreSQL
با استفاده از psql از VM به نمونه اولیه متصل شوید.
با جلسه SSH باز شده در VM خود ادامه دهید. اگر اتصال شما قطع شده است، دوباره با استفاده از همان دستور بالا وصل شوید.
برای اتصال به PostgreSQL از GCE VM از $CLOUDSQL_PASSWORD قبلاً ذکر شده و نام نمونه استفاده کنید:
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"
خروجی کنسول مورد انتظار:
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 از جلسه psql خارج شوید:
exit
خروجی کنسول مورد انتظار:
postgres=> exit student@instance-1:~$
6- پایگاه داده را مقداردهی اولیه کنید
ما قصد داریم از VM مشتری خود به عنوان یک پلتفرم برای پر کردن پایگاه داده خود با داده ها و میزبانی برنامه خود استفاده کنیم. اولین قدم ایجاد یک پایگاه داده و پر کردن آن با داده است.
ایجاد پایگاه داده
MySQL
یک پایگاه داده با نام "assistantdemo" ایجاد کنید.
در جلسه GCE VM اجرا کنید:
mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo"
خروجی کنسول مورد انتظار (بدون خروجی):
student@instance-1:~$ mysql --host=$INSTANCE_IP --user=root --password=$CLOUDSQL_PASSWORD -e "CREATE DATABASE assistantdemo" student@instance-1:~$
PostgreSQL
یک پایگاه داده با نام "assistantdemo" ایجاد کنید.
در جلسه GCE VM اجرا کنید:
psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo"
خروجی کنسول مورد انتظار:
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres" -c "CREATE DATABASE assistantdemo" CREATE DATABASE student@instance-1:~$
پسوند pgvector را فعال کنید.
psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector"
خروجی کنسول مورد انتظار (بدون خروجی):
student@instance-1:~$ psql "host=$INSTANCE_IP user=postgres dbname=assistantdemo" -c "CREATE EXTENSION vector" CREATE EXTENSION student@instance-1:~$
محیط پایتون را آماده کنید
برای ادامه قصد داریم از اسکریپت های آماده پایتون از مخزن GitHub استفاده کنیم اما قبل از انجام این کار باید نرم افزار مورد نیاز را نصب کنیم.
در GCE VM اجرا کنید:
sudo apt install -y python3.11-venv git
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
خروجی کنسول مورد انتظار:
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:~$
تایید نسخه پایتون
در GCE VM اجرا کنید:
python -V
خروجی کنسول مورد انتظار:
(.venv) student@instance-1:~$ python -V Python 3.11.2 (.venv) student@instance-1:~$
فایل پیکربندی را آماده کنید
مخزن GitHub را با کد سرویس بازیابی و برنامه نمونه کلون کنید.
در GCE VM اجرا کنید:
git clone https://github.com/GoogleCloudPlatform/genai-databases-retrieval-app.git
خروجی کنسول مورد انتظار:
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 VM اجرا کنید:
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
خروجی کنسول مورد انتظار:
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 VM اجرا کنید:
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
خروجی کنسول مورد انتظار:
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..."
پر کردن پایگاه داده
پایگاه داده را با مجموعه داده نمونه پر کنید. دستور اول تمام بسته های مورد نیاز را به محیط مجازی پایتون اضافه می کند و فرمان دوم پایگاه داده ما را با داده ها پر می کند.
در GCE VM اجرا کنید:
cd ~/genai-databases-retrieval-app/retrieval_service
pip install -r requirements.txt
python run_database_init.py
خروجی کنسول مورد انتظار (تدوین شده):
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. سرویس بازیابی را در Cloud Run مستقر کنید
اکنون می توانیم سرویس بازیابی را در Cloud Run مستقر کنیم. این سرویس مسئول کار با پایگاه داده و استخراج اطلاعات لازم از پایگاه داده بر اساس درخواست یک برنامه هوش مصنوعی است.
ایجاد حساب سرویس
یک حساب سرویس برای سرویس بازیابی ایجاد کنید و امتیازات لازم را اعطا کنید.
یک برگه دیگر Cloud Shell را با استفاده از علامت "+" در بالا باز کنید.
در تب جدید پوسته ابری اجرا کنید:
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"
خروجی کنسول مورد انتظار:
student@cloudshell:~ (gleb-test-short-003)$ gcloud iam service-accounts create retrieval-identity Created service account [retrieval-identity].
برگه را با یکی از دستورهای اجرایی "exit" در برگه ببندید:
exit
سرویس بازیابی را مستقر کنید
در تب اول که از طریق SSH به VM متصل شده اید، با استقرار سرویس، ادامه دهید.
در جلسه VM SSH اجرا کنید:
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
خروجی کنسول مورد انتظار:
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$
بررسی سرویس
اکنون می توانیم بررسی کنیم که آیا سرویس به درستی اجرا می شود و VM به نقطه پایانی دسترسی دارد یا خیر. ما از ابزار gcloud برای دریافت نقطه پایانی سرویس بازیابی استفاده می کنیم. یا می توانید آن را در کنسول ابری بررسی کنید و در دستور curl "$(gcloud run services list –filter="(retrieval-service)" را با مقدار موجود در آن جایگزین کنید.
در جلسه VM SSH اجرا کنید:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" $(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
خروجی کنسول مورد انتظار:
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" را می بینیم به این معنی است که سرویس ما فعال است و درخواست ها را انجام می دهد.
8. استقرار نمونه برنامه
اکنون هنگامی که سرویس بازیابی را راهاندازی کردهایم، میتوانیم یک برنامه نمونه را که قرار است از این سرویس استفاده کند، مستقر کنیم. این برنامه را می توان در VM یا هر سرویس دیگری مانند Cloud Run، Kubernetes یا حتی به صورت محلی روی لپ تاپ مستقر کرد. در اینجا قصد داریم نحوه استقرار آن را در VM نشان دهیم.
محیط را آماده کنید
ما با استفاده از همان جلسه SSH به کار روی VM خود ادامه می دهیم. برای اجرای برنامه ما باید چند ماژول پایتون اضافه کنیم. این دستور از دایرکتوری برنامه در همان محیط مجازی پایتون اجرا خواهد شد.
در جلسه VM SSH اجرا کنید:
cd ~/genai-databases-retrieval-app/llm_demo
pip install -r requirements.txt
خروجی مورد انتظار (تدوین شده):
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) ...
شناسه مشتری را آماده کنید
برای استفاده از قابلیت رزرو برنامه، باید شناسه مشتری OAuth 2.0 را با استفاده از Cloud Console آماده کنیم. این زمانی است که وارد برنامه می شویم زیرا رزرو از اعتبار مشتری برای ثبت داده های رزرو در پایگاه داده استفاده می کند.
در Cloud Console به APIs and Services بروید و روی «OAuth consent screen» کلیک کنید و «Internal» کاربر را انتخاب کنید.
سپس «ایجاد» را فشار دهید و در صفحه بعدی دنبال کنید.
باید فیلدهای الزامی مانند «نام برنامه» و «ایمیل پشتیبانی کاربر» را پر کنید. همچنین میتوانید دامنهای را که میخواهید در صفحه رضایت نمایش داده شود و در نهایت «اطلاعات تماس برنامهنویس» را اضافه کنید.
سپس دکمه "ذخیره و ادامه" را در پایین صفحه فشار دهید و به صفحه بعدی هدایت خواهید شد.
نیازی نیست چیزی را در آنجا تغییر دهید مگر اینکه بخواهید دامنه را مشخص کنید. در نهایت با فشار دادن مجدد دکمه "ذخیره و ادامه" آن را تأیید می کنید. که صفحه رضایت برنامه را تنظیم می کند.
مرحله بعدی ایجاد شناسه مشتری است. در پانل سمت چپ روی «Credentials» کلیک میکنید که شما را به اعتبارنامه OAuth2 هدایت میکند.
در اینجا روی «Create Credentials» در بالا کلیک کنید و «OAuth ClientID» را انتخاب کنید. سپس صفحه دیگری باز میشود.
"برنامه وب" را از لیست کشویی برای نوع برنامه انتخاب کنید و URI برنامه خود را (و پورت - به صورت اختیاری) را به عنوان "منشاهای مجاز جاوا اسکریپت" قرار دهید. و باید میزبان برنامه خود را با "/login/google" در پایان به "URI های تغییر مسیر مجاز" اضافه کنید تا بتوانید از صفحه بازشو مجوز استفاده کنید. در تصویر بالا می بینید که من از http://localhost به عنوان URI برنامه پایه خود استفاده کرده ام.
پس از فشار دادن دکمه "ایجاد"، یک پنجره بازشو با اعتبار مشتریان خود دریافت می کنید.
ما بعداً به شناسه مشتری (و در صورت تمایل Client Secret) برای استفاده در برنامه خود نیاز خواهیم داشت
برنامه دستیار را اجرا کنید
قبل از شروع برنامه باید چند متغیر محیطی را تنظیم کنیم. عملکرد اصلی برنامه مانند پروازهای پرس و جو و امکانات فرودگاهی فقط به BASE_URL نیاز دارد که برنامه را به خدمات بازیابی اشاره می کند. ما می توانیم آن را با استفاده از دستور gcloud دریافت کنیم.
در جلسه VM SSH اجرا کنید:
export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
خروجی مورد انتظار (تدوین شده):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export BASE_URL=$(gcloud run services list --filter="(retrieval-service)" --format="value(URL)")
برای استفاده از قابلیتهای پیشرفتهتر برنامه مانند رزرو و تغییر پرواز، باید با استفاده از حساب Google خود وارد برنامه شوید و برای این منظور باید متغیر محیطی CLIENT_ID را با استفاده از شناسه مشتری OAuth از فصل آماده کردن شناسه مشتری ارائه کنیم:
export CLIENT_ID=215....apps.googleusercontent.com
خروجی مورد انتظار (تدوین شده):
student@instance-1:~/genai-databases-retrieval-app/llm_demo$ export CLIENT_ID=215....apps.googleusercontent.com
و اکنون می توانیم برنامه خود را اجرا کنیم:
python run_app.py
خروجی مورد انتظار:
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)
به برنامه متصل شوید
شما راه های مختلفی برای اتصال به برنامه در حال اجرا در VM دارید. به عنوان مثال می توانید پورت 8081 را در VM با استفاده از قوانین فایروال در VPC باز کنید یا یک load balancer با IP عمومی ایجاد کنید. در اینجا می خواهیم از یک تونل SSH به VM استفاده کنیم که پورت محلی 8080 را به پورت VM 8081 ترجمه می کند.
اتصال از ماشین محلی
هنگامی که می خواهیم از یک ماشین محلی متصل شویم، باید یک تونل SSH را اجرا کنیم. این را می توان با استفاده از gcloud compute ssh انجام داد:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8081:localhost:8081
خروجی مورد انتظار:
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:~$
اکنون می توانیم مرورگر را باز کنیم و از http://localhost:8081 برای اتصال به برنامه خود استفاده کنیم. ما باید صفحه برنامه را ببینیم.
اتصال از Cloud Shell
یا می توانیم از پوسته ابری برای اتصال استفاده کنیم. یک برگه دیگر Cloud Shell را با استفاده از علامت "+" در بالا باز کنید.
در تب جدید پوسته ابری، با اجرای دستور gcloud، تونل را به VM خود راه اندازی کنید:
gcloud compute ssh instance-1 --zone=us-central1-a -- -L 8080:localhost:8081
خطای "نمی توان آدرس درخواستی را تعیین کرد" نشان می دهد - لطفاً آن را نادیده بگیرید.
در اینجا خروجی مورد انتظار است:
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:~$
پورت 8080 را روی پوسته ابری شما باز می کند که می تواند برای "پیش نمایش وب" استفاده شود.
روی دکمه «پیشنمایش وب» در بالای سمت راست Cloud Shell و از منوی کشویی کلیک کنید و «Preview on port 8080» را انتخاب کنید.
یک تب جدید در مرورگر وب شما با رابط برنامه باز می شود. شما باید بتوانید صفحه «دستیار خدمات مشتریان سیمبال ایر» را ببینید. در نوار آدرس صفحه، URI به صفحه پیش نمایش را می بینیم. ما باید قسمت "/?authuser=0&redirectedPreviously=true" را در پایان حذف کنیم
و استفاده از اولین قسمت URI مانند "https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev/" در پنجره مرورگر باقی بماند و به عنوان " جاوا اسکریپت مجاز" ارائه شود. origins " و "Authorized Redirect URIs " برای اعتبارنامه های ما ایجاد شده در فصل "Prepare Client ID" جایگزین یا افزودن به مقادیر http://localhost:8080 ارائه شده اولیه. مقدار بالایی شبیه " https://8080-cs-35704030349-default.cs-us-east1-vpcf.cloudshell.dev " و مقدار پایین تر " https://8080-cs-35704030349-default" خواهد بود. cs-us-east1-vpcf.cloudshell.dev/login/google "
وارد اپلیکیشن شوید
وقتی همه چیز راهاندازی شد و برنامه شما باز است، میتوانیم از دکمه "ورود به سیستم" در سمت راست بالای صفحه برنامه خود برای ارائه اطلاعات کاربری خود استفاده کنیم. این اختیاری است و فقط در صورتی لازم است که بخواهید عملکرد رزرو برنامه را امتحان کنید.
یک پنجره پاپ آپ باز می شود که در آن می توانیم اعتبار خود را انتخاب کنیم.
پس از ثبت نام، برنامه آماده است و می توانید درخواست های خود را در قسمت پایین پنجره ارسال کنید.
این نسخه ی نمایشی دستیار خدمات مشتری Cymbal Air را به نمایش می گذارد. Cymbal Air یک شرکت هواپیمایی خیالی مسافربری است. دستیار یک ربات چت هوش مصنوعی است که به مسافران کمک می کند تا پروازها را مدیریت کنند و اطلاعاتی درباره مرکز Cymbal Air در فرودگاه بین المللی سانفرانسیسکو (SFO) جستجو کنند.
بدون ورود به سیستم (بدون CLIENT_ID) میتواند به کاربران در پاسخ به سوالاتی مانند:
پرواز بعدی به دنور کی است؟
آیا مغازه های لوکسی در اطراف دروازه C28 وجود دارد؟
نزدیک دروازه A6 از کجا می توانم قهوه تهیه کنم؟
از کجا می توانم هدیه بخرم؟
لطفاً پرواز به مقصد دنور را رزرو کنید که ساعت 10:35 صبح حرکت می کند
وقتی وارد برنامه میشوید، میتوانید قابلیتهای دیگری مانند رزرو پرواز یا بررسی اینکه آیا صندلی اختصاص داده شده به شما یک صندلی در پنجره یا راهرو است را امتحان کنید.
این برنامه از جدیدترین مدلهای پایه Google برای تولید پاسخها و تقویت آن با اطلاعات مربوط به پروازها و امکانات از پایگاه داده عملیاتی Cloud SQL استفاده میکند. اطلاعات بیشتر در مورد این اپلیکیشن دمو را می توانید در صفحه Github پروژه بخوانید.
9. محیط را تمیز کنید
وقتی همه وظایف کامل شد، می توانیم محیط خود را تمیز کنیم.
سرویس Cloud Run را حذف کنید
در Cloud Shell اجرا کنید:
gcloud run services delete retrieval-service --region us-central1
خروجی کنسول مورد انتظار:
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 Shell اجرا کنید:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete retrieval-identity@$PROJECT_ID.iam.gserviceaccount.com --quiet
خروجی کنسول مورد انتظار:
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 را حذف کنید
پس از اتمام کار با آزمایشگاه، نمونه Cloud SQL را نابود کنید
در پوسته ابری، متغیرهای پروژه و محیط را تعریف کنید، اگر اتصال شما قطع شده و تمام تنظیمات قبلی از بین رفته است:
export INSTANCE_NAME=my-cloudsql-instance
export PROJECT_ID=$(gcloud config get-value project)
نمونه را حذف کنید:
gcloud sql instances delete $INSTANCE_NAME --project=$PROJECT_ID
خروجی کنسول مورد انتظار:
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].
حالا می توانیم VM خود را نابود کنیم
GCE VM را حذف کنید
در Cloud Shell اجرا کنید:
export GCEVM=instance-1
export ZONE=us-central1-a
gcloud compute instances delete $GCEVM \
--zone=$ZONE \
--quiet
خروجی کنسول مورد انتظار:
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 VM و The Retrieval Service را حذف کنید
در Cloud Shell اجرا کنید:
PROJECT_ID=$(gcloud config get-value project)
gcloud iam service-accounts delete compute-aip@$PROJECT_ID.iam.gserviceaccount.com --quiet
خروجی کنسول مورد انتظار:
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. تبریک می گویم
برای تکمیل کد لبه تبریک می گویم.
آنچه را پوشش داده ایم
- نحوه ایجاد یک نمونه Cloud SQL
- نحوه اتصال به نمونه Cloud SQL
- نحوه پیکربندی و استقرار سرویس بازیابی پایگاه داده GenAI
- نحوه استقرار یک برنامه نمونه با استفاده از سرویس مستقر شده