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



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते हैं. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_IDके तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चल जाएगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहेगा. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग की सुविधा चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को शट डाउन करें. इसके लिए, बनाए गए संसाधनों को मिटाएं या पूरे प्रोजेक्ट को मिटाएं. 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 जॉब को AlloyDB डेटाबेस से कनेक्ट करने की अनुमति मिल जाएगी.
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member="serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role="roles/alloydb.client"
निजी सेवाओं के ऐक्सेस को कॉन्फ़िगर करना
प्राइवेट सेवाओं का ऐक्सेस, आपके वीपीसी नेटवर्क और Google Cloud के उस वीपीसी नेटवर्क के बीच वीपीसी पीयरिंग कनेक्शन के तौर पर लागू किया जाता है जहां आपके AlloyDB संसाधन (क्लस्टर और इंस्टेंस) मौजूद होते हैं. प्राइवेट कनेक्शन की मदद से, आपके वीपीसी नेटवर्क में मौजूद संसाधन, AlloyDB के उन संसाधनों से कम्यूनिकेट कर सकते हैं जिन्हें वे सिर्फ़ इंटरनल आईपी पतों का इस्तेमाल करके ऐक्सेस करते हैं. आपके वीपीसी नेटवर्क में मौजूद संसाधनों को AlloyDB संसाधनों तक पहुंचने के लिए, इंटरनेट ऐक्सेस या बाहरी आईपी पतों की ज़रूरत नहीं होती.
AlloyDB के साथ एक ही क्लाउड प्रोजेक्ट में मौजूद 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 के वीपीसी नेटवर्क के बीच एक प्राइवेट कनेक्शन बनाएं. इस चरण में ~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 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 जॉब का कोड एक्सप्लोर करना
AlloyDB डेटाबेस बनाने के कई तरीके हैं. पहला तरीका यह है कि Compute Engine वीएम बनाया जाए, psql क्लाइंट इंस्टॉल किया जाए, और फिर डेटाबेस बनाने के लिए इंस्टेंस से कनेक्ट किया जाए. इस तरीके के बारे में ज़्यादा जानने के लिए, यहां जाएं.
इस लैब में, Cloud Run जॉब का इस्तेमाल करके, एक नया AlloyDB डेटाबेस बनाया जाएगा.
यहां दी गई फ़ाइलों की समीक्षा करें:
- Dockerfile - installs required dependencies(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 जॉब डिप्लॉय करना
सर्वर के बिना वीपीसी ऐक्सेस करने की सुविधा को कॉन्फ़िगर करें. इससे Cloud Run जॉब, इंटरनल/प्राइवेट आईपी का इस्तेमाल करके AlloyDB क्लस्टर से कम्यूनिकेट कर पाता है. इस चरण में ~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 Job, AlloyDB के प्राइवेट आईपी पते तक पहुंचने के लिए वीपीसी कनेक्टर का इस्तेमाल करेगा.
Cloud Console में जाकर, बनाए गए जॉब की समीक्षा करें.

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

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