1. סקירה כללית
בשיעור ה-Lab הזה תיצרו מסד נתונים של AlloyDB באמצעות משימת Cloud Run. תגדירו גישה לשירותים פרטיים וחיבור לרשת (VPC) מאפליקציית serverless כדי לאפשר קישוריות בין Cloud Run Job לבין מסד נתונים של AlloyDB באמצעות כתובת IP פרטית.
מה תלמדו
בשיעור Lab זה תלמדו איך:
- הגדרת אשכול ומכונה של AlloyDB
- פריסת משימת Cloud Run ליצירת מסד נתונים של AlloyDB
2. הגדרה ודרישות
הגדרה של פרויקט ב-Cloud
- נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.



- שם הפרויקט הוא השם המוצג למשתתפים בפרויקט. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. אפשר לעדכן את המיקום הזה בכל שלב.
- מזהה הפרויקט חייב להיות ייחודי לכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שהוא מוגדר). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך להתייחס אליה. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל הוא מסומן כ-
PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר כזו למשך הפרויקט. - לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. מידע נוסף על שלושת הערכים האלה מופיע במאמרי העזרה.
- בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. העלות של התרגול הזה לא אמורה להיות גבוהה, ואולי לא תהיה עלות בכלל. כדי להשבית את המשאבים ולא לחייב אתכם אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את כל הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.
הגדרת הסביבה
לוחצים על הסמל משמאל לסרגל החיפוש כדי להפעיל את Cloud Shell.

כדי להפעיל ממשקי API של שירותים, מעתיקים את הפקודה שבהמשך ומדביקים אותה בטרמינל, ואז לוחצים על Enter:
gcloud services enable \
alloydb.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
run.googleapis.com \
vpcaccess.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
--quiet
הגדרת משתני סביבה:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
export PROJECT_NAME=$(gcloud projects describe $PROJECT_ID --format='value(name)')
export DB_DATABASE=test
export DB_USER=postgres
export DB_PASSWORD=password123
export REGION=us-central1
export CLUSTER=test-cluster
export INSTANCE=test-instance
export VPC_CONNECTOR=vpcconnector
3. הגדרה ויצירה של אשכול AlloyDB
מגדירים את ההרשאות הנדרשות להגדרה. כך משימת Cloud Run תוכל להתחבר למסד הנתונים של AlloyDB.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
הגדרת גישה לשירותים פרטיים
גישה לשירותים פרטיים מיושמת כחיבור VPC Peering בין רשת ה-VPC שלכם לבין רשת ה-VPC הבסיסית של Google Cloud שבה נמצאים משאבי AlloyDB (אשכולות ומופעים). החיבור הפרטי מאפשר למשאבים ברשת ה-VPC לתקשר עם משאבי AlloyDB שהם ניגשים אליהם באופן בלעדי באמצעות כתובות IP פנימיות. למשאבים ברשת ה-VPC לא נדרשת גישה לאינטרנט או כתובות IP חיצוניות כדי להגיע למשאבי AlloyDB.
כדי ליצור הגדרת גישה לשירותים פרטיים ברשת VPC שנמצאת באותו פרויקט בענן כמו AlloyDB, מבצעים שתי פעולות:
יוצרים טווח כתובות IP מוקצות ברשת ה-VPC.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
יוצרים חיבור פרטי בין רשת ה-VPC לבין רשת ה-VPC הבסיסית של Google Cloud. השלב הזה נמשך כ-2 דקות.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=google-managed-services-default \
--network=default \
--project=$PROJECT_ID
יוצרים אשכול AlloyDB.
gcloud beta alloydb clusters create $CLUSTER \
--password=$DB_PASSWORD \
--network=default \
--region=$REGION \
--project=$PROJECT_NAME
gcloud beta alloydb clusters describe $CLUSTER --region=$REGION
יוצרים מכונת AlloyDB. השלב הזה נמשך כ-10 דקות.
gcloud beta alloydb instances create $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--instance-type=PRIMARY \
--cpu-count=2 \
--project=$PROJECT_NAME
gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region $REGION
בודקים את האשכול שנוצר ב-מסוף Cloud.

שמירת כתובת ה-IP של מסד הנתונים במשתנה.""
export DB_HOST=$(gcloud beta alloydb instances describe $INSTANCE \
--cluster=$CLUSTER \
--region=$REGION \
--format=json | jq \
--raw-output ".ipAddress")
echo "DB_HOST=$DB_HOST"
4. בדיקת הקוד של משימה ב-Cloud Run
יש כמה דרכים ליצור מסד נתונים ב-AlloyDB. אחת מהן היא ליצור מכונה וירטואלית ב-Compute Engine, להתקין לקוח psql ואז להתחבר למופע כדי ליצור מסד נתונים. מידע נוסף על הגישה הזו זמין כאן.
בשיעור ה-Lab הזה תיצרו מסד נתונים חדש של AlloyDB באמצעות משימת Cloud Run.
כדאי לבדוק את הקבצים הבאים:
- Dockerfile – התקנת יחסי תלות נדרשים(postgresql-client)
- script.sh – משתמש בכלי שורת פקודה כדי ליצור מסד נתונים
ב-Cloud Shell, יוצרים תיקייה חדשה:
mkdir ~/alloy-db-cloud-run-job
cd ~/alloy-db-cloud-run-job
יצירת קובץ חדש Dockerfile:
cat > Dockerfile <<EOF
FROM ubuntu:latest
RUN apt-get update && apt-get install -y postgresql-client && apt-get clean
COPY script.sh /
RUN chmod +x /script.sh
CMD ["/script.sh"]
ENTRYPOINT ["/bin/bash"]
EOF
יוצרים קובץ חדש script.sh עם התוכן הבא:
echo "Connecting to $DB_HOST"
createdb -h $DB_HOST -p 5432 $PGDB
echo "Created $PGDB database"
psql -h $DB_HOST -l
משנים את ההרשאה ב-script.sh:
chmod +x script.sh
5. פריסת משימה ב-Cloud Run
מגדירים חיבור לרשת (VPC) מאפליקציית serverless. כך אפשר להשתמש במשימת Cloud Run כדי לתקשר עם אשכול AlloyDB באמצעות כתובת IP פנימית או פרטית. השלב הזה נמשך כ-2 דקות.
gcloud compute networks vpc-access connectors create ${VPC_CONNECTOR} \
--region=${REGION} \
--range=10.8.0.0/28
יוצרים מאגר Artifact Registry לאחסון תמונות של קונטיינרים.
gcloud artifacts repositories create db-job-repository \
--repository-format=docker \
--location=$REGION
יצירה ופרסום של קובץ אימג' של קונטיינר ב-Artifact Registry.
gcloud builds submit -t $REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest
פריסת משימה ב-Cloud Run.
gcloud beta run jobs create db-job \
--image=$REGION-docker.pkg.dev/$PROJECT_NAME/db-job-repository/db-job:latest \
--set-env-vars DB_HOST=$DB_HOST \
--set-env-vars PGUSER=$DB_USER \
--set-env-vars PGPASSWORD=$DB_PASSWORD \
--set-env-vars PGDB=$DB_DATABASE \
--vpc-connector $VPC_CONNECTOR \
--region $REGION
בדיקת הסימונים ששימשו ליצירת העבודה:
--vpc-connector – משימת Cloud Run תשתמש במחבר VPC כדי להגיע לכתובת ה-IP הפרטית של AlloyDB.
בודקים את העבודה שנוצרה במסוף Cloud.

מריצים משימת Cloud Run כדי ליצור מסד נתונים test.
gcloud beta run jobs execute db-job --region $REGION
בודקים את היומנים של Cloud Run Job ב-Cloud Console.

6. מעולה!
כל הכבוד, סיימתם את ה-Codelab!
הנושאים שנדון בהם:
- איך יוצרים אשכול ומכונה של AlloyDB
- איך יוצרים מסד נתונים של AlloyDB באמצעות משימת Cloud Run
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.