1. סקירה כללית
בשיעור ה-Lab הזה תיצרו מסד נתונים של AlloyDB באמצעות Cloud Run Job. תגדירו גישה לשירותים פרטיים וגישה ל-VPC ללא שרתים כדי לאפשר קישוריות בין Cloud Run Job לבין AlloyDB Database באמצעות כתובת 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 Job.
הקבצים מפורטים בהמשך:
- קובץ 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 Job כדי לתקשר עם אשכול 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 Job
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.