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

আপনার গতিশীল সামগ্রী তৈরি এবং পরিবেশন করতে বা মাইক্রোসার্ভিস হিসাবে REST API তৈরি করতে Firebase Hosting সাথে Cloud Functions যুক্ত করুন৷

Cloud Functions for Firebase আপনাকে HTTPS অনুরোধের জবাবে স্বয়ংক্রিয়ভাবে ব্যাকএন্ড কোড চালাতে দেয়। আপনার কোড Google এর ক্লাউডে সংরক্ষণ করা হয় এবং একটি পরিচালিত পরিবেশে চলে। আপনার নিজস্ব সার্ভার পরিচালনা এবং স্কেল করার কোন প্রয়োজন নেই।

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

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

এই বিভাগটি Firebase Hosting সাথে একটি ফাংশন সংযোগ করার জন্য একটি ওয়াক-থ্রু উদাহরণ প্রদান করে।

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

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

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

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

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

    • আপনি যদি ইতিমধ্যেই Cloud Functions সেট আপ করে থাকেন, আপনি ধাপ 2-এ যেতে পারেন: একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

    • আপনি যদি Cloud Functions সেট আপ না করে থাকেন:

      1. আপনার প্রকল্প ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে Cloud Functions শুরু করুন:

        firebase init functions
      2. অনুরোধ করা হলে, JavaScript নির্বাচন করুন (এই ওয়াক-থ্রু উদাহরণ JS ব্যবহার করে)।

      3. আপনার স্থানীয় প্রকল্প ডিরেক্টরিতে আপনার একটি functions ডিরেক্টরি আছে কিনা পরীক্ষা করুন (আপনি এইমাত্র চালানো ফায়ারবেস কমান্ড দ্বারা তৈরি)। এই functions ডিরেক্টরি যেখানে Cloud Functions কোড থাকে।

ধাপ 2: আপনার Hosting সাইটের জন্য একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

  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 ডকুমেন্টেশন দেখুন।

পরবর্তী ধাপে আপনাকে একটি Firebase Hosting ইউআরএল থেকে এই HTTPS ফাংশনটি কীভাবে অ্যাক্সেস করা যায় তার মাধ্যমে নিয়ে যায় যাতে এটি আপনার Firebase-হোস্ট করা সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।

ধাপ 3: আপনার ফাংশনে সরাসরি HTTPS অনুরোধ

পুনর্লিখনের নিয়মের সাহায্যে, আপনি একটি একক গন্তব্যে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে সরাসরি করতে পারেন। নিম্নলিখিত ধাপগুলি আপনাকে দেখায় কিভাবে bigben ফাংশন চালানোর জন্য আপনার Hosting সাইটে ../bigben পাথ থেকে সমস্ত অনুরোধগুলি পরিচালনা করতে হয়।

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

  2. hosting বিভাগের অধীনে নিম্নলিখিত rewrite কনফিগারেশন যোগ করুন:

    "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. Firebase এমুলেটরগুলির সাথে আবার পরীক্ষা করে আপনার পুনঃনির্দেশ আশানুরূপ কাজ করে তা নিশ্চিত করুন৷

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

      firebase emulators:start
    2. CLI (সাধারণত localhost:5000 ) দ্বারা প্রত্যাবর্তিত আপনার সাইটের জন্য স্থানীয়ভাবে হোস্ট করা URL দেখুন, কিন্তু bigben সহ URL যুক্ত করুন, যেমন: http://localhost:5000/bigben

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

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

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

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

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

ধাপ 4: আপনার ফাংশন স্থাপন করুন

একবার আপনার ফাংশনটি এমুলেটরে পছন্দসইভাবে কাজ করে, আপনি বাস্তব প্রকল্প সংস্থানগুলির সাথে এটি স্থাপন, পরীক্ষা এবং চালানোর জন্য এগিয়ে যেতে পারেন। উত্পাদনে চলমান ফাংশনগুলির জন্য স্কেলিং আচরণ নিয়ন্ত্রণ করতে রানটাইম বিকল্পগুলি সেট করার বিবেচনা করার এটি একটি ভাল সময়।

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

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

    • আপনার ফায়ারবেস সাবডোমেন:
      PROJECT_ID .web.app/bigben এবং PROJECT_ID .firebaseapp.com/bigben

    • যেকোনো সংযুক্ত কাস্টম ডোমেন :
      CUSTOM_DOMAIN /bigben

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

আপনি আপনার অ্যাপের গতিশীল বিষয়বস্তু পরিবেশন করতে এবং জটিল ওয়েব অ্যাপ আরও সহজে লিখতে Cloud Functions Express.js এর মতো ওয়েব ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

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

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

    npm install express --save
  2. আপনার /functions/index.js ফাইলটি খুলুন, তারপর আমদানি করুন এবং 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"
       } ]
     }
    }

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

আমাদের উদাহরণ অব্যাহত রেখে, এখন আপনি Express.js ব্যবহার করছেন, আপনি সাধারণ উপায়ে Express.js মিডলওয়্যার যোগ করতে পারেন। উদাহরণস্বরূপ, আপনি আমাদের শেষ পয়েন্টগুলিতে CORS অনুরোধগুলি সক্ষম করতে পারেন৷

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

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

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

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

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

,

আপনার গতিশীল সামগ্রী তৈরি এবং পরিবেশন করতে বা মাইক্রোসার্ভিস হিসাবে REST API তৈরি করতে Firebase Hosting সাথে Cloud Functions যুক্ত করুন৷

Cloud Functions for Firebase আপনাকে HTTPS অনুরোধের জবাবে স্বয়ংক্রিয়ভাবে ব্যাকএন্ড কোড চালাতে দেয়। আপনার কোড Google এর ক্লাউডে সংরক্ষণ করা হয় এবং একটি পরিচালিত পরিবেশে চলে। আপনার নিজস্ব সার্ভার পরিচালনা এবং স্কেল করার কোন প্রয়োজন নেই।

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

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

এই বিভাগটি Firebase Hosting সাথে একটি ফাংশন সংযোগ করার জন্য একটি ওয়াক-থ্রু উদাহরণ প্রদান করে।

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

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

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

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

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

    • আপনি যদি ইতিমধ্যেই Cloud Functions সেট আপ করে থাকেন, আপনি ধাপ 2-এ যেতে পারেন: একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

    • আপনি যদি Cloud Functions সেট আপ না করে থাকেন:

      1. আপনার প্রকল্প ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে Cloud Functions শুরু করুন:

        firebase init functions
      2. অনুরোধ করা হলে, JavaScript নির্বাচন করুন (এই ওয়াক-থ্রু উদাহরণ JS ব্যবহার করে)।

      3. আপনার স্থানীয় প্রকল্প ডিরেক্টরিতে আপনার একটি functions ডিরেক্টরি আছে কিনা পরীক্ষা করুন (আপনি এইমাত্র চালানো ফায়ারবেস কমান্ড দ্বারা তৈরি)। এই functions ডিরেক্টরি যেখানে Cloud Functions কোড থাকে।

ধাপ 2: আপনার Hosting সাইটের জন্য একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

  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 ডকুমেন্টেশন দেখুন।

পরবর্তী ধাপে আপনাকে একটি Firebase Hosting ইউআরএল থেকে এই HTTPS ফাংশনটি কীভাবে অ্যাক্সেস করা যায় তার মাধ্যমে নিয়ে যায় যাতে এটি আপনার Firebase-হোস্ট করা সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।

ধাপ 3: আপনার ফাংশনে সরাসরি HTTPS অনুরোধ

পুনর্লিখনের নিয়মের সাহায্যে, আপনি একটি একক গন্তব্যে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে সরাসরি করতে পারেন। নিম্নলিখিত ধাপগুলি আপনাকে দেখায় কিভাবে bigben ফাংশন চালানোর জন্য আপনার Hosting সাইটে ../bigben পাথ থেকে সমস্ত অনুরোধগুলি পরিচালনা করতে হয়।

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

  2. hosting বিভাগের অধীনে নিম্নলিখিত rewrite কনফিগারেশন যোগ করুন:

    "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. Firebase এমুলেটরগুলির সাথে আবার পরীক্ষা করে আপনার পুনঃনির্দেশ আশানুরূপ কাজ করে তা নিশ্চিত করুন৷

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

      firebase emulators:start
    2. CLI (সাধারণত localhost:5000 ) দ্বারা প্রত্যাবর্তিত আপনার সাইটের জন্য স্থানীয়ভাবে হোস্ট করা URL দেখুন, কিন্তু bigben সহ URL যুক্ত করুন, যেমন: http://localhost:5000/bigben

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

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

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

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

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

ধাপ 4: আপনার ফাংশন স্থাপন করুন

একবার আপনার ফাংশনটি এমুলেটরে পছন্দসইভাবে কাজ করে, আপনি বাস্তব প্রকল্প সংস্থানগুলির সাথে এটি স্থাপন, পরীক্ষা এবং চালানোর জন্য এগিয়ে যেতে পারেন। উত্পাদনে চলমান ফাংশনগুলির জন্য স্কেলিং আচরণ নিয়ন্ত্রণ করতে রানটাইম বিকল্পগুলি সেট করার বিবেচনা করার এটি একটি ভাল সময়।

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

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

    • আপনার ফায়ারবেস সাবডোমেন:
      PROJECT_ID .web.app/bigben এবং PROJECT_ID .firebaseapp.com/bigben

    • যেকোনো সংযুক্ত কাস্টম ডোমেন :
      CUSTOM_DOMAIN /bigben

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

আপনি আপনার অ্যাপের গতিশীল বিষয়বস্তু পরিবেশন করতে এবং জটিল ওয়েব অ্যাপ আরও সহজে লিখতে Cloud Functions Express.js এর মতো ওয়েব ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

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

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

    npm install express --save
  2. আপনার /functions/index.js ফাইলটি খুলুন, তারপর আমদানি করুন এবং 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"
       } ]
     }
    }

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

আমাদের উদাহরণ অব্যাহত রেখে, এখন আপনি Express.js ব্যবহার করছেন, আপনি সাধারণ উপায়ে Express.js মিডলওয়্যার যোগ করতে পারেন। উদাহরণস্বরূপ, আপনি আমাদের শেষ পয়েন্টগুলিতে CORS অনুরোধগুলি সক্ষম করতে পারেন৷

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

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

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

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

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

,

আপনার গতিশীল সামগ্রী তৈরি এবং পরিবেশন করতে বা মাইক্রোসার্ভিস হিসাবে REST API তৈরি করতে Firebase Hosting সাথে Cloud Functions যুক্ত করুন৷

Cloud Functions for Firebase আপনাকে HTTPS অনুরোধের জবাবে স্বয়ংক্রিয়ভাবে ব্যাকএন্ড কোড চালাতে দেয়। আপনার কোড Google এর ক্লাউডে সংরক্ষণ করা হয় এবং একটি পরিচালিত পরিবেশে চলে। আপনার নিজস্ব সার্ভার পরিচালনা এবং স্কেল করার কোন প্রয়োজন নেই।

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

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

এই বিভাগটি Firebase Hosting সাথে একটি ফাংশন সংযোগ করার জন্য একটি ওয়াক-থ্রু উদাহরণ প্রদান করে।

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

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

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

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

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

    • আপনি যদি ইতিমধ্যেই Cloud Functions সেট আপ করে থাকেন, আপনি ধাপ 2-এ যেতে পারেন: একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

    • আপনি যদি Cloud Functions সেট আপ না করে থাকেন:

      1. আপনার প্রকল্প ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে Cloud Functions শুরু করুন:

        firebase init functions
      2. অনুরোধ করা হলে, JavaScript নির্বাচন করুন (এই ওয়াক-থ্রু উদাহরণ JS ব্যবহার করে)।

      3. আপনার স্থানীয় প্রকল্প ডিরেক্টরিতে আপনার একটি functions ডিরেক্টরি আছে কিনা পরীক্ষা করুন (আপনি এইমাত্র চালানো ফায়ারবেস কমান্ড দ্বারা তৈরি)। এই functions ডিরেক্টরি যেখানে Cloud Functions কোড থাকে।

ধাপ 2: আপনার Hosting সাইটের জন্য একটি HTTPS ফাংশন তৈরি করুন এবং পরীক্ষা করুন

  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 ডকুমেন্টেশন দেখুন।

পরবর্তী ধাপে আপনাকে একটি Firebase Hosting ইউআরএল থেকে এই HTTPS ফাংশনটি কীভাবে অ্যাক্সেস করা যায় তার মাধ্যমে নিয়ে যায় যাতে এটি আপনার Firebase-হোস্ট করা সাইটের জন্য গতিশীল সামগ্রী তৈরি করতে পারে।

ধাপ 3: আপনার ফাংশনে সরাসরি HTTPS অনুরোধ

পুনর্লিখনের নিয়মের সাহায্যে, আপনি একটি একক গন্তব্যে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন অনুরোধগুলিকে সরাসরি করতে পারেন। নিম্নলিখিত ধাপগুলি আপনাকে দেখায় কিভাবে bigben ফাংশন চালানোর জন্য আপনার Hosting সাইটে ../bigben পাথ থেকে সমস্ত অনুরোধগুলি পরিচালনা করতে হয়।

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

  2. hosting বিভাগের অধীনে নিম্নলিখিত rewrite কনফিগারেশন যোগ করুন:

    "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. Firebase এমুলেটরগুলির সাথে আবার পরীক্ষা করে আপনার পুনঃনির্দেশ আশানুরূপ কাজ করে তা নিশ্চিত করুন৷

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

      firebase emulators:start
    2. CLI (সাধারণত localhost:5000 ) দ্বারা প্রত্যাবর্তিত আপনার সাইটের জন্য স্থানীয়ভাবে হোস্ট করা URL দেখুন, কিন্তু bigben সহ URL যুক্ত করুন, যেমন: http://localhost:5000/bigben

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

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

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

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

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

ধাপ 4: আপনার ফাংশন স্থাপন করুন

একবার আপনার ফাংশনটি এমুলেটরে পছন্দসইভাবে কাজ করে, আপনি বাস্তব প্রকল্প সংস্থানগুলির সাথে এটি স্থাপন, পরীক্ষা এবং চালানোর জন্য এগিয়ে যেতে পারেন। উত্পাদনে চলমান ফাংশনগুলির জন্য স্কেলিং আচরণ নিয়ন্ত্রণ করতে রানটাইম বিকল্পগুলি সেট করার বিবেচনা করার এটি একটি ভাল সময়।

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

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

    • আপনার ফায়ারবেস সাবডোমেন:
      PROJECT_ID .web.app/bigben এবং PROJECT_ID .firebaseapp.com/bigben

    • যেকোনো সংযুক্ত কাস্টম ডোমেন :
      CUSTOM_DOMAIN /bigben

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

আপনি আপনার অ্যাপের গতিশীল বিষয়বস্তু পরিবেশন করতে এবং জটিল ওয়েব অ্যাপ আরও সহজে লিখতে Cloud Functions Express.js এর মতো ওয়েব ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

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

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

    npm install express --save
  2. আপনার /functions/index.js ফাইলটি খুলুন, তারপর আমদানি করুন এবং 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"
       } ]
     }
    }

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

আমাদের উদাহরণ অব্যাহত রেখে, এখন আপনি Express.js ব্যবহার করছেন, আপনি সাধারণ উপায়ে Express.js মিডলওয়্যার যোগ করতে পারেন। উদাহরণস্বরূপ, আপনি আমাদের শেষ পয়েন্টগুলিতে CORS অনুরোধগুলি সক্ষম করতে পারেন৷

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

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

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

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

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