क्लाउड फ़ंक्शंस के साथ गतिशील सामग्री परोसें और माइक्रोसर्विसेज होस्ट करें

अपनी गतिशील सामग्री उत्पन्न करने और सेवा देने या माइक्रोसर्विसेज के रूप में REST API बनाने के लिए Firebase होस्टिंग के साथ क्लाउड फ़ंक्शंस को जोड़ें।

Firebase के लिए बादल कार्य आप स्वचालित रूप से HTTPS अनुरोध के जवाब में बैकएंड कोड चलाने देता है। आपका कोड Google के क्लाउड में संगृहीत है और एक प्रबंधित परिवेश में चलता है। अपने स्वयं के सर्वर को प्रबंधित और स्केल करने की कोई आवश्यकता नहीं है।

उदाहरण के उपयोग के मामलों और Firebase होस्टिंग के साथ एकीकृत बादल कार्य के लिए नमूने के लिए, हमारी यात्रा के serverless सिंहावलोकन

क्लाउड फ़ंक्शंस को फायरबेस होस्टिंग से कनेक्ट करें

यह अनुभाग किसी फ़ंक्शन को Firebase होस्टिंग से कनेक्ट करने के लिए एक वॉक-थ्रू उदाहरण प्रदान करता है।

ध्यान दें कि गतिशील सामग्री, आप वैकल्पिक धुन अपने कर सकते हैं की सेवा के प्रदर्शन में सुधार करने के लिए कैश सेटिंग्स

चरण 1: सेट करें बादल कार्य

  1. सुनिश्चित करें कि आपके पास फायरबेस सीएलआई का नवीनतम संस्करण है और आपने फायरबेस होस्टिंग को इनिशियलाइज़ किया है।

    CLI स्थापित करने और होस्टिंग आरंभ के बारे में विस्तृत जानकारी के लिए, देखना होस्टिंग के लिए आरंभ गाइड

  2. सुनिश्चित करें कि आपने क्लाउड फ़ंक्शंस सेट अप किया है:

    • आप पहले से ही बादल कार्य की स्थापना की है, तो आप लिए आगे बढ़ सकते चरण 2: बनाएँ और एक HTTPS समारोह का परीक्षण

    • आप बादल कार्य सेट अप नहीं किया है, तो:

      1. अपनी प्रोजेक्ट निर्देशिका के मूल से निम्न आदेश चलाकर क्लाउड फ़ंक्शंस प्रारंभ करें:

        firebase init functions
      2. संकेत दिए जाने पर, JavaScript चुनें (यह वॉक-थ्रू उदाहरण JS का उपयोग करता है)।

      3. चेक आप एक है कि functions (Firebase आदेश तुम सिर्फ भाग गया द्वारा बनाई गई) अपने स्थानीय परियोजना निर्देशिका में निर्देशिका। यह functions निर्देशिका जहां बादल कार्य के लिए कोड रहती है।

चरण 2: बनाएँ और अपने होस्टिंग साइट के लिए एक HTTPS समारोह का परीक्षण

  1. ओपन /functions/index.js अपने पसंदीदा संपादक में।

  2. फ़ाइल की सामग्री को निम्न कोड से बदलें।

    इस कोड को एक HTTPS समारोह (नामित बनाता bigben ) है कि एक साथ HTTPS अनुरोध का जवाब BONG दिन के प्रत्येक घंटे के लिए, बस एक घड़ी की तरह।

    const functions = require('firebase-functions');
    
    exports.bigben = functions.https.onRequest((req, res) => {
      const hours = (new Date().getHours() % 12) + 1  // London is UTC + 1hr;
      res.status(200).send(`<!doctype html>
        <head>
          <title>Time</title>
        </head>
        <body>
          ${'BONG '.repeat(hours)}
        </body>
      </html>`);
    });
    
  3. अपने कार्यों को स्थानीय रूप से उपयोग करते हुए टेस्ट में Firebase स्थानीय एम्यूलेटर सुइट

    1. अपनी स्थानीय परियोजना निर्देशिका की जड़ से, निम्न आदेश चलाएँ:

      firebase emulators:start
    2. प्रवेश समारोह स्थानीय CLI द्वारा लौटाए गए URL, उदाहरण के माध्यम से: http://localhost:5001/ PROJECT_ID /us-central1/bigben

पर जाएं बादल कार्य प्रलेखन HTTPS अनुरोध के बारे में अधिक जानने के लिए।

अगले कदम के लिए कैसे एक Firebase होस्टिंग URL से इस HTTPS समारोह का उपयोग करने की है ताकि वह आपकी Firebase की मेजबानी की साइट के लिए गतिशील सामग्री उत्पन्न कर सकते हैं के माध्यम से चलता है।

चरण 3: प्रत्यक्ष अपने कार्य करने के लिए अनुरोध HTTPS

साथ फिर से लिखने के नियम , आप अनुरोध है कि एक ही गंतव्य के लिए विशिष्ट पैटर्न से मेल भेज सकते हैं। निम्न चरणों को बताएंगे कि कैसे पथ से सभी अनुरोधों को निर्देशित करने के लिए ../bigben अपने होस्टिंग साइट पर अमल करने पर bigben कार्य करते हैं।

  1. अपने खोलें firebase.json फ़ाइल

  2. निम्नलिखित जोड़े rewrite के तहत विन्यास hosting अनुभाग:

    "hosting": {
      // ...
    
      // Add the "rewrites" attribute within "hosting"
      "rewrites": [ {
        "source": "/bigben",
        "function": "bigben"
      } ]
    }
    
  3. पुष्टि करें कि आपका रीडायरेक्ट फ़ायरबेस एमुलेटर के साथ फिर से परीक्षण करके अपेक्षित रूप से काम करता है।

    1. अपनी स्थानीय परियोजना निर्देशिका की जड़ से, निम्न आदेश चलाएँ:

      firebase emulators:start
    2. के रूप में CLI द्वारा वापस अपनी साइट के लिए स्थानीय स्तर पर की मेजबानी की URL पर जाएं (आमतौर पर localhost:5000 ), लेकिन साथ यूआरएल संलग्न bigben , जैसे इतना: http://localhost:5000/bigben

  4. अपनी साइट के लिए अपने कार्य और इसकी कार्यक्षमता पर पुनरावृति करें। इन पुनरावृत्तियों का परीक्षण करने के लिए फायरबेस अनुकरणकर्ताओं का प्रयोग करें।

के लिए होस्टिंग विन्यास पृष्ठ पर जाएं पुनर्लेखन नियमों के बारे में अधिक जानकारी के । तुम भी बारे में जान सकते प्रतिक्रियाओं की प्राथमिकता क्रम विभिन्न होस्टिंग विन्यास के लिए।

ध्यान दें कि गतिशील सामग्री, आप वैकल्पिक धुन अपने कर सकते हैं की सेवा के प्रदर्शन में सुधार करने के लिए कैश सेटिंग्स

चरण 4: अपने समारोह तैनात

एक बार आपके समारोह के रूप में एमुलेटर में वांछित काम कर रहा है आप, तैनाती का परीक्षण, और वास्तविक परियोजना संसाधनों के साथ इसे चलाने के लिए आगे बढ़ सकते हैं। यह एक अच्छा समय के लिए क्रम सेटिंग विकल्पों पर विचार करना है नियंत्रण स्केलिंग व्यवहार उत्पादन में चल रहे कार्यों के लिए।

  1. अपनी स्थानीय परियोजना निर्देशिका के मूल से निम्न आदेश चलाकर अपने कार्य के साथ-साथ अपनी होस्टिंग सामग्री को परिनियोजित करें और अपनी साइट पर कॉन्फ़िगर करें:

    firebase deploy --only functions,hosting
  2. निम्नलिखित URL पर अपनी लाइव साइट और अपने कार्य को एक्सेस करें:

    • आपके Firebase उप डोमेन:
      PROJECT_ID .web.app/bigben और PROJECT_ID .firebaseapp.com/bigben

    • किसी भी कनेक्ट किए कस्टम डोमेन :
      CUSTOM_DOMAIN /bigben

एक वेब ढांचे का प्रयोग करें

आप वेब चौखटे का उपयोग कर सकते की तरह, Express.js बादल कार्य में, अपने ऐप के गतिशील सामग्री की सेवा और जटिल वेब क्षुधा और अधिक आसानी से लिखने के लिए।

निम्न अनुभाग Firebase होस्टिंग और क्लाउड फ़ंक्शंस के साथ Express.js का उपयोग करने के लिए एक वॉक-थ्रू उदाहरण प्रदान करता है।

  1. अपने से निम्न आदेश चलाकर अपने स्थानीय परियोजना में Express.js स्थापित functions निर्देशिका:

    npm install express --save
  2. अपने खोलें /functions/index.js फ़ाइल है, तो आयात और प्रारंभ Express.js:

    const functions = require('firebase-functions');
    const express = require('express');
    const app = express();
    
  3. निम्नलिखित दो समापन बिंदु जोड़ें:

    1. पर हमारी वेबसाइट के सूचकांक में सेवा करने के पहले अंतिम बिंदु जोड़े /

      app.get('/', (req, res) => {
        const date = new Date();
        const hours = (date.getHours() % 12) + 1;  // London is UTC + 1hr;
        res.send(`
          <!doctype html>
          <head>
            <title>Time</title>
            <link rel="stylesheet" href="/style.css">
            <script src="/script.js"></script>
          </head>
          <body>
            <p>In London, the clock strikes:
              <span id="bongs">${'BONG '.repeat(hours)}</span></p>
            <button onClick="refresh(this)">Refresh</button>
          </body>
        </html>`);
      });
      
    2. और एक और अंत बिंदु पर लौटने के लिए BONG एक API के रूप में गिनती, JSON प्रारूप में, के अंतर्गत /api :

      app.get('/api', (req, res) => {
        const date = new Date();
        const hours = (date.getHours() % 12) + 1;  // London is UTC + 1hr;
        res.json({bongs: 'BONG '.repeat(hours)});
      });
      
  4. Express.js ऐप को HTTPS फ़ंक्शन के रूप में निर्यात करें:

    exports.app = functions.https.onRequest(app);
    
  5. अपने में firebase.json फ़ाइल, करने के लिए सभी अनुरोधों को निर्देशित app कार्य करते हैं। यह फिर से लिखने Express.js विभिन्न सब-पाथ है कि हम के लिए कॉन्फ़िगर (इस उदाहरण में, सेवा करने के लिए अनुमति देता है / और /api )।

    {
     "hosting": {
       // ...
    
       // Add the "rewrites" attribute within "hosting"
       "rewrites": [ {
         "source": "**",
         "function": "app"
       } ]
     }
    }
    

मिडलवेयर जोड़ें

हमारे उदाहरण जारी रखते हुए, अब है कि आप Express.js उपयोग कर रहे हैं, तो आप जोड़ सकते हैं Express.js मिडलवेयर ठेठ तरीके से। उदाहरण के लिए, आप सक्षम कर सकते हैं CORS हमारे अंतिम बिंदुओं पर अनुरोध।

  1. स्थापित cors निम्न आदेश चलाकर मिडलवेयर:

    npm install --save cors
  2. अपने खोलें /functions/index.js फ़ाइल है, तो जोड़ने cors तो की तरह, अपने Express.js अनुप्रयोग के लिए:

    const cors = require('cors')({origin: true});
    app.use(cors);
    

पर जाएं बादल कार्य प्रलेखन एक्सप्रेस ऐप्स और मिडलवेयर मॉड्यूल के साथ Firebase उपयोग के बारे में अधिक जानने के लिए।

अगला कदम