1. परिचय
Google API के लिए Private Service Connect (PSC), Google Cloud की नेटवर्किंग सुविधा है. इसकी मदद से उपयोगकर्ता, वीपीसी में मौजूद प्राइवेट आईपी ग्लोबल एंडपॉइंट के ज़रिए प्राइवेट ऐक्सेस को कॉन्फ़िगर कर सकते हैं. जो उपयोगकर्ता, वीपीएन या इंटरकनेक्ट के ज़रिए Google Cloud से कनेक्ट किए गए हाइब्रिड एनवायरमेंट में कोड या क्लाइंट साइड ऐप्लिकेशन चला रहे हैं उनके लिए, PSC का इस्तेमाल उस प्राइवेट हाइब्रिड कनेक्शन पर Google API को ऐक्सेस करने के लिए किया जाता है.
Google API के लिए पीएससी, कई अलग-अलग डोमेन को हल कर सकता है. इनकी पूरी सूची यहां देखी जा सकती है. ज़्यादातर Google API, <API>.googleapis.com डोमेन का इस्तेमाल करते हैं. इस डोमेन के साथ-साथ, PSC उपयोगकर्ताओं को googleapis.com का एक ऐसा वर्शन भी उपलब्ध कराता है जो <API>-<PSC-ENDPOINT-NAME>.**p.**googleapis.com है. इस डोमेन का इस्तेमाल करके, उपयोगकर्ता ऐप्लिकेशन को कॉन्फ़िगर कर सकते हैं, ताकि वे खास PSC एंडपॉइंट का इस्तेमाल कर सकें. सबसे ज़्यादा इस्तेमाल किए जाने वाले मामले में, उपयोगकर्ताओं को यह चुनने की अनुमति मिलती है कि कौनसे ऐप्लिकेशन, हाइब्रिड कनेक्शन पर Google API ट्रैफ़िक को रूट करने के लिए PSC एंडपॉइंट का इस्तेमाल करें. साथ ही, अन्य ऐप्लिकेशन को सार्वजनिक एपीआई एंडपॉइंट पर ट्रैफ़िक को रूट करने की अनुमति मिलती है.
Gemini, Google Cloud के Vertex AI प्रॉडक्ट सुइट के तहत आता है. साथ ही, यह Google API की उस सूची में शामिल है जिसे Google API के लिए पीएससी की मदद से हल किया जा सकता है.
इस कोडलैब में, आपको एक सिम्युलेटेड हाइब्रिड एनवायरमेंट बनाना होगा. इसमें, आपको Workbench इंस्टेंस को ऑन-प्रेम होस्ट करना होगा. साथ ही, Gemini के Python कोड को चलाना होगा. यह कोड, HA वीपीएन के ज़रिए Gemini API को निजी तौर पर ऐक्सेस करता है. यह Google API के PSC एंडपॉइंट से कनेक्ट होता है.
आपको क्या सीखने को मिलेगा
- एनसीसी हब बनाएं.
- एनसीसी हब में वीपीसी स्पोक कॉन्फ़िगर करें.
- Cloud HA VPN बनाएं.
- एनसीसी हब में हाइब्रिड स्पोक कॉन्फ़िगर करना.
- Google APIs के एंडपॉइंट के लिए पीएससी बनाएं.
- HA-VPN पर कस्टम रूट कॉन्फ़िगर करें.
- डीएनएस पियरिंग ज़ोन कॉन्फ़िगर करें.
- Vertex Workbench इंस्टेंस को कॉन्फ़िगर करना
- Google APIs API एंडपॉइंट के लिए पीएससी का इस्तेमाल करने के लिए, Gemini Python कोड को कॉन्फ़िगर करें.
आपको इन चीज़ों की ज़रूरत होगी
- "मालिक" या "एडिटर" की पूरी अनुमतियों वाला Google Cloud प्रोजेक्ट.
2. टोपोलॉजी कोडलैब
इस कोडलैब के लिए, हाइब्रिड एनवायरमेंट को सिम्युलेट करने के लिए Google Cloud का इस्तेमाल किया जाएगा. इस कोडलैब में, Google Cloud से जुड़े कुछ ऐसे चरण होंगे जो कंपनी की इमारत में मौजूद सिस्टम से कॉन्फ़िगर किए जाने पर अलग होंगे. इन चरणों के बारे में बताया जाएगा.
आपको एक ऐसा एनसीसी हब बनाना होगा जिसमें राउटिंग-वीपीसी, वीपीसी स्पोक के तौर पर काम करेगा. उस वीपीसी में, ऑन-प्रेम वीपीसी के लिए HA-VPN कॉन्फ़िगर किया जाएगा. यह ऑन-प्रेम एनवायरमेंट की तरह काम करेगा. HA-VPN को NCC हब में हाइब्रिड स्पोक के तौर पर कॉन्फ़िगर किया जाएगा. ऑन-प्रिमाइसेस वीपीसी में, आपको एक सबनेट बनाना होगा. इसमें Workbench इंस्टेंस को होस्ट किया जाएगा. आपको एक Cloud NAT भी बनाना होगा, ताकि Workbench इंस्टेंस पर पैकेज डाउनलोड किए जा सकें.
आखिर में, आपको ऑन-प्रेम वीपीसी के लिए एक डीएनएस पियरिंग ज़ोन बनाना होगा, ताकि वह p.googleapis.com के लिए Service Directory Private zone का इस्तेमाल कर सके. यह ज़ोन, Google API के लिए पीएससी अपने-आप बनाता है.
3. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें. इसके बाद, नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर
PROJECT_ID
के तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ पढ़ें.
- इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा समय नहीं लगेगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त में आज़माने के प्रोग्राम के लिए ज़रूरी शर्तें पूरी करते हैं.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:
इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:
इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.
4. शुरू करने से पहलेअवधि: 2:00
एपीआई चालू करें
Cloud Shell में, पक्का करें कि आपका प्रोजेक्ट सही तरीके से कॉन्फ़िगर किया गया हो और एनवायरमेंट वैरिएबल सेट किए गए हों.
Cloud Shell से
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
प्रोजेक्ट में सभी ज़रूरी Google API चालू करें.
Cloud Shell से
gcloud services enable compute.googleapis.com gcloud services enable networkconnectivity.googleapis.com gcloud services enable dns.googleapis.com gcloud services enable notebooks.googleapis.com gcloud services enable servicedirectory.googleapis.com gcloud services enable aiplatform.googleapis.com
5. वीपीसी और सबनेट बनानाअवधि: 5:00
नेटवर्क बनाना
Cloud Shell से
gcloud compute networks create routing-vpc \ --subnet-mode=custom
Cloud Shell से
gcloud compute networks create onprem-vpc \ --subnet-mode=custom gcloud compute networks subnets create onprem-$region-subnet \ --network=onprem-vpc \ --range=10.0.0.0/24 \ --region=$region --enable-private-ip-google-access
क्लाउड राऊटर और क्लाउड एनएटी बनाना
एक Cloud Router बनाएं, जिसका इस्तेमाल routing-vpc में HA VPN के साथ किया जाएगा.
Cloud Shell से
gcloud compute routers create routing-$region-cr \ --network=routing-vpc \ --region=$region \ --asn=64512
एक Cloud Router बनाएं, जिसका इस्तेमाल onprem-vpc में HA VPN के साथ किया जाएगा.
Cloud Shell से
gcloud compute routers create onprem-$region-cr \ --network=onprem-vpc \ --region=$region \ --asn=64513
एक Cloud Router बनाएं, जिसका इस्तेमाल onprem-vpc में Cloud NAT के साथ किया जाएगा.
Cloud Shell से
gcloud compute routers create onprem-$region-cr-4nat \ --network=onprem-vpc \ --region=$region
onprem-vpc में मौजूद Cloud NAT का इस्तेमाल, Vertex AI Workbench इंस्टेंस में पैकेज डाउनलोड करने के लिए किया जाएगा. इसे बाद के चरण में कॉन्फ़िगर किया जाएगा.
Cloud Shell से
gcloud compute routers nats create onprem-$region-nat \ --router=onprem-$region-cr-4nat \ --region=$region \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips
6. Cloud HA-VPN बनानाDuration: 7:00
वीपीएन गेटवे बनाएं.
Cloud Shell से
gcloud compute vpn-gateways create routing-gateway \ --network=routing-vpc \ --region=$region \ --stack-type=IPV4_ONLY
Cloud Shell से
gcloud compute vpn-gateways create onprem-gateway \ --network=onprem-vpc \ --region=$region \ --stack-type=IPV4_ONLY
रूटिंग-वीपीसी से वीपीएन टनल बनाएं.
Cloud Shell से
gcloud compute vpn-tunnels create routing-to-onprem-tunnel0 \ --peer-gcp-gateway=onprem-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=routing-$region-cr \ --vpn-gateway=routing-gateway \ --interface=0 gcloud compute vpn-tunnels create routing-to-onprem-tunnel1 \ --peer-gcp-gateway=onprem-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=routing-$region-cr \ --vpn-gateway=routing-gateway \ --interface=1
onprem-vpc से वीपीएन टनल बनाएं.
Cloud Shell से
gcloud compute vpn-tunnels create onprem-to-routing-tunnel0 \ --peer-gcp-gateway=routing-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=onprem-$region-cr \ --vpn-gateway=onprem-gateway \ --interface=0 gcloud compute vpn-tunnels create onprem-to-routing-tunnel1 \ --peer-gcp-gateway=routing-gateway \ --region=$region \ --ike-version=2 \ --shared-secret=mysecret \ --router=onprem-$region-cr \ --vpn-gateway=onprem-gateway \ --interface=1
routing-vpc से शुरू होने वाली दो टनल के लिए, BGP सेशन सेट अप करें.
Cloud Shell से
gcloud compute routers add-interface routing-$region-cr \ --interface-name=routing-interface0 \ --ip-address=169.254.0.1 \ --mask-length=30 \ --vpn-tunnel=routing-to-onprem-tunnel0 \ --region=$region gcloud compute routers add-bgp-peer routing-$region-cr \ --peer-name=routingtoonprem-bgp0 \ --interface=routing-interface0 \ --peer-ip-address=169.254.0.2 \ --peer-asn=64513 \ --region=$region gcloud compute routers add-interface routing-$region-cr \ --interface-name=routing-interface1 \ --ip-address=169.254.1.1 \ --mask-length=30 \ --vpn-tunnel=routing-to-onprem-tunnel1 \ --region=$region gcloud compute routers add-bgp-peer routing-$region-cr \ --peer-name=routingtoonprem-bgp1 \ --interface=routing-interface1 \ --peer-ip-address=169.254.1.2 \ --peer-asn=64513 \ --region=$region
onprem-vpc से शुरू होने वाले दो टनल के लिए, BGP सेशन सेट अप करें.
Cloud Shell से
gcloud compute routers add-interface onprem-$region-cr \ --interface-name=onprem-interface0 \ --ip-address=169.254.0.2 \ --mask-length=30 \ --vpn-tunnel=onprem-to-routing-tunnel0 \ --region=$region gcloud compute routers add-bgp-peer onprem-$region-cr \ --peer-name=onpremtorouting-bgp0 \ --interface=onprem-interface0 \ --peer-ip-address=169.254.0.1 \ --peer-asn=64512 \ --region=$region gcloud compute routers add-interface onprem-$region-cr \ --interface-name=onprem-interface1 \ --ip-address=169.254.1.2 \ --mask-length=30 \ --vpn-tunnel=onprem-to-routing-tunnel1 \ --region=$region gcloud compute routers add-bgp-peer onprem-$region-cr \ --peer-name=onpremtorouting-bgp1 \ --interface=onprem-interface1 \ --peer-ip-address=169.254.1.1 \ --peer-asn=64512 \ --region=$region
कंसोल में, नेटवर्क कनेक्टिविटी > वीपीएन पेज पर जाएं. साथ ही, पक्का करें कि आपके HA-VPN टनल और बीजीपी सेशन सही तरीके से कॉन्फ़िगर किए गए हों.
7. NCC हब और स्पोक कॉन्फ़िगर करनाDuration:10:00
NCC Hub बनाना
Cloud Shell से
gcloud network-connectivity hubs create ncc-hub \ --project="$project" \ --preset-topology="mesh"
एनसीसी स्पोक बनाना
एनसीसी gcloud के लिए ज़रूरी है कि सभी स्पोक, पूरे पाथ के नामों या यूआरआई के साथ कॉन्फ़िगर किए गए हों.
Cloud Shell से
gcloud compute networks describe routing-vpc
इस निर्देश के लिए, राउटिंग-वीपीसी का पूरा पाथ (यूआरआई) नोट करें.
आउटपुट का उदाहरण
autoCreateSubnetworks: false creationTimestamp: '2025-08-20T11:13:42.233-07:00' id: 'xxx' kind: compute#network name: routing-vpc networkFirewallPolicyEnforcementOrder: AFTER_CLASSIC_FIREWALL routingConfig: bgpBestPathSelectionMode: LEGACY routingMode: REGIONAL selfLink: https://www.googleapis.com/compute/v1/projects/$project/global/networks/routing-vpc selfLinkWithId: https://www.googleapis.com/compute/v1/projects/$project/global/networks/355666541188722361 x_gcloud_bgp_routing_mode: REGIONAL x_gcloud_subnet_mode: CUSTOM
रूटिंग वीपीसी स्पोक कॉन्फ़िगर करना
Cloud Shell से
gcloud network-connectivity spokes linked-vpc-network create routing-vpc \ --hub=ncc-hub \ --vpc-network=projects/$project/global/networks/routing-vpc \ --global
Cloud Shell से
gcloud compute vpn-tunnels describe routing-to-onprem-tunnel0 --region=$region gcloud compute vpn-tunnels describe routing-to-onprem-tunnel1 --region=$region
रूटिंग-vpc से शुरू होने वाली वीपीएन टनल के पूरे पाथ (यूआरआई) नोट करें.
आउटपुट का उदाहरण
creationTimestamp: '2025-08-20T11:33:37.494-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel0 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.54.166 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel0 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 0 creationTimestamp: '2025-08-20T11:33:41.829-07:00' description: '' detailedStatus: Tunnel is up and running. id: 'xxx' ikeVersion: 2 kind: compute#vpnTunnel labelFingerprint: xxx localTrafficSelector: - 0.0.0.0/0 name: routing-to-onprem-tunnel1 peerGcpGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/onprem-gateway peerIp: 34.153.246.117 region: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1 remoteTrafficSelector: - 0.0.0.0/0 router: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/routers/routing-us-central1-cr selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnTunnels/routing-to-onprem-tunnel1 sharedSecret: '*************' sharedSecretHash: xxx status: ESTABLISHED vpnGateway: https://www.googleapis.com/compute/v1/projects/$project/regions/us-central1/vpnGateways/routing-gateway vpnGatewayInterface: 1
Cloud Shell से
gcloud network-connectivity spokes linked-vpn-tunnels create $region-vpn-spoke \ --hub=ncc-hub \ --vpn-tunnels=projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel0,projects/$project/regions/$region/vpnTunnels/routing-to-onprem-tunnel1 \ --region=$region
आगे बढ़ने से पहले, पक्का करें कि आपके सभी स्पोक सही तरीके से कॉन्फ़िगर किए गए हों.
Cloud Shell से
gcloud network-connectivity hubs list-spokes ncc-hub
आउटपुट का उदाहरण
NAME: routing-vpc GROUP: default PROJECT: $project LOCATION: global TYPE: VPC_NETWORK STATE: ACTIVE STATE REASON: ETAG: 2 NAME: us-central1-vpn-spoke GROUP: default PROJECT: $project LOCATION: us-central1 TYPE: VPN_TUNNEL STATE: ACTIVE STATE REASON: ETAG:
8. Google API के लिए Private Service Connect सेट अप करनाअवधि: 5:00
Google APIs के एंडपॉइंट के लिए पीएससी, ग्लोबल आईपी पतों से बनाए जाते हैं. ये पते, किसी क्षेत्रीय वीपीसी सबनेट में नहीं होते हैं. ग्लोबल आईपी पते को खास तौर पर PRIVATE_SERVICE_CONNECT के लिए रिज़र्व किया जाना चाहिए.
Cloud Shell से
gcloud compute addresses create psc-ip \ --global \ --purpose=PRIVATE_SERVICE_CONNECT \ --addresses=10.100.100.0 \ --network=routing-vpc
Cloud Shell से
gcloud compute forwarding-rules create psc4googep \ --global \ --network=routing-vpc \ --address=psc-ip \ --target-google-apis-bundle=all-apis \ --service-directory-registration=projects/$project/locations/$region
Cloud Shell से
gcloud compute routers update routing-$region-cr \ --project=$project \ --region=$region \ --advertisement-mode custom \ --set-advertisement-groups=ALL_SUBNETS \ --set-advertisement-ranges=10.100.100.0/32
Cloud Shell से
gcloud dns managed-zones create peeringzone \ --description="dns peer onprem to routing" \ --dns-name=p.googleapis.com \ --networks=onprem-vpc \ --target-network=routing-vpc \ --target-project=$project \ --visibility=private
9. Vertex Workbench इंस्टेंस सेट अप करनाDuration: 5:00
Workbench इंस्टेंस की पहचान के लिए इस्तेमाल किया जाने वाला सेवा खाता बनाएं.
Cloud Shell से
gcloud iam service-accounts create workbench-sa \ --display-name="workbench-sa"
अपने सेवा खाते का पूरा नाम नोट करें और उसे aiplatform.admin की अनुमति दें, ताकि वह Vertex AI/Gemini को कॉल कर सके.
Cloud Shell से
gcloud iam service-accounts list
आउटपुट का उदाहरण
DISPLAY NAME: Compute Engine default service account EMAIL: xxx-compute@developer.gserviceaccount.com DISABLED: False DISPLAY NAME: workbench-sa EMAIL: workbench-sa@$project.iam.gserviceaccount.com DISABLED: False
पक्का करें कि आपने <your-project-id> की जगह अपना असल प्रोजेक्ट आईडी डाला हो. ज़रूरी कोटेशन की वजह से, हम यहां $project वैरिएबल का इस्तेमाल नहीं कर सकते.
Cloud Shell से
gcloud projects add-iam-policy-binding $project --member='serviceAccount:workbench-sa@<your-project-id>.iam.gserviceaccount.com' --role='roles/aiplatform.admin' --condition=None
Cloud Shell से
gcloud workbench instances create workbench-$region --vm-image-project=cloud-notebooks-managed --vm-image-family=workbench-instances --location=$region-a --network=projects/$project/global/networks/onprem-vpc --subnet=projects/$project/regions/$region/subnetworks/onprem-$region-subnet --subnet-region=$region --disable-public-ip --service-account-email=workbench-sa@$project.iam.gserviceaccount.com
gcloud कमांड के चलने के दौरान, Workbench इंस्टेंस को चालू होने में ज़्यादा समय लग सकता है.
10. Gemini Code Assist को आज़माएँDuration: 7:00
यूज़र इंटरफ़ेस (यूआई) में, "JupyterLab खोलें" पर क्लिक करें.
JupyterLab में, नई Python 3 नोटबुक खोलें.
नोटबुक में यहां दिया गया कोड चलाएं. पक्का करें कि आपने कोड को अपडेट करके, उसमें अपने प्रोजेक्ट और क्षेत्र की जानकारी शामिल की हो.
JupyterLab Notebook से
pip install --upgrade google-genai
नोटबुक कर्नल को रीस्टार्ट करें.
एपीआई एंडपॉइंट नोट करें. यहां हम API एंडपॉइंट <YOUR_REGION>-aiplatform.googleapis.com का इस्तेमाल कर रहे हैं. यह Vertex AI के लिए स्टैंडर्ड API एंडपॉइंट है.
JupyterLab Notebook से
PROJECT_ID="YOUR_PROJECT_ID" # Google Cloud Project ID LOCATION_ID="YOUR_REGION" # Enter Vertex AI Gemini region such a s us-central1 API_ENDPOINT="https://<YOUR_REGION>-aiplatform.googleapis.com" # API Endpoint MODEL_ID="gemini-2.0-flash" # Gemini Model ID from google import genai from google.genai.types import ( GenerateContentConfig, HarmBlockThreshold, HarmCategory, Part, SafetySetting, )
JupyterLab Notebook से
from google import genai client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT}) prompt = "what weighs more, 1kg of feathers or 1kg of stones" safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), ] response = client.models.generate_content( model=MODEL_ID, contents=prompt, config=GenerateContentConfig( safety_settings=safety_settings, ), ) # Response will be `None` if it is blocked. print(response.text)
रिस्पॉन्स का उदाहरण
This is a classic trick question! They both weigh the same: 1 kilogram. The difference is in the volume they occupy and the density of the materials.
उस एपीआई का नाम नोट करें जिसका इस्तेमाल आपने कोड को चलाने के लिए किया था. YOUR_REGION-aiplatform.googleapis.com, Vertex AI के लिए डिफ़ॉल्ट एपीआई का नाम है. हमें एपीआई का नाम बदलना होगा और कोड को फिर से चलाना होगा. हम यह पक्का कर सकते हैं कि कोड, पीएससी एंडपॉइंट का इस्तेमाल कर रहा है. इसके लिए, हमें वर्कबेंच इंस्टेंस पर टर्मिनल में टीसीपीडंप चलाना होगा.
टर्मिनल में TCPdump चलाना
Workbench पर टर्मिनल खोलने के लिए, फ़ाइल > नया > टर्मिनल पर क्लिक करें.
अगर आपको टर्मिनल में टेक्स्ट आउटपुट देखने में समस्याएं आ रही हैं, तो आपको टर्मिनल थीम अपडेट करनी होगी. इसके लिए, सेटिंग > टर्मिनल थीम > लाइट या डार्क पर जाएं.
टर्मिनल से
sudo tcpdump host 10.100.100.0
Gemini कोड अपडेट करना
नोटबुक पर वापस जाएं, एपीआई एंडपॉइंट अपडेट करें, और कोड को फिर से चलाएं. ध्यान दें कि हमने एपीआई एंडपॉइंट को <YOUR_REGION>-aiplatform**-psc4googep.p**.googleapis.com में बदल दिया है. यह पीएससी के लिए खास तौर पर बनाए गए एपीआई फ़ॉर्मैट <service>-<endpointname>.p.googleapis.com के मुताबिक है.
JupyterLab Notebook से
API_ENDPOINT="https://<YOUR_REGION>-aiplatform-psc4googep.p.googleapis.com" # API Endpoint
JupyterLab Notebook से
from google import genai from google.genai.types import ( GenerateContentConfig, HarmBlockThreshold, HarmCategory, Part, SafetySetting, )
JupyterLab Notebook से
from google import genai client= genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION_ID, http_options={'base_url': API_ENDPOINT}) prompt = "what weighs more, 1kg of feathers or 1kg of stones" safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_LOW_AND_ABOVE, ), ] response = client.models.generate_content( model=MODEL_ID, contents=prompt, config=GenerateContentConfig( safety_settings=safety_settings, ), ) # Response will be `None` if it is blocked. print(response.text)
रिस्पॉन्स का उदाहरण
They weigh the same. 1 kg is 1 kg, regardless of what it's made of.
TCPdump की जांच करना
टर्मिनल पर वापस जाएं और PSC एंडपॉइंट (10.100.100.0) को किए गए कॉल देखें. TCPdump बंद करें (control+c)
आउटपुट का उदाहरण
listening on ens4, link-type EN10MB (Ethernet), snapshot length 262144 bytes 19:12:01.473886 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [S], seq 3367930834, win 65320, options [mss 1420,sackOK,TS val 2933602967 ecr 0,nop,wscale 7], length 0 19:12:01.476561 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [S.], seq 1863301110, ack 3367930835, win 65535, options [mss 1366,sackOK,TS val 3004118895 ecr 2933602967,nop,wscale 8], length 0 19:12:01.476602 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 1, win 511, options [nop,nop,TS val 2933602969 ecr 3004118895], length 0 19:12:01.477283 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1:1573, ack 1, win 511, options [nop,nop,TS val 2933602970 ecr 3004118895], length 1572 19:12:01.478836 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [.], ack 1573, win 1045, options [nop,nop,TS val 3004118898 ecr 2933602970], length 0 19:12:01.480181 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 1:6041, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 6040 19:12:01.480183 IP 10.100.100.0.https > workbench-us-central1.us-central1-a.c.xxx.internal.41886: Flags [P.], seq 6041:8378, ack 1573, win 1045, options [nop,nop,TS val 3004118899 ecr 2933602970], length 2337 19:12:01.480215 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 6041, win 485, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.480225 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [.], ack 8378, win 473, options [nop,nop,TS val 2933602973 ecr 3004118899], length 0 19:12:01.482580 IP workbench-us-central1.us-central1-a.c.xxx.internal.41886 > 10.100.100.0.https: Flags [P.], seq 1573:1653, ack 8378, win 501, options [nop,nop,TS val 2933602975 ecr 3004118899], length 80
सफल!
11. क्लीनअप करने का तरीका
JupyterLab नोटबुक को बंद करें और Cloud Shell पर वापस जाएं. पक्का करें कि Cloud Shell का टाइम आउट न हुआ हो. अगर ऐसा है, तो अपने वैरिएबल रीसेट करें.
Cloud Shell से
gcloud config list project gcloud config set project <project-id> export project=$(gcloud config get-value project) export region=us-central1 export zone=$region-a echo $project echo $region echo $zone
सभी संसाधन मिटाएं.
Cloud Shell से
gcloud workbench instances delete workbench-$region --location=$zone -q gcloud iam service-accounts delete workbench-sa@$project.iam.gserviceaccount.com -q gcloud dns managed-zones delete peeringzone -q gcloud compute forwarding-rules delete psc4googep --global -q gcloud compute addresses delete psc-ip --global -q gcloud network-connectivity spokes delete $region-vpn-spoke --region=$region -q gcloud network-connectivity spokes delete routing-vpc --global -q gcloud network-connectivity hubs delete ncc-hub -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete onprem-to-routing-tunnel0 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel1 --region=$region --project=$project -q gcloud compute vpn-tunnels delete routing-to-onprem-tunnel0 --region=$region --project=$project -q gcloud compute vpn-gateways delete onprem-gateway --region=$region --project=$project -q gcloud compute vpn-gateways delete routing-gateway --region=$region --project=$project -q gcloud compute routers nats delete onprem-$region-nat --router=onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr-4nat --region=$region -q gcloud compute routers delete onprem-$region-cr --region=$region -q gcloud compute routers delete routing-$region-cr --region=$region -q gcloud compute networks subnets delete onprem-$region-subnet --region=$region -q gcloud compute networks delete onprem-vpc -q gcloud compute networks delete routing-vpc -q
12. बधाई हो!
कोडलैब पूरा करने के लिए बधाई.
हमने क्या-क्या बताया
- एनसीसी हब बनाएं.
- एनसीसी हब में वीपीसी स्पोक कॉन्फ़िगर करें.
- Cloud HA VPN बनाएं.
- एनसीसी हब में हाइब्रिड स्पोक कॉन्फ़िगर करना.
- Google APIs के एंडपॉइंट के लिए पीएससी बनाएं.
- HA-VPN पर कस्टम रूट कॉन्फ़िगर करें.
- डीएनएस पियरिंग ज़ोन कॉन्फ़िगर करें.
- Vertex Workbench इंस्टेंस को कॉन्फ़िगर करना
- Google APIs API एंडपॉइंट के लिए पीएससी का इस्तेमाल करने के लिए, Gemini Python कोड को कॉन्फ़िगर करें.