Cloud Run की मदद से वेबसाइट को डिप्लॉय करना

1. शुरू करने से पहले

वर्चुअल मशीन (VM) इंस्टेंस, क्लस्टर, पॉड, सेवाओं वगैरह को बनाने और मैनेज करने में ज़्यादा समय लगता है. इस वजह से, वेबसाइटें चलाना मुश्किल हो सकता है. यह बड़े और कई लेवल वाले ऐप्लिकेशन के लिए ठीक है, लेकिन अगर आपको सिर्फ़ अपनी वेबसाइट को डिप्लॉय और दिखाना है, तो यह बहुत ज़्यादा ओवरहेड है.

Cloud Run, Knative के Google Cloud वर्शन की मदद से, अपनी वेबसाइट को मैनेज और डिप्लॉय किया जा सकता है. इसके लिए, आपको वीएम या Kubernetes पर आधारित डिप्लॉयमेंट के लिए ज़रूरी ओवरहेड की ज़रूरत नहीं पड़ती. यह मैनेजमेंट के लिहाज़ से आसान तरीका है. साथ ही, जब आपकी वेबसाइट पर कोई अनुरोध नहीं आता है, तब इसे शून्य तक स्केल किया जा सकता है.

इस कोडलैब में, Cloud Build की मदद से बनाई गई Docker इमेज से शुरुआत की जाती है. इसे Cloud Shell में ट्रिगर किया जाता है. इसके बाद, Cloud Shell में कमांड का इस्तेमाल करके, उस इमेज को Cloud Run पर डिप्लॉय किया जाता है.

ज़रूरी शर्तें

आपको क्या सीखने को मिलेगा

  • Cloud Build की मदद से Docker इमेज बनाने और उसे gcr.io पर अपलोड करने का तरीका
  • Cloud Run में Docker इमेज डिप्लॉय करने का तरीका
  • Cloud Run के डिप्लॉयमेंट मैनेज करने का तरीका
  • Cloud Run पर किसी ऐप्लिकेशन के लिए एंडपॉइंट सेट अप करने का तरीका

आपको क्या बनाना है

  • Docker कंटेनर में चलने वाली स्टैटिक वेबसाइट
  • इस कंटेनर का एक वर्शन, जो कंटेनर रजिस्ट्री में मौजूद है
  • आपकी स्टैटिक वेबसाइट के लिए Cloud Run डिप्लॉयमेंट

आपको किन चीज़ों की ज़रूरत होगी

  • प्रोजेक्ट बनाने के लिए, एडमिन ऐक्सेस वाला Google खाता या प्रोजेक्ट-मालिक की भूमिका वाला प्रोजेक्ट

2. एनवायरमेंट सेटअप करना

अपने हिसाब से एनवायरमेंट सेट अप करना

अगर आपके पास पहले से कोई Google खाता नहीं है, तो आपको एक खाता बनाना होगा. इसके बाद, Google Cloud Console में साइन इन करें और प्रोजेक्ट > प्रोजेक्ट बनाएं पर क्लिक करें.

53dad2cefdae71da.png

faab21976aabeb4c.png

प्रोजेक्ट आईडी को याद रखें. यह आपके प्रोजेक्ट के नाम के नीचे अपने-आप दिखता है. प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट में एक यूनीक नाम होता है. इसलिए, स्क्रीनशॉट में दिया गया नाम पहले से ही लिया जा चुका है और यह आपके लिए काम नहीं करेगा. इसे बाद में PROJECT_ID कहा जाएगा.

इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने और Cloud Run API को चालू करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

Cloud Run API को चालू करना

नेविगेशन मेन्यू ☰ > एपीआई और सेवाएं > डैशबोर्ड > एपीआई और सेवाएं चालू करें पर क्लिक करें. .

5dbb2e6e27a55fcf.png

"Cloud Run API" खोजें. इसके बाद, Cloud Run API > चालू करें पर क्लिक करें.

f1fd486174a744cf.png

इस कोडलैब को चलाने में आपको कुछ डॉलर से ज़्यादा खर्च नहीं करने पड़ेंगे. हालांकि, ज़्यादा संसाधनों का इस्तेमाल करने या उन्हें चालू रहने देने पर, खर्च ज़्यादा हो सकता है. इसके बारे में जानने के लिए, आखिर में साफ़-सफ़ाई करें देखें. ज़्यादा जानकारी के लिए, कीमत देखें.

Google Cloud के नए उपयोगकर्ताओं को 300 डॉलर का क्रेडिट मुफ़्त में मिलता है.

Cloud Shell

Google Cloud और Cloud Run को अपने लैपटॉप से रिमोट तौर पर ऑपरेट किया जा सकता है. इसके लिए, आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला कमांड-लाइन एनवायरमेंट है. इस एनवायरमेंट में, आपकी ज़रूरत के मुताबिक सभी क्लाइंट लाइब्रेरी और फ़्रेमवर्क पहले से कॉन्फ़िगर किए गए होते हैं.

इस डेबियन-आधारित वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल लोड होते हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराती है और Google Cloud में चलती है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इसका मतलब है कि इस कोडलैब के लिए, आपको सिर्फ़ एक ब्राउज़र की ज़रूरत होगी. हां, यह Chromebook पर काम करता है.

  1. Cloud Console से Cloud Shell को चालू करने के लिए, Cloud Shell चालू करें fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q पर क्लिक करें. इसमें, एनवायरमेंट को प्रोवाइड करने और उससे कनेक्ट करने में कुछ ही मिनट लगेंगे.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपने पहले ही पुष्टि कर ली है और प्रोजेक्ट पहले से ही आपके PROJECT_ID पर सेट है.

gcloud auth list

कमांड आउटपुट

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर किसी वजह से प्रोजेक्ट सेट नहीं है, तो बस यह कमांड दें:

gcloud config set project <PROJECT_ID>

क्या आपको PROJECT_ID खोजना है? देखें कि सेटअप के दौरान किस आईडी का इस्तेमाल किया गया था या Cloud Console के डैशबोर्ड में जाकर यह पता लगाएं:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell, कुछ एनवायरमेंट वैरिएबल को डिफ़ॉल्ट रूप से भी सेट करता है. आने वाले समय में कमांड चलाते समय, ये वैरिएबल आपके काम आ सकते हैं.

echo $GOOGLE_CLOUD_PROJECT

कमांड आउटपुट

<PROJECT_ID>
  1. आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट कॉन्फ़िगरेशन सेट करें.
gcloud config set compute/zone us-central1-f

आपके पास कई तरह के ज़ोन चुनने का विकल्प होता है. ज़्यादा जानकारी के लिए, इलाके और ज़ोन देखें.

3. सोर्स रिपॉज़िटरी को क्लोन करना

किसी मौजूदा वेबसाइट को डिप्लॉय करने के लिए, आपको सिर्फ़ अपनी रिपॉज़िटरी से सोर्स को क्लोन करना होगा. इससे, आपको Docker इमेज बनाने और Cloud Run पर डिप्लॉय करने पर ध्यान देने में मदद मिलेगी.

अपने Cloud Shell इंस्टेंस में रिपॉज़िटरी को क्लोन करने और सही डायरेक्ट्री पर जाने के लिए, ये कमांड चलाएं. आपको Node.js की डिपेंडेंसी भी इंस्टॉल करनी होंगी, ताकि डिप्लॉयमेंट से पहले अपने ऐप्लिकेशन की जांच की जा सके.

cd ~
git clone https://github.com/googlecodelabs/monolith-to-microservices.git
cd ~/monolith-to-microservices
./setup.sh

यह आपकी रिपॉज़िटरी को क्लोन करता है, डायरेक्ट्री में बदलाव करता है, और आपके ऐप्लिकेशन को स्थानीय तौर पर चलाने के लिए ज़रूरी डिपेंडेंसी इंस्टॉल करता है. स्क्रिप्ट को चलने में कुछ मिनट लग सकते हैं.

अपने ऐप्लिकेशन की जांच करें. वेब सर्वर शुरू करने के लिए, यह कमांड चलाएं:

cd ~/monolith-to-microservices/monolith
npm start

आउटपुट:

Monolith listening on port 8080!

अपने ऐप्लिकेशन की झलक देखने के लिए, वेब पर झलक देखें acc630712255c604.png पर क्लिक करें. इसके बाद, पोर्ट 8080 पर झलक देखें को चुनें.

5869738f0e9ec386.png

इससे एक नई विंडो खुलेगी, जहां आपको अपना फ़ैंसी स्टोर दिखेगा!

9ed25c3f0cbe62fa.png

वेबसाइट देखने के बाद, इस विंडो को बंद किया जा सकता है. वेब-सर्वर प्रोसेस को रोकने के लिए, टर्मिनल विंडो में CONTROL+C (Macintosh पर Command+C) दबाएं.

4. Cloud Build की मदद से Docker कंटेनर बनाना

अब आपकी सोर्स फ़ाइलें इस्तेमाल के लिए तैयार हैं. अब अपने ऐप्लिकेशन को Dockerize करने का समय आ गया है!

आम तौर पर, आपको दो चरणों में काम करना होगा. पहले चरण में, आपको Docker कंटेनर बनाना होगा और दूसरे चरण में, उसे किसी रजिस्ट्री में डालना होगा. इससे GKE, इमेज को खींच पाएगा. हालांकि, Cloud Build का इस्तेमाल करके Docker कंटेनर बनाने और एक ही कमांड से इमेज को कंटेनर रजिस्ट्री में डालने से, आपको आसानी होगी! Dockerfile बनाने और उसे पुश करने की मैन्युअल प्रोसेस देखने के लिए, कंटेनर रजिस्ट्री के लिए क्विकस्टार्ट देखें.

Cloud Build, डायरेक्ट्री में मौजूद फ़ाइलों को कंप्रेस करके, उन्हें Cloud Storage की बकेट में ले जाता है. इसके बाद, बिल्ड प्रोसेस, बकेट से सभी फ़ाइलें लेती है और Dockerfile का इस्तेमाल करती है. यह Docker बिल्ड प्रोसेस चलाने के लिए, उसी डायरेक्ट्री में मौजूद होता है. आपने Docker इमेज के लिए, होस्ट के तौर पर gcr.io के साथ --tag फ़्लैग तय किया है. इसलिए, बनाई गई Docker इमेज को कंटेनर रजिस्ट्री में पुश कर दिया जाएगा.

सबसे पहले, आपको यह पक्का करना होगा कि आपने Cloud Build API चालू किया हो. इसे चालू करने के लिए, यह कमांड चलाएं:

gcloud services enable cloudbuild.googleapis.com

एपीआई चालू होने के बाद, बिल्ड प्रोसेस शुरू करने के लिए Cloud Shell में यह निर्देश चलाएं:

gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 .

इस प्रोसेस में कुछ मिनट लगते हैं. हालांकि, इसके पूरा होने के बाद, टर्मिनल में ऐसा आउटपुट दिखेगा:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID                                    CREATE_TIME                DURATION  SOURCE                                                                                  IMAGES                              STATUS
1ae295d9-63cb-482c-959b-bc52e9644d53  2019-08-29T01:56:35+00:00  33S       gs://<PROJECT_ID>_cloudbuild/source/1567043793.94-abfd382011724422bf49af1558b894aa.tgz  gcr.io/<PROJECT_ID>/monolith:1.0.0  SUCCESS

अपने बिल्ड का इतिहास देखने या प्रोसेस को रीयल टाइम में देखने के लिए, Cloud Console पर जाएं. इसके बाद, नेविगेशन मेन्यू ☰ > Cloud Build > इतिहास पर क्लिक करें. यहां आपको अपने सभी पिछले बिल्ड की सूची दिखेगी. हालांकि, इसमें सिर्फ़ वह बिल्ड दिखेगा जिसे आपने बनाया है.

4c753ede203255f6.png

बिल्ड आईडी पर क्लिक करने पर, आपको उस बिल्ड की पूरी जानकारी दिखेगी. इसमें लॉग आउट भी शामिल है. इमेज के बगल में मौजूद लिंक पर क्लिक करके, बनाई गई कंटेनर इमेज देखी जा सकती है.

6e88ed1643dfe629.png

5. Cloud Run में कंटेनर को डिप्लॉय करना

अपनी वेबसाइट को कंटेनर में बदलने और उसे Container Registry में पुश करने के बाद, अब उसे Cloud Run पर डिप्लॉय करने का समय आ गया है!

Cloud Run पर डिप्लॉय करने के दो तरीके हैं:

  • Cloud Run (पूरी तरह से मैनेज किया गया), PaaS मॉडल है. इसमें कंटनेर के पूरे लाइफ़साइकल को मैनेज किया जाता है. इस कोडलैब में, आपको इसी तरीके का इस्तेमाल करना होगा.
  • Anthos के लिए Cloud Run, Cloud Run का एक वर्शन है. इसमें कंट्रोल की एक अतिरिक्त लेयर होती है. इसकी मदद से, GKE से अपने क्लस्टर और पॉड लाए जा सकते हैं. ज़्यादा जानकारी के लिए, Google Cloud पर Anthos के लिए Cloud Run सेट अप करना लेख पढ़ें.

कमांड-लाइन के उदाहरण, Cloud Shell में होंगे. इनमें उन एनवायरमेंट वैरिएबल का इस्तेमाल किया जाएगा जिन्हें आपने पहले सेट अप किया है.

कमांड लाइन

अपना ऐप्लिकेशन डिप्लॉय करने के लिए, यह कमांड चलाएं:

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed 

आपसे यह बताने के लिए कहा जाएगा कि आपको किस इलाके में विज्ञापन दिखाने हैं. अपने नज़दीकी इलाके को चुनें. इसके बाद, सेवा के लिए सुझाया गया डिफ़ॉल्ट नाम (मोनोलिथ) स्वीकार करें.

d52d9419c5166674.png

जांच के लिए, ऐप्लिकेशन को ऐसे अनुरोध करने की अनुमति दें जिनकी पुष्टि नहीं की गई है. प्रॉम्प्ट मिलने पर, y डालें.

3a57b32f133dad61.png

डिप्लॉयमेंट की पुष्टि करना

डिप्लॉयमेंट सही तरीके से हुआ है या नहीं, यह पुष्टि करने के लिए यह कमांड चलाएं. Pod status को Running में बदलने में कुछ समय लग सकता है:

gcloud run services list

[1] Cloud Run (पूरी तरह से मैनेज किया जाता है) को चुनें.

आउटपुट:

SERVICE   REGION    URL  LAST DEPLOYED BY          LAST DEPLOYED AT
✔  monolith  us-east1 <your url>  <your email>  2019-09-16T21:07:38.267Z

आउटपुट में आपको कई चीज़ें दिखती हैं. आपको डिप्लॉयमेंट के साथ-साथ, उसे डिप्लॉय करने वाले उपयोगकर्ता (आपका ईमेल पता) और ऐप्लिकेशन को ऐक्सेस करने के लिए इस्तेमाल किया जा सकने वाला यूआरएल भी दिखेगा. ऐसा लगता है कि सब कुछ सही तरीके से सेट अप हो गया है!

अपने वेब ब्राउज़र में, सेवाओं की सूची में दिया गया यूआरएल खोलें. आपको वही वेबसाइट दिखेगी जिसकी आपने स्थानीय तौर पर झलक देखी थी.

6. कम उपयोगकर्ताओं के साथ नया रिविज़न बनाना

अब, अपने ऐप्लिकेशन को फिर से डिप्लॉय करें. हालांकि, इस बार किसी एक पैरामीटर में बदलाव करें.

डिफ़ॉल्ट रूप से, Cloud Run ऐप्लिकेशन में एक साथ कई अनुरोधों को पूरा करने की वैल्यू 80 होगी. इसका मतलब है कि हर कंटेनर इंस्टेंस एक बार में 80 अनुरोधों को पूरा करेगा. यह सेवा के तौर पर फ़ंक्शन (FaaS) मॉडल से काफ़ी अलग है. इसमें एक इंस्टेंस, एक बार में एक अनुरोध को हैंडल करता है.

एक ही कंटेनर इमेज को फिर से डिप्लॉय करें. इसके लिए, एक साथ चलने वाली प्रोसेस की वैल्यू 1 रखें. ऐसा सिर्फ़ टेस्टिंग के लिए करें. इसके बाद, देखें कि क्या होता है.

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed --concurrency 1

बाकी सवालों के जवाब पहले की तरह ही दें. निर्देश पूरा होने के बाद, नतीजा देखने के लिए Cloud Console देखें.

जानकारी देखने के लिए, Cloud Run डैशबोर्ड में मोनोलिथ सेवा पर क्लिक करें.

7d1eed2e4728a4f2.png

बदलाव टैब पर क्लिक करें. आपको दो बदलाव दिखेंगे. monolith-00002 पर क्लिक करें और जानकारी की समीक्षा करें. आपको एक साथ कई क्वेरी चलाने की वैल्यू 1 के तौर पर दिखेगी.

217185c0eccc87dd.png]

4ad481b8bcd0343d.png

हालांकि, टेस्टिंग के लिए यह कॉन्फ़िगरेशन काफ़ी है, लेकिन ज़्यादातर प्रोडक्शन स्थितियों में आपके पास एक साथ कई अनुरोधों को पूरा करने वाले कंटेनर होंगे.

अब, फिर से डिप्लॉय किए बिना, ओरिजनल कंसिस्टेंसी को वापस लाएं. एक साथ कई क्वेरी चलाने की सीमा की वैल्यू को डिफ़ॉल्ट रूप से 80 या 0 पर सेट किया जा सकता है. इससे, एक साथ कई क्वेरी चलाने से जुड़ी सभी पाबंदियां हट जाएंगी और इसे डिफ़ॉल्ट तौर पर ज़्यादा से ज़्यादा वैल्यू पर सेट कर दिया जाएगा. फ़िलहाल, यह वैल्यू 80 है.

मौजूदा रिविज़न को अपडेट करने के लिए, Cloud Shell में यह कमांड चलाएं:

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --platform managed --concurrency 80

ध्यान दें कि एक और बदलाव किया गया है, ट्रैफ़िक को रीडायरेक्ट किया गया है, और एक साथ काम करने वाले उपयोगकर्ताओं की संख्या फिर से 80 हो गई है.

7. वेबसाइट में बदलाव करना

आपकी मार्केटिंग टीम ने आपसे अपनी कंपनी की वेबसाइट का होम पेज बदलने के लिए कहा है. उनका मानना है कि इसमें कंपनी के बारे में ज़्यादा जानकारी होनी चाहिए. साथ ही, यह भी बताया जाना चाहिए कि कंपनी कौनसे प्रॉडक्ट बेचती है. इस सेक्शन में, आपको मार्केटिंग टीम को खुश करने के लिए होम पेज पर कुछ टेक्स्ट जोड़ना होगा!

ऐसा लगता है कि आपके किसी डेवलपर ने फ़ाइल के नाम index.js.new के साथ पहले ही बदलाव कर दिए हैं. उस फ़ाइल को index.js में कॉपी करें. इसके बाद, आपके बदलाव दिखने लगेंगे. ज़रूरी बदलाव करने के लिए, निर्देशों का पालन करें.

नीचे दिए गए निर्देशों का पालन करें. इसके बाद, अपडेट की गई फ़ाइल को सही फ़ाइल नाम पर कॉपी करें और बदलावों की पुष्टि करने के लिए उसका कॉन्टेंट प्रिंट करें:

cd ~/monolith-to-microservices/react-app/src/pages/Home
mv index.js.new index.js
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js

इससे मिलने वाला कोड कुछ ऐसा दिखेगा:

/*
Copyright 2019 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Paper from "@material-ui/core/Paper";
import Typography from "@material-ui/core/Typography";
const useStyles = makeStyles(theme => ({
  root: {
    flexGrow: 1
  },
  paper: {
    width: "800px",
    margin: "0 auto",
    padding: theme.spacing(3, 2)
  }
}));
export default function Home() {
  const classes = useStyles();
  return (
    <div className={classes.root}>
      <Paper className={classes.paper}>
        <Typography variant="h5">
          Fancy Fashion &amp; Style Online
        </Typography>
        <br />
        <Typography variant="body1">
          Tired of mainstream fashion ideas, popular trends and societal norms?
          This line of lifestyle products will help you catch up with the Fancy trend and express your personal style.
          Start shopping Fancy items now!
        </Typography>
      </Paper>
    </div>
  );
}

आपने React कॉम्पोनेंट अपडेट कर दिए हैं, लेकिन स्टैटिक फ़ाइलें जनरेट करने के लिए, आपको React ऐप्लिकेशन बनाना होगा. React ऐप्लिकेशन बनाने और उसे मॉनोलिथ की सार्वजनिक डायरेक्ट्री में कॉपी करने के लिए, यह कमांड चलाएं:

cd ~/monolith-to-microservices/react-app
npm run build:monolith

कोड अपडेट हो जाने के बाद, आपको अपना Docker कंटेनर फिर से बनाना होगा और उसे Container Registry में पब्लिश करना होगा. इसके लिए, पहले की तरह ही कमांड का इस्तेमाल किया जा सकता है. हालांकि, इस बार आपको वर्शन लेबल अपडेट करना होगा!

इमेज के अपडेट किए गए वर्शन 2.0.0 के साथ नया Cloud Build ट्रिगर करने के लिए, यह कमांड चलाएं:

cd ~/monolith-to-microservices/monolith

#Feel free to test your application
npm start

gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 .

अगले सेक्शन में, आपको उस इमेज का इस्तेमाल करके, अपने ऐप्लिकेशन को बिना किसी रुकावट के अपडेट करना होगा.

8. वेबसाइट को बिना किसी डाउनटाइम के अपडेट करना

बदलाव हो चुके हैं और मार्केटिंग टीम आपके अपडेट से खुश है! अब उपयोगकर्ताओं को परेशान किए बिना, वेबसाइट को अपडेट करने का समय आ गया है.

Cloud Run, हर डिप्लॉयमेंट को नए रिविज़न के तौर पर मानता है. इसे ऑनलाइन लाया जाएगा और फिर ट्रैफ़िक को उस पर रीडायरेक्ट किया जाएगा.

अपनी वेबसाइट को अपडेट करने के लिए, अगले निर्देशों का पालन करें.

कमांड लाइन

इमेज को नए वर्शन पर अपडेट करने के लिए, कमांड लाइन से सेवा को फिर से डिप्लॉय किया जा सकता है. इसके लिए, यह कमांड इस्तेमाल करें:

gcloud run deploy --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 --platform managed

डिप्लॉयमेंट की पुष्टि करना

डिप्लॉयमेंट अपडेट की पुष्टि करने के लिए, यह कमांड चलाएं:

gcloud run services describe monolith --platform managed 

आउटपुट ऐसा दिखता है:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  annotations:
    client.knative.dev/user-image: gcr.io/my-cloudrun-codelab/monolith:2.0.0
...

आपको पता चलेगा कि आपकी सेवा अब, नए वर्शन में डिप्लॉय की गई इमेज के नए वर्शन का इस्तेमाल कर रही है.

अपने बदलावों की पुष्टि करने के लिए, अपनी Cloud Run सेवा के बाहरी यूआरएल पर फिर से जाएं और देखें कि आपके ऐप्लिकेशन का टाइटल अपडेट हो गया है.

सेवाओं की सूची देखने और आईपी पता देखने के लिए, यह कमांड चलाएं:

gcloud run services list

अब आपकी वेबसाइट पर वह टेक्स्ट दिखना चाहिए जिसे आपने होम पेज कॉम्पोनेंट में जोड़ा था!

451ca252acae6928.png

9. व्यवस्थित करें

कंटेनर रजिस्ट्री की इमेज मिटाना

# Delete the container image for version 1.0.0 of our monolith
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --quiet

# Delete the container image for version 2.0.0 of our monolith
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 --quiet

Cloud Storage से Cloud Build आर्टफ़ैक्ट मिटाना

# The following command will take all source archives from all builds and delete them from cloud storage

# Run this command to print all sources:
# gcloud builds list | awk 'NR > 1 {print $4}' 

gcloud builds list | awk 'NR > 1 {print $4}' | while read line; do gsutil rm $line; done

Cloud Run सेवा मिटाना

gcloud run services delete monolith --platform managed

10. बधाई हो

आपने Cloud Run की मदद से अपनी वेबसाइट को डिप्लॉय, स्केल, और अपडेट किया है.

ज़्यादा जानें