ক্লাউড ফাংশনগুলির সাথে গতিশীল সামগ্রী এবং হোস্ট মাইক্রোসার্ভিস পরিবেশন করুন৷

Pair Cloud Functions with Firebase Hosting to generate and serve your dynamic content or build REST APIs as microservices.

Cloud Functions for Firebase lets you automatically run backend code in response to HTTPS requests. Your code is stored in Google's cloud and runs in a managed environment. আপনার নিজের সার্ভারগুলি পরিচালনা এবং স্কেল করার দরকার নেই।

উদাহরণস্বরূপ Firebase Hosting সাথে সংহত Cloud Functions জন্য কেস এবং নমুনাগুলি ব্যবহার করুন, আমাদের সার্ভারলেস ওভারভিউটি দেখুন।

Cloud Functions Firebase Hosting সাথে সংযুক্ত করুন

This section provides a walk-through example for connecting a function to Firebase Hosting .

মনে রাখবেন যে গতিশীল সামগ্রী পরিবেশন করার কর্মক্ষমতা উন্নত করতে, আপনি ঐচ্ছিকভাবে আপনার ক্যাশে সেটিংস টিউন করতে পারেন৷

ধাপ 1: Cloud Functions সেট আপ করুন

  1. নিশ্চিত করুন যে আপনার কাছে Firebase CLI এর সর্বশেষ সংস্করণ আছে এবং আপনি Firebase Hosting শুরু করেছেন।

    CLI ইনস্টল করা এবং Hosting শুরু করার বিষয়ে বিস্তারিত নির্দেশাবলীর জন্য, Hosting জন্য শুরু করুন গাইড দেখুন।

  2. আপনি Cloud Functions সেট আপ করেছেন তা নিশ্চিত করুন:

Step 2: Create and test an HTTPS function for your Hosting site

  1. আপনার প্রিয় সম্পাদকে /functions/index.js খুলুন।

  2. নিম্নলিখিত কোড দিয়ে ফাইলের বিষয়বস্তু প্রতিস্থাপন করুন।

    এই কোডটি একটি এইচটিটিপিএস ফাংশন তৈরি করে ( bigben নামে) যা একটি ঘড়ির মতো দিনের প্রতিটি ঘন্টার জন্য একটি BONG সহ HTTPS অনুরোধের উত্তর দেয়৷

    const functions = require('firebase-functions/v1');
    
    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 Local Emulator Suite ব্যবহার করে স্থানীয়ভাবে আপনার ফাংশনগুলি পরীক্ষা করুন।

    1. আপনার স্থানীয় প্রকল্প ডিরেক্টরিটির মূল থেকে, নিম্নলিখিত কমান্ডটি চালান:

      firebase emulators:start
    2. CLI দ্বারা প্রত্যাবর্তিত স্থানীয় URL এর মাধ্যমে ফাংশনটি অ্যাক্সেস করুন, উদাহরণস্বরূপ: http://localhost:5001/ PROJECT_ID /us-central1/bigben

HTTPS অনুরোধ সম্পর্কে আরও জানতে Cloud Functions ডকুমেন্টেশন দেখুন।

The next step walks you through how to access this HTTPS function from a Firebase Hosting URL so that it can generate dynamic content for your Firebase-hosted site.

পদক্ষেপ 3: আপনার ফাংশনে সরাসরি এইচটিটিপিএস অনুরোধ

পুনর্লিখনের নিয়মের সাহায্যে, আপনি একটি একক গন্তব্যে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে সরাসরি করতে পারেন। The following steps show you how to direct all requests from the path ../bigben on your Hosting site to execute the bigben function.

  1. আপনার firebase.json ফাইলটি খুলুন।

  2. Add the following rewrite configuration under the hosting section:

    "hosting": {
      // ...
    
      // Add the "rewrites" attribute within "hosting"
      "rewrites": [ {
        "source": "/bigben",
        "function": {
          "functionId": "bigben",
          "region": "us-central1"  // optional (see note below)
          "pinTag": true           // optional (see note below)
        }
      } ]
    }
    
  3. Confirm that your redirect works as expected by testing again with the Firebase emulators.

    1. আপনার স্থানীয় প্রকল্প ডিরেক্টরির রুট থেকে, নিম্নলিখিত কমান্ডটি চালান:

      firebase emulators:start
    2. Visit the locally hosted URL for your site as returned by the CLI (usually localhost:5000 ), but append the URL with bigben , like so: http://localhost:5000/bigben

  4. আপনার ফাংশন এবং আপনার সাইটের জন্য এর কার্যকারিতা পুনরাবৃত্তি করুন। এই পুনরাবৃত্তি পরীক্ষা করতে Firebase এমুলেটর ব্যবহার করুন।

সেরা পারফরম্যান্সের জন্য, নিম্নলিখিত অঞ্চলগুলির মধ্যে একটি বেছে নিয়ে Hosting সাথে আপনার ফাংশনগুলি কলোকেট করুন:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

পুনর্লিখনের নিয়ম সম্পর্কে আরও বিস্তারিত জানার জন্য Hosting কনফিগারেশন পৃষ্ঠায় যান। আপনি বিভিন্ন Hosting কনফিগারেশনের প্রতিক্রিয়াগুলির অগ্রাধিকার ক্রম সম্পর্কেও শিখতে পারেন।

Note that to improve the performance of serving dynamic content, you can optionally tune your cache settings .

Step 4: Deploy your function

Once your function is working as desired in the emulator, you can proceed to deploying, testing, and running it with real project resources. This is a good time to consider setting runtime options to control scaling behavior for functions running in production.

  1. আপনার স্থানীয় প্রকল্প ডিরেক্টরিটির মূল থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার ফাংশন পাশাপাশি আপনার Hosting সামগ্রী এবং কনফিগারেশন আপনার সাইটে মোতায়েন করুন:

    firebase deploy --only functions,hosting
  2. নিম্নলিখিত URLগুলিতে আপনার লাইভ সাইট এবং আপনার ফাংশন অ্যাক্সেস করুন:

    • Your Firebase subdomains:
      PROJECT_ID .web.app/bigben এবং PROJECT_ID .firebaseapp.com/bigben

    • Any connected custom domains :
      CUSTOM_DOMAIN /bigben

একটি ওয়েব ফ্রেমওয়ার্ক ব্যবহার করুন

You can use web frameworks, like Express.js , in Cloud Functions to serve your app's dynamic content and write complex web apps more easily.

Firebase Hosting এবং Cloud Functions সাথে Express.js ব্যবহার করার জন্য নিম্নলিখিত বিভাগটি একটি ওয়াক-থ্রু উদাহরণ প্রদান করে।

  1. আপনার functions ডিরেক্টরি থেকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার স্থানীয় প্রকল্পে Express.js ইনস্টল করুন:

    npm install express --save
  2. Open your /functions/index.js file, then import and initialize Express.js:

    const functions = require('firebase-functions/v1');
    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. এবং /api অধীনে JSON ফর্ম্যাটে, API হিসাবে BONG গণনা ফেরত দেওয়ার জন্য আরেকটি শেষ পয়েন্ট:

      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. একটি HTTPS ফাংশন হিসাবে Express.js অ্যাপ রপ্তানি করুন:

    exports.app = functions.https.onRequest(app);
  5. আপনার firebase.json ফাইলে, সমস্ত অনুরোধ app ফাংশনে নির্দেশ করুন। এই পুনঃলিখনটি Express.js-কে আমাদের কনফিগার করা বিভিন্ন সাবপাথ পরিবেশন করতে দেয় (এই উদাহরণে, / এবং /api )।

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

মিডলওয়্যার যোগ করুন

Continuing our example, now that you're using Express.js, you can add Express.js middleware in the typical way. For example, you can enable CORS requests on our endpoints.

  1. নিম্নলিখিত কমান্ডটি চালিয়ে cors মিডলওয়্যার ইনস্টল করুন:

    npm install --save cors
  2. আপনার /functions/index.js ফাইলটি খুলুন, তারপর আপনার Express.js অ্যাপে cors যোগ করুন, যেমন:

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

এক্সপ্রেস অ্যাপস এবং মিডলওয়্যার মডিউলগুলির সাথে ফায়ারবেস ব্যবহার সম্পর্কে আরও জানতে Cloud Functions ডকুমেন্টেশনে যান৷

পরবর্তী পদক্ষেপ