1. खास जानकारी
इस लैब में, Cloud Run Job की मदद से AlloyDB डेटाबेस बनाया जाएगा. इसमें, Private services access और Serverless VPC access को कॉन्फ़िगर किया जाएगा, ताकि Cloud Run Job और AlloyDB डेटाबेस के बीच, निजी आईपी का इस्तेमाल करके कनेक्टिविटी चालू की जा सके.
आपको क्या सीखने को मिलेगा
इस लैब में, आपको ये काम करने का तरीका पता चलेगा:
- AlloyDB क्लस्टर और इंस्टेंस सेट अप करना
- AlloyDB डेटाबेस बनाने के लिए, Cloud Run Job को डिप्लॉय करना
2. सेटअप और ज़रूरी शर्तें
Cloud Project का सेटअप
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में शामिल लोगों के लिए डिसप्ले नेम होता है. यह वर्णों की एक स्ट्रिंग होती है, जिसका इस्तेमाल Google API नहीं करते. इसे किसी भी समय अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. यानी, सेट करने के बाद इसे बदला नहीं जा सकता. Cloud Console, अपने-आप एक यूनीक स्ट्रिंग जनरेट करता है. आम तौर पर, आपको इस बारे में चिंता करने की ज़रूरत नहीं होती कि यह स्ट्रिंग क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_IDके तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, अपना आईडी भी आज़माया जा सकता है और देखा जा सकता है कि वह उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट के खत्म होने तक बना रहेगा. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जो प्रोजेक्ट नंबर है. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ पढ़ें.
- इसके बाद, Cloud के संसाधनों/एपीआई का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. अगर आपको इस ट्यूटोरियल के बाद, बिलिंग से बचने के लिए संसाधन बंद करने हैं, तो बनाए गए संसाधनों को मिटाया जा सकता है या पूरा प्रोजेक्ट मिटाया जा सकता है. Google Cloud के नए उपयोगकर्ताओं के लिए, 300 डॉलर का मुफ़्त ट्रायल प्रोग्राम उपलब्ध है.
एनवायरमेंट का सेटअप
सर्च बार के दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell को चालू करें.

सेवा के एपीआई चालू करने के लिए, नीचे दिए गए निर्देश को कॉपी करके टर्मिनल में चिपकाएं और 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 Job, AlloyDB डेटाबेस से कनेक्ट हो पाएगा.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
Private services access को कॉन्फ़िगर करना
Private services access को, आपके VPC नेटवर्क और Google Cloud के उस VPC नेटवर्क के बीच VPC पियरिंग कनेक्शन के तौर पर लागू किया जाता है जिसमें आपके AlloyDB संसाधन (क्लस्टर और इंस्टेंस) मौजूद होते हैं. निजी कनेक्शन की मदद से, आपके VPC नेटवर्क में मौजूद संसाधन, AlloyDB के उन संसाधनों के साथ कम्यूनिकेट कर पाते हैं जिन्हें वे सिर्फ़ इंटरनल आईपी पतों का इस्तेमाल करके ऐक्सेस करते हैं. AlloyDB के संसाधनों तक पहुंचने के लिए, आपके VPC नेटवर्क में मौजूद संसाधनों को इंटरनेट ऐक्सेस या बाहरी आईपी पतों की ज़रूरत नहीं होती.
AlloyDB के साथ एक ही Cloud प्रोजेक्ट में मौजूद VPC नेटवर्क में, Private services access का कॉन्फ़िगरेशन बनाने के लिए, आपको ये दो कार्रवाइयां करनी होंगी:
VPC नेटवर्क में, आईपी पतों की एक रेंज असाइन करें.
gcloud compute addresses create google-managed-services-default \
--global \
--purpose=VPC_PEERING \
--prefix-length=20 \
--network=projects/$PROJECT_ID/global/networks/default
VPC नेटवर्क और Google Cloud के उस VPC नेटवर्क के बीच एक निजी कनेक्शन बनाएं जिसमें आपके AlloyDB संसाधन मौजूद होते हैं. इस चरण में, करीब दो मिनट लगते हैं.
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 Console में, बनाए गए क्लस्टर की समीक्षा करें.

डेटाबेस के आईपी पते को किसी वैरिएबल में सेव करें.""
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 Job के कोड को एक्सप्लोर करना
AlloyDB डेटाबेस बनाने के कई तरीके हैं. इनमें से एक तरीका यह है कि Compute Engine VM बनाया जाए, psql क्लाइंट इंस्टॉल किया जाए, और फिर डेटाबेस बनाने के लिए इंस्टेंस से कनेक्ट किया जाए. इस तरीके के बारे में ज़्यादा जानने के लिए, यहां पढ़ें.
इस लैब में, Cloud Run Job का इस्तेमाल करके, नया AlloyDB डेटाबेस बनाया जाएगा.
यहां दी गई फ़ाइलों की समीक्षा करें:
- 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 Job को डिप्लॉय करना
Serverless VPC access को कॉन्फ़िगर करें. इससे Cloud Run Job, इंटरनल/निजी आईपी का इस्तेमाल करके, AlloyDB क्लस्टर के साथ कम्यूनिकेट कर पाएगा. इस चरण में, करीब दो मिनट लगते हैं.
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 Job को डिप्लॉय करें.
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 Job, AlloyDB के निजी आईपी पते तक पहुंचने के लिए, VPC कनेक्टर का इस्तेमाल करेगा.
Cloud Console में, बनाई गई जॉब की समीक्षा करें.

test डेटाबेस बनाने के लिए, Cloud Run Job को एक्ज़ीक्यूट करें.
gcloud beta run jobs execute db-job --region $REGION
Cloud Console में, Cloud Run Job के लॉग की समीक्षा करें.

6. बधाई हो!
बधाई हो, आपने यह कोडलैब पूरा कर लिया है!
हमने इन विषयों के बारे में जानकारी दी है:
- AlloyDB क्लस्टर और इंस्टेंस बनाने का तरीका
- Cloud Run Job का इस्तेमाल करके, AlloyDB डेटाबेस बनाने का तरीका
व्यवस्थित करें
इस ट्यूटोरियल में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क लिए जाने से बचने के लिए, या तो उन संसाधनों वाले प्रोजेक्ट को मिटाएं या प्रोजेक्ट को बनाए रखें और उसमें मौजूद संसाधनों को मिटाएं.
प्रोजेक्ट मिटाना
बिलिंग से बचने का सबसे आसान तरीका है कि ट्यूटोरियल के लिए बनाया गया प्रोजेक्ट मिटा दिया जाए.