अपनी गतिशील सामग्री उत्पन्न करने और उसकी सेवा करने या माइक्रोसर्विसेज के रूप में REST API बनाने के लिए Firebase होस्टिंग के साथ पेयर क्लाउड रन करें।
क्लाउड रन का उपयोग करके, आप एक कंटेनर छवि में पैक किए गए एप्लिकेशन को परिनियोजित कर सकते हैं। फिर, फायरबेस होस्टिंग का उपयोग करके, आप अपने कंटेनरीकृत ऐप को ट्रिगर करने के लिए HTTPS अनुरोधों को निर्देशित कर सकते हैं।
- क्लाउड रन कई भाषाओं (गो, नोड.जेएस, पायथन और जावा सहित) का समर्थन करता है, जिससे आपको अपनी पसंद की प्रोग्रामिंग भाषा और रूपरेखा का उपयोग करने की सुविधा मिलती है।
- प्राप्त अनुरोधों को संभालने के लिए क्लाउड रन स्वचालित रूप से और क्षैतिज रूप से आपकी कंटेनर छवि को मापता है , फिर मांग घटने पर इसे छोटा करता है।
- आप केवल सीपीयू, मेमोरी, और नेटवर्किंग के लिए भुगतान करते हैं जो अनुरोध प्रबंधन के दौरान उपयोग किया जाता है।
उदाहरण के लिए फायरबेस होस्टिंग के साथ एकीकृत क्लाउड रन के लिए मामलों और नमूनों का उपयोग करें, हमारे सर्वर रहित अवलोकन पर जाएं।
यह गाइड आपको दिखाता है कि कैसे:
- एक सरल हैलो वर्ल्ड एप्लिकेशन लिखें
- एक ऐप को कंटेनरीकृत करें और इसे कंटेनर रजिस्ट्री पर अपलोड करें
- क्लाउड रन के लिए कंटेनर छवि परिनियोजित करें
- आपके कंटेनरीकृत ऐप के लिए सीधे होस्टिंग अनुरोध
ध्यान दें कि गतिशील सामग्री परोसने के प्रदर्शन को बेहतर बनाने के लिए, आप वैकल्पिक रूप से अपनी कैश सेटिंग को ट्यून कर सकते हैं।
शुरू करने से पहले
क्लाउड रन का उपयोग करने से पहले, आपको क्लाउड बिलिंग खाता सेट अप करने, क्लाउड रन एपीआई को सक्षम करने और gcloud
कमांड लाइन टूल इंस्टॉल करने सहित कुछ शुरुआती कार्यों को पूरा करने की आवश्यकता है।
अपने प्रोजेक्ट के लिए बिलिंग सेट अप करें
क्लाउड रन मुफ़्त उपयोग कोटा प्रदान करता है, लेकिन क्लाउड रन का उपयोग करने या आज़माने के लिए आपके पास अभी भी आपके फायरबेस प्रोजेक्ट से जुड़ा एक क्लाउड बिलिंग खाता होना चाहिए।
एपीआई सक्षम करें और एसडीके स्थापित करें
Google APIs कंसोल में क्लाउड रन API सक्षम करें:
Google APIs कंसोल में क्लाउड रन 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
पर्यावरण चर द्वारा परिभाषित पोर्ट पर सुनता है।
आपका ऐप समाप्त हो गया है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री में अपलोड होने के लिए तैयार है।
जावा
जावा एसई 8 या बाद में जेडीके और कर्ल स्थापित करें।
ध्यान दें कि हमें केवल अगले चरण में नया वेब प्रोजेक्ट बनाने के लिए ऐसा करने की आवश्यकता है। Dockerfile, जिसे बाद में वर्णित किया गया है, सभी निर्भरताओं को कंटेनर में लोड करेगा।
कंसोल से, 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
सफल होने पर, आपको छवि नाम वाला एक सफलता संदेश दिखाई देगा
(gcr.io/ PROJECT_ID /helloworld
)।
कंटेनर छवि अब कंटेनर रजिस्ट्री में संग्रहीत है और यदि वांछित हो तो इसका पुन: उपयोग किया जा सकता है।
ध्यान दें कि क्लाउड बिल्ड के बजाय, आप अपने कंटेनर को स्थानीय रूप से बनाने के लिए डॉकर के स्थानीय रूप से स्थापित संस्करण का उपयोग कर सकते हैं।
चरण 3 : कंटेनर छवि को क्लाउड रन में परिनियोजित करें
निम्नलिखित कमांड का उपयोग करके तैनात करें:
gcloud run deploy --image gcr.io/PROJECT_ID/helloworld
जब नौबत आई:
- कोई क्षेत्र चुनें (उदाहरण के लिए
us-central1
) - सेवा के नाम की पुष्टि करें (उदाहरण के लिए,
helloworld
) - अप्रमाणित मंगलाचरण की अनुमति देने के लिए
Y
उत्तर दें
- कोई क्षेत्र चुनें (उदाहरण के लिए
परिनियोजन पूर्ण होने के लिए कुछ क्षण प्रतीक्षा करें. सफल होने पर, कमांड लाइन सेवा URL प्रदर्शित करती है। उदाहरण के लिए:
https://helloworld- RANDOM_HASH -us-central1.a.run.appवेब ब्राउज़र में सेवा URL खोलकर अपने परिनियोजित कंटेनर पर जाएँ।
अगला चरण आपको बताता है कि इस कंटेनरीकृत ऐप को फायरबेस होस्टिंग 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) } } ] }
अपनी प्रोजेक्ट निर्देशिका के रूट से निम्न कमांड चलाकर अपनी होस्टिंग कॉन्फ़िगरेशन को अपनी साइट पर तैनात करें:
firebase deploy
आपका कंटेनर अब निम्न URL द्वारा पहुंच योग्य है:
आपके फायरबेस सबडोमेन:
PROJECT_ID .web.app/
औरPROJECT_ID .firebaseapp.com/
कोई भी कनेक्टेड कस्टम डोमेन :
CUSTOM_DOMAIN /
पुनर्लेखन नियमों के बारे में अधिक जानकारी के लिए होस्टिंग कॉन्फ़िगरेशन पृष्ठ पर जाएं। आप विभिन्न होस्टिंग कॉन्फ़िगरेशन के लिए प्रतिक्रियाओं के प्राथमिकता क्रम के बारे में भी जान सकते हैं।
स्थानीय स्तर पर परीक्षण करें
विकास के दौरान, आप अपनी कंटेनर छवि को स्थानीय स्तर पर चला सकते हैं और उसका परीक्षण कर सकते हैं। विस्तृत निर्देशों के लिए, क्लाउड रन दस्तावेज़ देखें।
अगले कदम
वैश्विक सीडीएन पर अपनी गतिशील सामग्री की कैशिंग सेट अप करें ।
Firebase Admin SDK का उपयोग करके अन्य Firebase सेवाओं के साथ सहभागिता करें।
क्लाउड रन के बारे में अधिक जानें, जिसमें कंटेनरों को स्थापित करने, प्रबंधित करने और कॉन्फ़िगर करने के लिए विस्तृत कैसे-गाइड शामिल हैं।
क्लाउड रन के लिए मूल्य निर्धारण और कोटा और सीमा की समीक्षा करें।