क्लाउड रन को फायरबेस होस्टिंग के साथ पेयर करें ताकि आपकी डायनेमिक कंटेंट जेनरेट और सर्व हो सके या माइक्रोसर्विसेज के रूप में आरईएसटी एपीआई का निर्माण हो सके।
का उपयोग करते हुए बादल भागो , आप एक कंटेनर छवि में पैक एक आवेदन तैनात कर सकते हैं। फिर, फायरबेस होस्टिंग का उपयोग करके, आप अपने कंटेनरीकृत ऐप को ट्रिगर करने के लिए HTTPS अनुरोधों को निर्देशित कर सकते हैं।
- बादल रन का समर्थन करता है कई भाषाओं आपको लचीलापन अपनी पसंद के प्रोग्रामिंग भाषा और ढांचे का उपयोग करने के लिए दे रही है, (जाओ, Node.js, अजगर और जावा सहित)।
- बादल रन स्वचालित रूप से और क्षैतिज मापता है , प्राप्त अनुरोधों को हैंडल करने के लिए अपने कंटेनर छवि फिर नीचे मापता है जब मांग कम हो जाती है।
- आप केवल भुगतान सीपीयू, स्मृति के लिए, और अनुरोध को संभालने के दौरान भस्म नेटवर्किंग।
उदाहरण के उपयोग के मामलों और बादल रन के लिए नमूने Firebase होस्टिंग के साथ एकीकृत के लिए, हमारी यात्रा के serverless सिंहावलोकन ।
यह मार्गदर्शिका आपको दिखाती है कि कैसे:
- एक साधारण हैलो वर्ल्ड एप्लिकेशन लिखें
- किसी ऐप को कंटेनरीकृत करें और उसे कंटेनर रजिस्ट्री में अपलोड करें
- कंटेनर छवि को क्लाउड रन पर तैनात करें
- आपके कंटेनरीकृत ऐप के लिए सीधे होस्टिंग अनुरोध
ध्यान दें कि गतिशील सामग्री, आप वैकल्पिक धुन अपने कर सकते हैं की सेवा के प्रदर्शन में सुधार करने के लिए कैश सेटिंग्स ।
शुरू करने से पहले
बादल रन का उपयोग करने से पहले, आप एक क्लाउड बिलिंग खाते को स्थापित बादल भागो एपीआई को सक्षम करने, और स्थापित करने सहित कुछ प्रारंभिक कार्य, पूरा करने की आवश्यकता gcloud
कमांड लाइन टूल।
अपने प्रोजेक्ट के लिए बिलिंग सेट करें
बादल भागो प्रदान करता है मुक्त उपयोग कोटा , लेकिन आप अभी भी एक होना आवश्यक है क्लाउड बिलिंग खाता उपयोग करने के लिए अपने Firebase परियोजना से जुड़े या बादल भागो को परखें।
एपीआई सक्षम करें और एसडीके स्थापित करें
Google API कंसोल में क्लाउड रन API सक्षम करें:
खोलें बादल भागो API पृष्ठ को Google API कंसोल में।
संकेत मिलने पर, अपना Firebase प्रोजेक्ट चुनें.
बादल भागो API पृष्ठ पर सक्षम करें क्लिक करें।
स्थापित करें और प्रारंभ बादल एसडीके।
जाँच करें कि
gcloud
उपकरण सही परियोजना के लिए कॉन्फ़िगर किया गया है:gcloud config list
चरण 1: नमूना आवेदन लिखें
ध्यान दें कि बादल रन का समर्थन करता है कई अन्य भाषाओं निम्न नमूना में दिखाया भाषाओं के अलावा।
जाना
एक नए नामक निर्देशिका बनाएं
helloworld-go
, इसे में तो परिवर्तन निर्देशिका:mkdir helloworld-go
cd helloworld-go
एक नई फ़ाइल नामित बनाएं
helloworld.go
, उसके बाद निम्न कोड जोड़ें:इस कोड को एक बुनियादी वेब सर्वर है कि बंदरगाह पर सुनता है द्वारा परिभाषित बनाता
PORT
वातावरण चर।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
Node.js
नामक एक नया निर्देशिका बनाने
helloworld-nodejs
इसे में, तो परिवर्तन निर्देशिका:mkdir helloworld-nodejs
cd helloworld-nodejs
एक बनाएं
package.json
निम्नलिखित सामग्री के साथ फ़ाइल:एक नई फ़ाइल नामित बनाएं
index.js
, उसके बाद निम्न कोड जोड़ें:इस कोड को एक बुनियादी वेब सर्वर है कि बंदरगाह पर सुनता है द्वारा परिभाषित बनाता
PORT
वातावरण चर।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
अजगर
एक नए नामक निर्देशिका बनाएं
helloworld-python
, इसे में तो परिवर्तन निर्देशिका:mkdir helloworld-python
cd helloworld-python
एक नए नाम की फ़ाइल बनाएं
app.py
, उसके बाद निम्न कोड जोड़ें:इस कोड को एक बुनियादी वेब सर्वर है कि बंदरगाह पर सुनता है द्वारा परिभाषित बनाता
PORT
वातावरण चर।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
जावा
स्थापित करें जावा SE 8 या बाद में JDK और कर्ल ।
ध्यान दें कि हमें केवल अगले चरण में नया वेब प्रोजेक्ट बनाने के लिए ऐसा करने की आवश्यकता है। Dockerfile, जिसे बाद में वर्णित किया गया है, सभी निर्भरताओं को कंटेनर में लोड करेगा।
कंसोल से, कर्ल का उपयोग करके एक नया खाली वेब प्रोजेक्ट बनाएं और फिर कमांड को अनज़िप करें:
curl https://start.spring.io/starter.zip \ -d dependencies=web \ -d name=helloworld \ -d artifactId=helloworld \ -o helloworld.zip
unzip helloworld.zip
यह एक स्प्रिंगबूट प्रोजेक्ट बनाता है।
अद्यतन
SpringBootApplication
में वर्गsrc/main/java/com/example/helloworld/HelloworldApplication.java
एक जोड़कर@RestController
को संभालने के लिए/
मानचित्रण और यह भी एक जोड़ने@Value
क्षेत्र प्रदान करने के लिएTARGET
वातावरण चर:इस कोड को एक बुनियादी वेब सर्वर है कि बंदरगाह पर सुनता है द्वारा परिभाषित बनाता
PORT
वातावरण चर।
आपका ऐप तैयार है और कंटेनरीकृत होने और कंटेनर रजिस्ट्री पर अपलोड करने के लिए तैयार है।
चरण 2: containerize एक ऐप्लिकेशन और कंटेनर रजिस्ट्री पर अपलोड करें
एक नए नाम की फ़ाइल बनाने के द्वारा नमूना एप्लिकेशन containerize
Dockerfile
स्रोत फ़ाइलों के रूप में ही निर्देशिका में। निम्न सामग्री को अपनी फ़ाइल में कॉपी करें।जाना
Node.js
अजगर
जावा
अपने 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
को अप्रमाणित आमंत्रण की अनुमति देते हैं
- एक क्षेत्र का चयन करें (उदाहरण के लिए
तैनाती के पूरा होने के लिए कुछ क्षण प्रतीक्षा करें। सफल होने पर, कमांड लाइन सेवा URL प्रदर्शित करती है। उदाहरण के लिए:
https://helloworld- RANDOM_HASH -us-central1.a.run.appवेब ब्राउज़र में सेवा URL खोलकर अपने परिनियोजित कंटेनर पर जाएँ।
अगले कदम के लिए कैसे एक Firebase होस्टिंग URL से इस कंटेनरीकृत ऐप्स को एक्सेस करने, ताकि वह आपकी Firebase की मेजबानी की साइट के लिए गतिशील सामग्री उत्पन्न कर सकते हैं के माध्यम से चलता है।
चरण 4: अपने कंटेनरीकृत एप्लिकेशन के लिए सीधी होस्टिंग अनुरोध
साथ फिर से लिखने के नियम , आप अनुरोध है कि एक ही गंतव्य के लिए विशिष्ट पैटर्न से मेल भेज सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि पेज से सभी अनुरोधों को निर्देशित करने के लिए /helloworld
अपने होस्टिंग साइट पर स्टार्टअप को गति प्रदान करने और अपने से चलाने के लिए helloworld
कंटेनर उदाहरण।
सुनिश्चित करें कि:
आपके पास Firebase CLI के नवीनतम संस्करण ।
आपने फायरबेस होस्टिंग को इनिशियलाइज़ किया है।
CLI स्थापित करने और होस्टिंग आरंभ के बारे में विस्तृत जानकारी के लिए, देखना होस्टिंग के लिए आरंभ गाइड ।
अपने खोलें
firebase.json
फ़ाइल ।निम्नलिखित जोड़े
rewrite
के तहत विन्यासhosting
अनुभाग:"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 के माध्यम से उपलब्ध है:
आपके Firebase उप डोमेन:
PROJECT_ID .web.app/
औरPROJECT_ID .firebaseapp.com/
किसी भी कनेक्ट किए कस्टम डोमेन :
CUSTOM_DOMAIN /
के लिए होस्टिंग विन्यास पृष्ठ पर जाएं पुनर्लेखन नियमों के बारे में अधिक जानकारी के । तुम भी बारे में जान सकते प्रतिक्रियाओं की प्राथमिकता क्रम विभिन्न होस्टिंग विन्यास के लिए।
स्थानीय स्तर पर परीक्षण करें
विकास के दौरान, आप स्थानीय रूप से अपनी कंटेनर छवि को चला सकते हैं और उसका परीक्षण कर सकते हैं। विस्तृत निर्देशों के लिए, पर जाएँ बादल भागो प्रलेखन ।
अगला कदम
कैशिंग सेट अप एक वैश्विक CDN पर अपने गतिशील सामग्री की।
सहभागिता का उपयोग अन्य Firebase सेवाओं के साथ Firebase नियंत्रक SDK ।
बादल भागो बारे में और जानें, सहित कैसे विस्तृत गाइड , की स्थापना के प्रबंधन, और कंटेनरों विन्यस्त करने के लिए।
की समीक्षा करें मूल्य निर्धारण और कोटा और सीमा बादल रन के लिए।