अपनी गतिशील सामग्री तैयार करने और परोसने या माइक्रोसर्विसेज के रूप में REST API बनाने के लिए क्लाउड रन को फायरबेस होस्टिंग के साथ जोड़ें।
क्लाउड रन का उपयोग करके, आप एक कंटेनर छवि में पैक किए गए एप्लिकेशन को तैनात कर सकते हैं। फिर, फायरबेस होस्टिंग का उपयोग करके, आप अपने कंटेनरीकृत ऐप को ट्रिगर करने के लिए HTTPS अनुरोधों को निर्देशित कर सकते हैं।
- क्लाउड रन कई भाषाओं (गो, नोड.जेएस, पायथन और जावा सहित) का समर्थन करता है, जिससे आपको अपनी पसंद की प्रोग्रामिंग भाषा और फ्रेमवर्क का उपयोग करने की सुविधा मिलती है।
- क्लाउड रन प्राप्त अनुरोधों को संभालने के लिए स्वचालित रूप से और क्षैतिज रूप से आपके कंटेनर छवि को स्केल करता है , फिर मांग घटने पर स्केल कम कर देता है।
- आप केवल अनुरोध प्रबंधन के दौरान उपभोग किए गए सीपीयू, मेमोरी और नेटवर्किंग के लिए भुगतान करते हैं ।
उदाहरण के लिए फायरबेस होस्टिंग के साथ एकीकृत क्लाउड रन के लिए उपयोग के मामलों और नमूनों के लिए, हमारे सर्वर रहित अवलोकन पर जाएं।
यह मार्गदर्शिका आपको दिखाती है कि कैसे करें:
- एक सरल हैलो वर्ल्ड एप्लिकेशन लिखें
- किसी ऐप को कंटेनराइज़ करें और उसे कंटेनर रजिस्ट्री पर अपलोड करें
- कंटेनर छवि को क्लाउड रन पर तैनात करें
- आपके कंटेनरीकृत ऐप पर सीधे होस्टिंग अनुरोध
ध्यान दें कि गतिशील सामग्री परोसने के प्रदर्शन को बेहतर बनाने के लिए, आप वैकल्पिक रूप से अपनी कैश सेटिंग्स को ट्यून कर सकते हैं।
शुरू करने से पहले
क्लाउड रन का उपयोग करने से पहले, आपको कुछ प्रारंभिक कार्य पूरे करने होंगे, जिसमें क्लाउड बिलिंग खाता स्थापित करना, क्लाउड रन एपीआई को सक्षम करना और gcloud
कमांड लाइन टूल इंस्टॉल करना शामिल है।
अपने प्रोजेक्ट के लिए बिलिंग सेट करें
क्लाउड रन मुफ़्त उपयोग कोटा प्रदान करता है, लेकिन क्लाउड रन का उपयोग करने या आज़माने के लिए आपके पास अभी भी आपके फायरबेस प्रोजेक्ट से जुड़ा एक क्लाउड बिलिंग खाता होना चाहिए।
एपीआई सक्षम करें और एसडीके इंस्टॉल करें
Google API कंसोल में क्लाउड रन API सक्षम करें:
Google API कंसोल में क्लाउड रन API पृष्ठ खोलें।
संकेत मिलने पर, अपना फायरबेस प्रोजेक्ट चुनें।
क्लाउड रन एपीआई पेज पर सक्षम करें पर क्लिक करें।
क्लाउड एसडीके स्थापित करें और प्रारंभ करें ।
जांचें कि
gcloud
टूल सही प्रोजेक्ट के लिए कॉन्फ़िगर किया गया है:gcloud config list
चरण 1 : नमूना आवेदन लिखें
ध्यान दें कि क्लाउड रन निम्नलिखित नमूने में दिखाई गई भाषाओं के अलावा कई अन्य भाषाओं का भी समर्थन करता है।
जाना
helloworld-go
नाम से एक नई निर्देशिका बनाएं, फिर उसमें निर्देशिका बदलें:mkdir helloworld-go
cd helloworld-go
helloworld.go
नाम से एक नई फ़ाइल बनाएं, फिर निम्नलिखित कोड जोड़ें:यह कोड एक बुनियादी वेब सर्वर बनाता है जो
PORT
पर्यावरण चर द्वारा परिभाषित पोर्ट पर सुनता है।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
नोड.जे.एस
helloworld-nodejs
नाम से एक नई निर्देशिका बनाएं, फिर उसमें निर्देशिका बदलें:mkdir helloworld-nodejs
cd helloworld-nodejs
निम्नलिखित सामग्री के साथ एक
package.json
फ़ाइल बनाएँ:index.js
नामक एक नई फ़ाइल बनाएं, फिर निम्नलिखित कोड जोड़ें:यह कोड एक बुनियादी वेब सर्वर बनाता है जो
PORT
पर्यावरण चर द्वारा परिभाषित पोर्ट पर सुनता है।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
अजगर
helloworld-python
नाम से एक नई निर्देशिका बनाएं, फिर उसमें निर्देशिका बदलें:mkdir helloworld-python
cd helloworld-python
app.py
नामक एक नई फ़ाइल बनाएं, फिर निम्न कोड जोड़ें:यह कोड एक बुनियादी वेब सर्वर बनाता है जो
PORT
पर्यावरण चर द्वारा परिभाषित पोर्ट पर सुनता है।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
जावा
Java SE 8 या बाद का JDK और CURL स्थापित करें।
ध्यान दें कि हमें केवल अगले चरण में नया वेब प्रोजेक्ट बनाने के लिए ऐसा करने की आवश्यकता है। डॉकरफ़ाइल, जिसका वर्णन बाद में किया गया है, सभी निर्भरताओं को कंटेनर में लोड करेगा।
कंसोल से, cURL का उपयोग करके एक नया खाली वेब प्रोजेक्ट बनाएं और फिर कमांड को अनज़िप करें:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
यह एक स्प्रिंगबूट प्रोजेक्ट बनाता है।
/
मैपिंग को संभालने के लिए@RestController
जोड़करsrc/main/java/com/example/helloworld/HelloworldApplication.java
मेंSpringBootApplication
क्लास को अपडेट करें औरTARGET
पर्यावरण चर प्रदान करने के लिए एक@Value
फ़ील्ड भी जोड़ें:यह कोड एक बुनियादी वेब सर्वर बनाता है जो
PORT
पर्यावरण चर द्वारा परिभाषित पोर्ट पर सुनता है।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
चरण 2 : एक ऐप को कंटेनरीकृत करें और इसे कंटेनर रजिस्ट्री पर अपलोड करें
स्रोत फ़ाइलों के समान निर्देशिका में
Dockerfile
नामक एक नई फ़ाइल बनाकर नमूना ऐप को कंटेनरीकृत करें। निम्नलिखित सामग्री को अपनी फ़ाइल में कॉपी करें।जाना
नोड.जे.एस
अजगर
जावा
अपनी Dockerfile वाली निर्देशिका से निम्नलिखित कमांड चलाकर क्लाउड बिल्ड का उपयोग करके अपनी कंटेनर छवि बनाएं:
gcloud builds submit --tag gcr.io/PROJECT_ID/helloworld
सफलता मिलने पर, आपको छवि नाम वाला एक SUCCESS संदेश दिखाई देगा
(gcr.io/ PROJECT_ID /helloworld
)।
कंटेनर छवि अब कंटेनर रजिस्ट्री में संग्रहीत है और यदि वांछित हो तो इसका पुन: उपयोग किया जा सकता है।
ध्यान दें कि, क्लाउड बिल्ड के बजाय, आप अपने कंटेनर को स्थानीय रूप से बनाने के लिए डॉकर के स्थानीय रूप से स्थापित संस्करण का उपयोग कर सकते हैं।
चरण 3 : कंटेनर छवि को क्लाउड रन पर तैनात करें
निम्नलिखित आदेश का उपयोग करके तैनात करें:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
जब नौबत आई:
- एक क्षेत्र चुनें (उदाहरण के लिए
us-central1
) - सेवा नाम की पुष्टि करें (उदाहरण के लिए,
helloworld
) - अप्रामाणिक आह्वान की अनुमति देने के लिए
Y
उत्तर दें
- एक क्षेत्र चुनें (उदाहरण के लिए
सर्वोत्तम प्रदर्शन के लिए, निम्नलिखित क्षेत्रों का उपयोग करके अपनी क्लाउड रन सेवा को होस्टिंग के साथ संयोजित करें:
-
us-west1
-
us-central1
-
us-east1
-
europe-west1
-
asia-east1
होस्टिंग से क्लाउड रन पर पुनर्लेखन निम्नलिखित क्षेत्रों में समर्थित है:
-
asia-east1
-
asia-east2
-
asia-northeast1
-
asia-northeast2
-
asia-northeast3
-
asia-south1
-
asia-south2
-
asia-southeast1
-
asia-southeast2
-
australia-southeast1
-
australia-southeast2
-
europe-central2
-
europe-north1
-
europe-southwest1
-
europe-west1
-
europe-west12
-
europe-west2
-
europe-west3
-
europe-west4
-
europe-west6
-
europe-west8
-
europe-west9
-
me-central1
-
me-west1
-
northamerica-northeast1
-
northamerica-northeast2
-
southamerica-east1
-
southamerica-west1
-
us-central1
-
us-east1
-
us-east4
-
us-east5
-
us-south1
-
us-west1
-
us-west2
-
us-west3
-
us-west4
-
us-west1
-
us-central1
-
us-east1
-
europe-west1
-
asia-east1
परिनियोजन पूरा होने के लिए कुछ क्षण प्रतीक्षा करें. सफलता पर, कमांड लाइन सेवा URL प्रदर्शित करती है। उदाहरण के लिए:
https://helloworld- RANDOM_HASH -us-central1.a.run.appवेब ब्राउज़र में सेवा URL खोलकर अपने तैनात कंटेनर पर जाएँ।
अगला चरण आपको फायरबेस होस्टिंग यूआरएल से इस कंटेनरीकृत ऐप तक पहुंचने का तरीका बताता है ताकि यह आपकी फायरबेस-होस्टेड साइट के लिए गतिशील सामग्री उत्पन्न कर सके।
चरण 4: आपके कंटेनरीकृत ऐप पर सीधे होस्टिंग अनुरोध
पुनर्लेखन नियमों के साथ, आप विशिष्ट पैटर्न से मेल खाने वाले अनुरोधों को एक ही गंतव्य पर निर्देशित कर सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि आपके helloworld
कंटेनर इंस्टेंस के स्टार्टअप और रनिंग को ट्रिगर करने के लिए आपकी होस्टिंग साइट पर पेज /helloworld
से सभी अनुरोधों को कैसे निर्देशित किया जाए।
सुनिश्चित करें कि:
आपके पास फायरबेस सीएलआई का नवीनतम संस्करण है ।
आपने फायरबेस होस्टिंग आरंभ कर दी है।
सीएलआई स्थापित करने और होस्टिंग प्रारंभ करने के बारे में विस्तृत निर्देशों के लिए, होस्टिंग के लिए प्रारंभ करें मार्गदर्शिका देखें।
अपनी
firebase.json
फ़ाइल खोलें।hosting
अनुभाग के अंतर्गत निम्नलिखितrewrite
कॉन्फ़िगरेशन जोड़ें:"hosting": { // ... // Add the "rewrites" attribute within "hosting" "rewrites": [ { "source": "/helloworld", "run": { "serviceId": "helloworld", // "service name" (from when you deployed the container image) "region": "us-central1", // optional (if omitted, default is us-central1) "pinTag": true // optional (see note below) } } ] }
अपनी प्रोजेक्ट निर्देशिका के रूट से निम्नलिखित कमांड चलाकर अपनी होस्टिंग कॉन्फ़िगरेशन को अपनी साइट पर तैनात करें:
firebase deploy --only hosting
इस सुविधा के साथ, आप यह सुनिश्चित कर सकते हैं कि आपकी साइट की गतिशील सामग्री उत्पन्न करने के लिए आपकी क्लाउड रन सेवा का संशोधन आपके स्थिर होस्टिंग संसाधनों और होस्टिंग कॉन्फ़िगरेशन के साथ समन्वयित रखा गया है। साथ ही, यह सुविधा आपको होस्टिंग पूर्वावलोकन चैनलों पर क्लाउड रन पर अपने पुनर्लेखन का पूर्वावलोकन करने की अनुमति देती है।
यदि आप
hosting.rewrites
कॉन्फ़िगरेशन केrun
ब्लॉक में"pingTag": true
जोड़ते हैं, तो आपके स्थिर होस्टिंग संसाधन और कॉन्फ़िगरेशन को तैनाती के समय क्लाउड रन सेवा के सबसे हालिया संशोधन पर पिन किया जाएगा। यदि आप अपनी साइट के किसी संस्करण को वापस लाते हैं, तो "पिन की गई" क्लाउड रन सेवा का संशोधन भी वापस ले लिया जाता है।यह सुविधा क्लाउड रन टैग पर निर्भर करती है, जिसकी सीमा प्रति सेवा 1000 टैग और प्रति क्षेत्र 2000 टैग है। इसका मतलब यह है कि सैकड़ों तैनाती के बाद, किसी साइट का सबसे पुराना संस्करण काम करना बंद कर सकता है।
आपका कंटेनर अब निम्नलिखित यूआरएल के माध्यम से पहुंच योग्य है:
आपके फायरबेस उपडोमेन:
PROJECT_ID .web.app/
औरPROJECT_ID .firebaseapp.com/
कोई भी कनेक्टेड कस्टम डोमेन :
CUSTOM_DOMAIN /
पुनर्लेखन नियमों के बारे में अधिक जानकारी के लिए होस्टिंग कॉन्फ़िगरेशन पृष्ठ पर जाएँ। आप विभिन्न होस्टिंग कॉन्फ़िगरेशन के लिए प्रतिक्रियाओं के प्राथमिकता क्रम के बारे में भी जान सकते हैं।
स्थानीय स्तर पर परीक्षण करें
विकास के दौरान, आप अपनी कंटेनर छवि को स्थानीय स्तर पर चला और परीक्षण कर सकते हैं। विस्तृत निर्देशों के लिए, क्लाउड रन दस्तावेज़ पर जाएँ।
अगले कदम
वैश्विक सीडीएन पर अपनी गतिशील सामग्री की कैशिंग सेट करें ।
फायरबेस एडमिन एसडीके का उपयोग करके अन्य फायरबेस सेवाओं के साथ बातचीत करें।
क्लाउड रन के बारे में और जानें, जिसमें कंटेनरों को स्थापित करने, प्रबंधित करने और कॉन्फ़िगर करने के लिए विस्तृत दिशानिर्देश शामिल हैं।
क्लाउड रन के लिए मूल्य निर्धारण और कोटा और सीमाओं की समीक्षा करें।