1. खास जानकारी
इस लैब में, आपको Cloud Run जॉब के साथ AlloyDB का डेटाबेस बनाना चाहिए. आपको निजी सेवाओं के ऐक्सेस और सर्वरलेस (VPC) के बिना ऐक्सेस को कॉन्फ़िगर करना होगा, ताकि निजी आईपी का इस्तेमाल करके, Cloud Run जॉब और AlloyDB डेटाबेस के बीच कनेक्टिविटी चालू की जा सके.
आपको क्या सीखने को मिलेगा
इस लैब में, आपको इन कामों को करने का तरीका पता चलेगा:
- AlloyDB क्लस्टर और इंस्टेंस सेटअप करना
- AlloyDB डेटाबेस बनाने के लिए क्लाउड रन जॉब डिप्लॉय करें
2. सेटअप और ज़रूरी शर्तें
Cloud प्रोजेक्ट का सेटअप
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, आईडी को बदला नहीं जा सकता. सेट अप के बाद इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे
PROJECT_ID
के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. इसके अलावा, खुद भी आज़माया जा सकता है और देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद इसे बदला नहीं जा सकता और प्रोजेक्ट के कुल समय तक बना रहेगा. - आपकी जानकारी के लिए, एक तीसरी वैल्यू यानी प्रोजेक्ट नंबर है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, संसाधनों को बंद करने के लिए कि आपको बिलिंग न करनी पड़े. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या पूरा प्रोजेक्ट मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
एनवायरमेंट का सेटअप
खोज बार की दाईं ओर मौजूद आइकॉन पर क्लिक करके, Cloud Shell को चालू करें.
Service 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 नेटवर्क और पहले से मौजूद Google Cloud VPC नेटवर्क के बीच, VPC पीयरिंग कनेक्शन के तौर पर लागू किया जाता है, जहां आपके AlloyDB के संसाधन (क्लस्टर और इंस्टेंस) मौजूद होते हैं. निजी कनेक्शन आपके VPC नेटवर्क में मौजूद संसाधनों को AlloyDB के उन संसाधनों से संपर्क करने की सुविधा देता है जिन्हें वे खास तौर पर इंटरनल आईपी पतों का इस्तेमाल करके ऐक्सेस करते हैं. AlloyDB के संसाधनों तक पहुंचने के लिए आपके VPC नेटवर्क के संसाधनों को इंटरनेट ऐक्सेस या बाहरी आईपी पतों की ज़रूरत नहीं है.
AlloyDB के उसी Cloud प्रोजेक्ट में मौजूद VPC नेटवर्क में निजी सेवाओं का ऐक्सेस कॉन्फ़िगरेशन बनाने के लिए, आपको दो काम करने होंगे:
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 नेटवर्क के बीच, निजी कनेक्शन बनाएं. इस चरण में ~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 - ज़रूरी डिपेंडेंसी(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. क्लाउड रन जॉब डिप्लॉय करें
सर्वर के बिना VPC ऐक्सेस करने की सुविधा कॉन्फ़िगर करें. यह क्लाउड रन जॉब को अंदरूनी/निजी आईपी का इस्तेमाल करके, 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
क्लाउड रन जॉब डिप्लॉय करें.
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 जॉब, AlloyDB के निजी आईपी पते तक पहुंचने के लिए VPC कनेक्टर का इस्तेमाल करेगा.
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 खाते पर शुल्क न लगे. इसके लिए, उस प्रोजेक्ट को मिटा दें जिसमें संसाधन शामिल हैं या प्रोजेक्ट को बनाए रखें और अलग-अलग संसाधनों को मिटाएं.
प्रोजेक्ट मिटाया जा रहा है
बिलिंग हटाने का सबसे आसान तरीका, ट्यूटोरियल के लिए बनाए गए प्रोजेक्ट को मिटाना है.